Я крутил свои колеса в течение нескольких дней на этом. Я не могу найти никаких демонстраций программных ограничений с @IBDesignable
.
Если я попробую
imgv.translatesAutoresizingMaskIntoConstraints = false
. Затем устанавливается очевидный бесконечный цикл, и мне буквально нужно выйти из Xcode, снова открыть его и быстро удалить до того, как наступит время разработки.Как сейчас написано, у меня есть ограничения, которые должны изменить размер imgv на ширину и высоту 200, но изменение значений на 300 не влияет на раскадровку. Таким образом, как будто ограничения не имеют никакого эффекта.
ВОПРОС: Как я могу создать программные ограничения, которые будут отображаться на раскадровке, используя @IBDesignable?
## Заголовок ##
import UIKit
@IBDesignable
class tryTVCellTableViewCell: UITableViewCell {
override func prepareForInterfaceBuilder() {
setProperties()
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setProperties()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setProperties()
}
public override func layoutSubviews() {
super.layoutSubviews()
setProperties()
}
func setProperties() {
backgroundColor = .blue
let imgv = UIImageView(frame: CGRect(x: 10, y: 20, width: 50, height: 50))
let bundle = Bundle(for: type(of: self))
let img = UIImage(named: "mountain", in: bundle, compatibleWith: traitCollection)
assert(img != nil)
imgv.image = img
imgv.backgroundColor = .green
let lab = UILabel(frame: CGRect(x: 100, y: 10, width: 300, height: 300))
lab.text = "hkjlkjlkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;lkj;l;lkjk;j;i"
addSubview(imgv)
addSubview(lab)
imgv.widthAnchor.constraint(equalToConstant: 200).isActive = true
imgv.heightAnchor.constraint(equalToConstant: 200).isActive = true
imgv.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
}
}
~/Library/Logs/DiagnosticReports
и найдите имя файлаIBDesignablesAgentCocoaTouch_*.crash
, добавьте в свой вопросThread Crashed
- person a.masri   schedule 03.05.2018let bundle = Bundle(for: type(of: self)) let img = UIImage(named: "mountain", in: bundle, compatibleWith: traitCollection)
, заключается в использованииUIImage(named:"mountain")
из активов - person a.masri   schedule 03.05.2018