iOS14.0+解决UITextField 中 leftView和rightView设置控件宽高无效的问题
iOS14.0+ UITextField 中 leftView和rightView设置UILabel、UIButton、UIImageView等控件的宽高无效
问题现象
小于iOS14.0,UILabel、UIButton、UIImageView等控件设置宽高有效,iOS14.0+,设置宽高无效,解决方案同下即可。
解决方案:
1、创建UIView的父视图,然后把UILabel、UIButton、UIImageView等控件添加到父视图上。
2、.leftView = 父视图;
实例代码如下:
let leftView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: 37, height: 32))
let leftIV = UIImageView.init(frame: CGRect(x: 0, y: 0, width: 37, height: 32))
leftIV.contentMode = .center;
leftIV.image = UIImage.init(named: "icon_order_search");
leftView.addSubview(leftIV)
searchTF?.leftView = leftView;
searchTF?.leftViewMode = .unlessEditing;
let rightView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: 37, height: 32))
let rightIV = UIButton.init(frame: CGRect(x: 0, y: 0, width: 37, height: 32))
rightIV.setImage(UIImage.init(named: "icon_order_search_scan"), for: .normal);
rightIV.addTarget(self, action: #selector(scanQRClick(sender:)), for: .touchUpInside);
rightIV.tag = 2;
rightView.addSubview(rightIV)
searchTF?.rightView = rightView;
searchTF?.rightViewMode = .always;