ios TextField 使用xib…

在使用XIB创建UITextField时,可能会遇到TextField位置被导航栏推移的问题,这是由于automaticallyAdjustsScrollViewInsets属性导致的。解决方法包括:1.在XIB中设置TextField的borderStyle为None,或者2.自定义TextField类并重写editingRectForBounds方法来调整编辑区域的位置。

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


这种现象用代码创建TextField是不会出现的,xib创建会出现
原因:当在UINavigationController的管理下push到一个新界面的时候,默认的新界面的frame自动下拉了64(也就是导航栏和状态栏的高度),底部不会变,依然会在屏幕的最下方。其实这一切都是automaticallyAdjustsScrollViewInsets在作怪。self.automaticallyAdjustsScrollViewInsets 这个属性是IOS7才有的新方法,目的就是为了让scrollView自动适应屏幕。
xib中创建解决方法:
1.xib中设置borderStyle为UITextBorderStyleRoundedRect,拖线.m文件中,修改borderStyle:
TextField.borderStyle = UITextBorderStyleNone;就可以了
2.创建一个继承TextField的类,重写下如下方法也可解决:
- (CGRect)editingRectForBounds:(CGRect)bounds {
      return CGRectInset( bounds , 1 , 0 );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值