自定义的TextView,带有placeholder

最近写项目总是用到textView,无奈系统textView控件不像textField一样有占位符,所以只好自己自定义了一个带有占位符的textView,可以在storyboard中显示占位符属性,希望可以帮到大家!(swift)

@IBDesignable class JHTextView: UIView , UITextViewDelegate {

    @IBOutlet var contentView: UIView!
    @IBOutlet var textView: UITextView!
    /** 占位文字label */
    @IBOutlet private var placeholderLabel: UILabel!
    /** 占位文字 */
    @IBInspectable var placeholder : String? {
        get {
            return placeholderLabel.text
        }
        set {
            self.placeholderLabel.text = newValue
        }
    }
    /** 占位文字 颜色 */
    @IBInspectable var placeholderColor : UIColor = UIColor.lightGrayColor() {
        didSet {
            self.placeholderLabel.textColor = placeholderColor
        }
    }
    /** 占位文字 字体大小 */
    @IBInspectable var placeholderFont : CGFloat = 14 {
        didSet {
            self.placeholderLabel.font = UIFont.systemFontOfSize(placeholderFont)
        }
    }

    func loadViewFfromNib() -> UIView {
        let bundle = NSBundle(forClass: self.dynamicType)
        let nib = UINib(nibName: String(self.dynamicType), bundle: bundle)
        let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
        self.textView.delegate = self
        return view
    }

    func setupSubviews() {
        contentView = loadViewFfromNib()
        contentView.frame = bounds
        addSubview(contentView)
    }

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setupSubviews()
    }
    /** UITextViewDelegate */
    func textViewDidBeginEditing(textView: UITextView) {
        self.placeholderLabel.hidden = true
    }

    func textViewDidEndEditing(textView: UITextView) {
        self.placeholderLabel.hidden = textView.text != ""
    }


}

在storyboard中只需要创建一个view与其关联,就能自定义textView的placeholder文字,可以修改文字大小和颜色

文件下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值