繁体   English   中英

设置动画宽度时 UITextField 文本会拉伸

[英]UITextField text stretches when animating width

我的应用程序有一个文本字段,当它成为第一响应者时会缩小宽度以显示“取消”按钮,并在文本字段退出第一响应者时向后扩展。 这一切都是通过自动布局完成的:我在文本字段上有一个“超视图的尾随空间”约束。 为了扩展它,我只是减少了这个常数,使其与取消按钮重叠(我同时淡出其alpha)。 为了将它折叠回来,我再次增加了常数。 很标准的东西。 问题在于,当字段开始动画时,文本的宽度会发生扭曲,然后随着文本字段的收缩而动画恢复到其正常比例。 这是一个非常奇怪和不受欢迎的效果。 有没有人经历过这种情况,您对如何预防它有任何见解吗? 谢谢!

屏幕截图

我遇到了同样的问题,几年前我发现了这个问题: 动画 UITextField 时的奇怪行为

它的解决方案对我有用。 我最初试图在以下委托方法中为 UITextField 的宽度设置动画:

- (void)textFieldDidBeginEditing:(UITextField *)textField;
- (void)textFieldDidEndEditing:(UITextField *)textField;

这导致您看到的文本失真。 为了解决这个问题,我将动画移动到这两个委托方法:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;

文本现在不会拉伸。

也许您可以尝试显式设置 UITextField 的字体大小,如下所示:

[textField setFont:[UIFont systemFontOfSize:value]];

并将 adjustFontSizeToFitWidth 设置为 NO 或 false

textField.adjustsFontSizeToFitWidth = YES;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM