Я создал много просмотров, что не проблема.Однако у меня есть много кодов ограничений изменений в VC, которые требуют рефакторинга.
ВОПРОС:
Как (если возможно) я могу установить ограничения внутри метода init самого subView, чтобы я могрефакторинг кода из ВК.
Я не могу придумать другой способ сформулировать мой вопрос для Google, поэтому вот что я получил:
VC
func addCheckView() {
let checkView = CheckView()
checkView.frame = self.view.frame
view.insertSubview(checkView, aboveSubview: mapView)
}
import UIKit
class CheckView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
backgroundColor = .blue
// addSubview(self)
translatesAutoresizingMaskIntoConstraints = false
// let margins = layoutMarginsGuide
leadingAnchor.constraint(equalTo: leadingAnchor, constant: 40).isActive = true
trailingAnchor.constraint(equalTo: trailingAnchor, constant: -40).isActive = true
topAnchor.constraint(equalTo: topAnchor, constant: 40).isActive = true
bottomAnchor.constraint(equalTo: bottomAnchor, constant: -40).isActive = true
// layoutIfNeeded()
}
}
Я перепробовал огромное количество вариантов, но, чтобы сохранить его кратким и читабельным (и, поскольку я думаю, что решение довольно простое), я оставлю это здесь.
Очевидно, я мог бы просто сделать что-то вродеэто и передать касания:
private func commonInit() {
let view = CheckView()
// add constraints here, etc.
}
Это работает, но разве это не просто добавление подпредставления в подпредставлении?Это кажется не элегантным и многословным.