[英]iPad Not Respecting AutoLayout Constraints from Interface Builder
[英]Custom view from xib added to controller via Interface builder - keep autolayout constraints and resize by them
我创建了自定义UIView子类,该子类应作为弹出对话框使用。 我想非常可重用,所以我在自己的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
}
}
在要使用控制器的接口构建器中,我添加了视图并将类设置为我的PhotoDetailInfoDialog。
(在截屏后,我添加了宽度限制)。 如何正确设置在自定义视图的控制器高度中,将通过自定义xib中的约束来动态地重新计算(可能在界面生成器中没有错误)?
就我而言,我在代码中为UITextView设置了多行文本,但它显示如下:
感谢帮助
你可以不设置view
的类将customView已经有.xib
这在你的storyboard
。
因为在xib
,它已经创建interface
为PhotoDetailInfoDialog
。
如果将view
拖到storyboard
PhotoDetailInfoDialog
,并将类设置为PhotoDetailInfoDialog
,则会出现issue
。 并且您可以再次运行您的项目,它将以EX_BAD_ACCESS
崩溃。
我建议您在vc
的代码中使用PhotoDetailInfoDialog
程序。 并且可能更灵活地显示带有条件或动作的dialog
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.