我有一个UITextField包装在UIView中,制作成自定义类。它在ViewController(storyboard)中工作正常,但是当在XIB文件中的UIView中使用时,行为如下:
如果我将字体大小设置为低于17的任何值,则预期高度为0pt。
如果我将字体大小设置为17,预期高度是正确的(约20个单位)。
如果我将字体大小设置为大于17的任何值,则预期高度为4000pt。
有问题的代码:
import UIKit
import SnapKit
@IBDesignable class AppleBug: UIView {
// Interface builder values
@IBInspectable var placeholderText: String = "" {
didSet { updateUI() }
}
@IBInspectable var textSize: CGFloat = 14 {
didSet { updateUI() }
}
// Views
lazy var textField = UITextField()
// MARK: Initialization
override init(frame: CGRect) {
super.init(frame: frame)
setupTextField()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupTextField()
}
// MARK: View setup
private func setupTextField() {
addSubview(textField)
textField.snp_makeConstraints { (make) -> Void in
make.edges.equalTo(self)
}
}
// MARK: View updating
private func updateUI() {
textField.placeholder = placeholderText
textField.font = UIFont.systemFontOfSize(textSize)
}
}