Cocoa touch 自定义UITextField模糊文本
当具有自定义帧(200×54像素)的UITextField失去焦点时,文本看起来模糊Cocoa touch 自定义UITextField模糊文本,cocoa-touch,uitextfield,Cocoa Touch,Uitextfield,当具有自定义帧(200×54像素)的UITextField失去焦点时,文本看起来模糊 (来源:) 这是一个普遍的问题吗?有没有已知的解决方法?我在谷歌上找到了很多关于这个bug的参考资料,但每个人都通过使用字体大小来解决这个问题。经过多次搜索,我发现当视图的帧包含分数像素值时,例如,如果将其大小计算为超级视图的分数,则会应用抗锯齿 果然,将视图框架的CGRect值强制转换为int,效果非常好。例如,如果希望文本字段在superview中垂直居中,则应使用int强制转换,如下所示: textFi
(来源:)
这是一个普遍的问题吗?有没有已知的解决方法?我在谷歌上找到了很多关于这个bug的参考资料,但每个人都通过使用字体大小来解决这个问题。经过多次搜索,我发现当视图的帧包含分数像素值时,例如,如果将其大小计算为超级视图的分数,则会应用抗锯齿 果然,将视图框架的
CGRect
值强制转换为int
,效果非常好。例如,如果希望文本字段在superview中垂直居中,则应使用int
强制转换,如下所示:
textFieldWidth = 300;
textFieldHeight = 31;
offsetX = 0;
offsetY = (superview.bounds.size.height - textFieldHeight) / 2;
textField.frame = CGRectMake((int) offsetX,
(int) offsetY,
(int) textFieldWidth,
(int) textFieldHeight);
还有
CGRectIntegral
函数,您可以使用它将CGRect
转换为整数值。非常感谢您的回答,这似乎是最好的解决方案。我在Interface Builder中也看到过这种情况。我一定要检查大小,以确保它们不包含分数。我的解决方案是重新创建按钮,这是跛脚的。但这很容易做到,只需单击按钮,按住option键,然后将其拖动过来。这将创建一个与上一个按钮相同的新按钮,但具有适当的抗锯齿。之后剩下要做的就是连接你的行动和出口并重新定位。哦,删除旧按钮。:)