美文网首页
Swift UITextfield左侧图标Frame设置

Swift UITextfield左侧图标Frame设置

作者: NFatalist | 来源:发表于2017-06-26 10:40 被阅读348次

UITextfield 设置左侧图片需要添加leftView,但默认会紧贴左边,且设置frame无效

        //创建textField
        let searchTextField = UITextField()
        searchTextField.layer.cornerRadius = 5.0
        searchTextField.backgroundColor = UIColor.white
        
        //左侧图片
        let leftView = UIImageView(image: #imageLiteral(resourceName: "icon_small_search"))
        leftView.contentMode = .center
        leftView.frame = CGRect(x: 30, y: 0, width: 15, height: 15)
        
        searchTextField.leftView = leftView
        searchTextField.leftViewMode = .always
        searchTextField.placeholder = "搜一搜"
        fakeNavigationView.addSubview(searchTextField)
        searchTextField.snp.makeConstraints { (make) in
            make.left.equalTo(20)
            make.right.equalTo(-80)
            make.centerY.equalTo(fakeNavigationView).offset(10)
            make.height.equalTo(30)
        }

效果如下:

设置frame无效

解决方案: 给imageView 添加一个父视图,并设置imageView居中,最后将父视图设置为textfiled的leftView

        //左侧图片
        let leftView = UIImageView(image: #imageLiteral(resourceName: "icon_small_search"))
        leftView.contentMode = .center
        
        //添加背景视图
        let bgView = UIView()
        bgView.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
        bgView.addSubview(leftView)
        leftView.snp.makeConstraints { (make) in
            make.center.equalTo(bgView)
            make.width.height.equalTo(15)
        }
        
        searchTextField.leftView = bgView

效果如下:

左侧图边距增加

相关文章

网友评论

      本文标题:Swift UITextfield左侧图标Frame设置

      本文链接:https://www.haomeiwen.com/subject/yhvdcxtx.html