初心者です。綺麗な円となったラベルを表示させたいです。
下の画像の右部がストーリボードになり、実行させた画面が左部になります。実行時に綺麗な円にしたいです。
あらゆるデバイスでも綺麗な円を実現するために、コード上でラベルの一辺の値を取得し、その半分の値を
layer.cornerRadiusに代入して、 円を実現させようと試みています。コードは以下になります。
※↓テキスト「C」が書かれているのは「Label」ですが「Cbutton」と名前付けしてます。ミスです。
Swift
1 2import UIKit 3 4class ViewController: UIViewController { 5 6 @IBOutlet weak var Cbutton: UIButton! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 // Do any additional setup after loading the view. 11 12 Cbutton.layer.cornerRadius = Cbutton.frame.width * 0.5 13 } 14} 15
ストーリボードではiphoneXsを基準に(?)作業しましたが、実行時はiphone7を選択しています。iphoneXsでの実行は綺麗になるのですが、その他の機種ではiphone7時同様にうまくいきません。
[疑問点1]
コードの「Cbutton.frame.width 」に原因があるのでしょうか?「Cbutton.frame.width」以外にも「Cbutton.bounds.size.width」「Cbutton.bounds.width」の二つを試みましたがうまくいきませんでした。
[疑問点2]
Constraintsの付け方がおかしいのでしょうか?ラベルの横幅がデバイスの横幅の半分の長さになるようにしています。そしてaspect = 1:1で縦横を整え、正方形にしています。以下の画像をご覧ください。
以上、宜しくお願い致します。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。