我已經創建了自定義的UIView子類,應該作爲彈出對話框工作。我想要非常可重用,所以我在自己的xib文件中創建了我的子類,並在那裏設置了自動佈局約束。在界面生成器,它看起來是這樣的:通過接口生成器添加到控制器的xib自定義視圖 - 保持自動佈局約束,並通過它們調整大小
應該通過文本的UITextView調整高度。這是我的自定義子類:
class PhotoDetailInfoDialog: UIView {
var view: UIView!
let nibName: String = "PhotoDetailInfoDialog"
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var mainTextView: UITextView!
@IBOutlet weak var bottomButton: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
func setup() {
view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight]
addSubview(view)
}
func loadViewFromNib() -> UIView {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: nibName, bundle: bundle)
let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
return view
}
}
在Interface Builder的控制器,我想使用它,我添加的視圖,並設置類我PhotoDetailInfoDialog。
(服用後的屏幕截圖我加入寬度約束)。 如何設置它在自定義視圖的控制器高度中的權利會自動重新計算自定義xib中的約束(也許沒有界面生成器中的錯誤)?
在我來說,我的文字多行代碼爲UITextView的設置,但它顯示如下:
感謝您的幫助