iOS14.0+解决UITextField 中 leftView

2021-07-12  本文已影响0人  WMSmile

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;
上一篇 下一篇

猜你喜欢

热点阅读