iOS - @IBDesignable UITextField子类在IB中正确显示,但在设备上没有显示

时间:2016-03-21 10:43:22

标签: ios swift

我有一个自定义UITextField子类,它具有@IBInspectable属性,可以围绕文本字段的顶角或底角。一切都在Interface Builder中正常工作,四舍五入正确的角落等等,但当我在device(或在模拟器中)运行应用时,它会忽略我的自定义类,只显示默认的{{ 1}}实现(我在IB中将UITextField设置为无)。

这是我的自定义课程:

borderStyle

1 个答案:

答案 0 :(得分:0)

不知道你是否还在搜索答案当我尝试使用leftview图标创建自定义文本字段时我遇到了同样的问题这段代码完成了我的所有工作。您几乎可以使用代码替换所有代码中的所有代码

import UIKit
@IBDesignable
class IconTextField: UITextField {
var imageView:UIImageView?
@IBInspectable var image: UIImage? {
    didSet { imageView?.image = image }
}
override init(frame: CGRect) {
    super.init(frame: frame)
    let rootView = UIView(frame:CGRect(x:0,y:0,width:45,height:25))
    self.imageView = UIImageView(frame:CGRect(x:10,y:0,width:20,height:20))
    self.imageView?.tintColor = UIColor.red
    self.imageView?.image = image
    rootView.addSubview(self.imageView!)
    self.leftView = rootView
    self.leftViewMode = UITextFieldViewMode.always
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
    let rootView = UIView(frame:CGRect(x:0,y:0,width:45,height:25))
    self.imageView = UIImageView(frame:CGRect(x:10,y:0,width:20,height:20))
    self.imageView?.tintColor = UIColor.red
    self.imageView?.image = image
    rootView.addSubview(self.imageView!)
    self.leftView = rootView
    self.leftViewMode = UITextFieldViewMode.always
}



}