質問として、UIViewクラス内でイメージビューを設定しようとしたとき、フレームの高さの半径Radiusを2で割った値が機能していなかったので、フレームの高さは0でした。フレームの高さのプリント0
このクラスのすべてのビューの高さまたは幅が印刷されます。0わかりません。
質問として、UIViewクラス内でイメージビューを設定しようとしたとき、フレームの高さの半径Radiusを2で割った値が機能していなかったので、フレームの高さは0でした。フレームの高さのプリント0
このクラスのすべてのビューの高さまたは幅が印刷されます。0わかりません。
この問題が見つかりました。 UIビュークラスを呼び出すとき、私はこのビューの実際のフレームをパラメータで渡していませんでした。したがって、このクラス初期化子が実行されたとき、フレームは常に0になりました。
デフォルトでは、ビューのサイズはまったくありません。何らかの種類の制約やビューのフレームを設定する必要があります。
1.制約: viewDidLoad()
に制約を設定する場合、ビューは瞬時にサイズを得ることはありません。サイズを読み取るには、viewDidLayoutSubviews()
という別の関数で読み取る必要があります。この関数は、すべてのビューが配置された後に呼び出されます。
var newView:UIView?
override func viewDidLoad() {
super.viewDidLoad()
newView = UIView()
newView!.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(newView!)
newView!.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
newView!.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true
newView!.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
newView!.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
}
override func viewDidLayoutSubviews() {
print(newView!.frame)
}
2.フレーム::ここではビューは、親ビューのサイズを得ることができます例です直接ビュー枠を設定することにより、あなたは即座にその大きさを読み取ることができます。ビューのフレームが親ビューと同じ境界に設定されている例を次に示します。
var newView:UIView?
override func viewDidLoad() {
super.viewDidLoad()
newView = UIView()
newView?.frame = view.bounds
newView!.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(newView!)
print(newView!.frame)
}
self.view.addSubView(yourView) –
@MatGrltを使用してビューを追加しましたか?それはUIViewだけが書き込んだクラスaddSubview(view) – Rialcom
ここでインスタンス化しますかあなたのサブビューのフレーム? –