iOS14.0+解决UITextField 中 leftView和rightView设置控件宽高无效的问题

本文介绍在iOS14及以上版本中,UITextField使用leftView和rightView设置UILabel、UIButton等控件宽度失效的问题,提供通过创建父视图并设置子视图的方法来修复这一问题的详细步骤和实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WMSmile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值