私は何かのカスタムコントロールを作成するための練習に取り組んでいます。私の考えは、画面の中央にUIView、その下にUILabelを持つことです。ビューをタップすると、ランダムな色が表示され、ラベルはその16進値に変わります。このカスタムコントロールを作成しようとすると、プログラムでUIViewを中央に配置しようとすると問題が発生します。私はcolorBox.center〜UIViewをカスタムコントロールに配置するにはどうすればよいですか?
`で問題にimport UIKit
@IBDesignable
class Color: UIView {
private lazy var label : UILabel = {
let label = UILabel()
label.backgroundColor = UIColor.clear
label.translatesAutoresizingMaskIntoConstraints = false
label.heightAnchor.constraint(equalToConstant: 25.0).isActive = true
label.widthAnchor.constraint(equalToConstant: 100.0).isActive = true
label.font = .systemFont(ofSize: 15.0, weight: UIFontWeightRegular)
return label
}()
private lazy var colorGen : UIView = {
let colorBox = UIView()
colorBox.backgroundColor = UIColor.black
colorBox.heightAnchor.constraint(equalToConstant: 100.0).isActive = true
colorBox.widthAnchor.constraint(equalToConstant: 100.0).isActive = true
colorBox.centerXAnchor.constraint(equalTo: colorBox.frame.size.width /2)
}()
override init (frame: CGRect) {
super.init(frame:frame)
setUpLabel()
setUpView()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setUpLabel()
setUpView()
}
を取得し、私はself.view
の使用についての答えを試みたが、それは私のために動作しませんので、私は少し迷ってしまいました。
あなたは近いですが、あなたはあなたがしてスーパーにそれらが相対的に制約することができるようにラベルやビューを追加する必要があります制約コードを 'prepareForInterfaceBuilder()'に入れますか? – dfd
いいえ、私はそれを調べます。 IBのために私がやっていることはあまりにも複雑ですか? – LampPost