0

カスタムビューは、UIViewオブジェクトをライブラリからドラッグすることによってIBに配置され、そのクラス名はカスタムビュークラス名に設定されます。このカスタムビューにはサブビューがあり、init?(coder aDecoder: NSCoder)に追加されています。アンカー制約により、サブビューが拡大される代わりにスーパービューが縮小される

_centralLabelサブビューがカスタムビューで一元的に設定され、そのサイズがカスタムのビューのサイズの25%になるように、型制約をアンカーする方法とその配置場所を指定する必要がありますか?

コードは次のように書かれている場合は、次のコードの結果ではなく、カスタムビューの25%であることが_centralLabelの大きさを設定する、カスタムビューが(に縮小されていること、である

override func updateConstraints() { 
    if !_subviewsConstraintsAdded { 
     _centralLabel.heightAnchor.constraint(equalTo: heightAnchor, multiplier: 0.25).isActive = true 
     _centralLabel.widthAnchor.constraint(equalTo: widthAnchor, multiplier: 0.25).isActive = true 
     _centralLabel.centerXAnchor.constraint(equalTo: centerXAnchor).isActive = true 
     _centralLabel.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true 
     _subviewsConstraintsAdded = true 
    } 
    super.updateConstraints() 
} 

0,0)は、updateConstraints()が呼び出されている間_centralLabelのサイズです。

答えて

0

欠落ビットであることが確認された:

プログラムこの行とサブビューをインスタンス化した後にどこかに配置する必要があり
_centralLabel.translatesAutoresizingMaskIntoConstraints = false 

:_centralLabelサブビューが拡大している。この補正後

_centralLabel = UILabel() 

とに移動しましたビュー自体は元のサイズ、形状、位置にとどまっていましたが、ビューの中心です。

関連する問題