1
私はカスタムUIView
を作成しました。ビューの内側には、UIStackView
を使用していくつかのUI要素を追加しようとしています。stackviewsをプログラムで使用する
IBの内部ビューを追加してカスタムクラスをカスタムUIViewに設定しました。
UIStackView
はに追加されているようではなく、代わりにUIStackView
が原点に固定されているように見えます。また、デバッグビューの階層でしか見ることができません。それは実際にlablesやボタンのいずれかを示していない、私はちょうど破線の灰色のボックスが表示されます。私は間違ってUIStackView
を使用しています。ここ
import UIKit
class ParameterControl: UIView {
private var name : UILabel!
private var valTf : UITextField!
private var delta : UITextField!
private var stepper : UIStepper!
private var button : UIButton!
init(frame: CGRect, albumCover: String) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
func commonInit(){
name = UILabel()
name.text = "Name"
name.backgroundColor = UIColor.blue
valTf = UITextField.init()
delta = UITextField.init()
stepper = UIStepper.init()
button = UIButton.init()
let stackView = UIStackView(arrangedSubviews: [valTf, delta, stepper, button])
stackView.axis = .horizontal
stackView.distribution = .fillEqually
stackView.alignment = .fill
stackView.spacing = 10
stackView.translatesAutoresizingMaskIntoConstraints = false
addSubview(stackView)
//let viewsDictionary = ["stackView":stackView]
//let stackView_H = NSLayoutConstraint.constraints(withVisualFormat: "H:|-20-[stackView]-20-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: viewsDictionary)
//let stackView_V = NSLayoutConstraint.constraints(withVisualFormat: "V:|-30-[stackView]-30-|", options: NSLayoutFormatOptions(rawValue:0), metrics: nil, views: viewsDictionary)
//self.addConstraints(stackView_H)
//self.addConstraints(stackView_V)
}
}
を作成したカスタムビューのですか?目的は、これらのビューの配列を自分の各パラメータに1つずつ作成できるようにすることです。私はIBでこれらのビューを個別に作成したくありません。
スタックビューに制約を追加してスーパービューに制約する必要があります(カスタムクラスでは自己) – Paulw11