UITextView左图图标swift

时间:2017-12-07 11:06:22

标签: ios swift image uitextview

如何在UITextView中设置左图像?

使用填充,因为它不能相互重叠图像和文本。

这不是UItextField,使用" UITextView"而不是" UItextField" UItextField它提供内置的leftview和rightview,它们在" UITextView"

中不存在
class CustomTextView:UITextView{

    /// A UIImage value that set LeftImage to the UITextView
    @IBInspectable open var leftImage:UIImage? {
         didSet {
            if (leftImage != nil) {
               self.leftImage(leftImage!)
            }
        }
    }

fileprivate func leftImage(_ image: UIImage) {
    let icn : UIImage = image
    let imageView = UIImageView(image: icn)
    imageView.frame = CGRect(x: 0, y: 2.0, width: icn.size.width + 20, height: icn.size.height)
    imageView.contentMode = UIViewContentMode.center

}

我希望你明白我需要什么。

1 个答案:

答案 0 :(得分:8)

这是制作自定义UITextView的代码片段:

//MARK:- CustomTextView
class CustomTextView:UITextView{

    /// A UIImage value that set LeftImage to the UITextView
    @IBInspectable open var leftImage:UIImage? {
        didSet {
            if (leftImage != nil) {
                self.applyLeftImage(leftImage!)
            }
        }
    }


fileprivate func applyLeftImage(_ image: UIImage) {
        let icn : UIImage = image
        let imageView = UIImageView(image: icn)
        imageView.frame = CGRect(x: 0, y: 2.0, width: icn.size.width + 20, height: icn.size.height)
        imageView.contentMode = UIViewContentMode.center
        //Where self = UItextView
        self.addSubview(imageView)
        self.textContainerInset = UIEdgeInsets(top: 2.0, left: icn.size.width + 10.0 , bottom: 2.0, right: 2.0)
    }
}

编写此代码后,在Storyboard中选择UITextView,并给出类“CustomTextView”的名称。现在转到属性检查器将图像设置为左图。

谢谢,