美文网首页
关于TextField的点击向下偏移问题

关于TextField的点击向下偏移问题

作者: FongG | 来源:发表于2016-11-02 11:12 被阅读0次

    版权声明:本文为博主原创文章,未经博主允许不得转载。

         今天使用TextFiled的时候碰到了这个问题:TextField点击编辑会出现向下偏移的状态,编辑完成后又会复原。不过很奇怪,之前使用的时候并不会出现这种原因。网上很多朋友说和automaticallyAdjustsScrollViewInsets有关系, 然而我测试后发现并没有关系,但这个说法蛮多人同意。my god。

    我的思路是textFiled 既然发生了偏移,并且复原那就很可能是transform或者bounds发生了偏移。然而我测试的结果并不如我想象的那样

    - (void)textFieldDidBeginEditing:(UITextField*)textField{

    NSLog(@"textFild.bounds :%@", NSStringFromCGRect(textField.bounds));

    NSLog(@"textFild.transform.y :%f", textField.transform.ty);

    }

    2016-11-02 10:57:22.248 XX[2614:93852] textFild.bounds :{{0, 0}, {128.5, 30}}

    2016-11-02 10:57:22.248 XX[2614:93852] textFild.transform.y :0.000000

    我疑惑是不是还有其他的属性可以控制显示的偏移量。然而当我使用transform去改变偏移量的时候,却发现下移能够被TextFiled所改变。代码如下:

    - (void)textFieldDidBeginEditing:(UITextField*)textField{

    textField.transform=CGAffineTransformMakeTranslation(0, -3);

    }

    - (void)textFieldDidEndEditing:(UITextField*)textField{

    textField.transform=CGAffineTransformMakeTranslation(0,0);

    }

    这个时候我就考虑是不是frame被改变了。然后并没有...

    总结:虽然能够用能够使用transform 去解决 TextFiled的向下偏移的问题,但是并没有找到导致TextFiled向下偏移的原因。授人鱼不如授人渔,然而能力有限。希望能够解决的朋友不吝赐教。

    继续更新,在这里感谢武林萌蕏的帮助,通过参考出处:http://stackoverflow.com/questions/39556087/uitextfield-chinese-character-moves-down-when-editing-in-ios-10可以找到许多大牛给出的各种方法。我在这里列举出2个。

    方法一:

    设置 textField.clearButtonMode = UITextFieldViewModeWhileEditing; 可以非常简单地解决UITextFiled的下移问题。


    方法二:

    创建一个子类继承 :UITextField,重写下面2个方法:

    - (CGRect)textRectForBounds:(CGRect)bounds {

    return CGRectInset(bounds, 2, 1);

    }

    - (CGRect)editingRectForBounds:(CGRect)bounds {

    return CGRectInset(bounds, 2, 1);

    }

    相关文章

      网友评论

          本文标题:关于TextField的点击向下偏移问题

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