Я создал собственный подкласс 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
}
}
В строителе интерфейса для контроллера, где я хочу, чтобы использовать его, я добавил вид и установить класс к моему PhotoDetailInfoDialog.
(После того, как снимок экрана я добавил ограничение ширины). Как правильно установить, что на высоте контроллера пользовательского представления будет динамически пересчитываться ограничениями в пользовательском xib (и, возможно, без ошибок в построителе интерфейса)?
В моем случае я поставил в коде много строк текста для UITextView но он показывает следующее:
Спасибо за помощь