自定义UITextField模糊文本

时间:2010-03-11 18:15:58

标签: cocoa-touch uitextfield

当具有自定义帧(200×54像素)的UITextField失去焦点时,文本看起来模糊。

example screenshot http://idzr.org/iu59

这是一个常见问题吗?是否有任何解决方法/解决方案?

1 个答案:

答案 0 :(得分:2)

我通过谷歌发现了一些对这个bug的引用,但每个人都通过玩字体来解决这个问题。经过大量搜寻后,我发现this thread表示当视图的帧包含小数像素值时会应用抗锯齿,例如:如果你把它的大小计算为超级视图的一小部分。

果然,将CGRect值投射到int以获得视图框架的效果非常好。举例来说,如果您希望文本字段在超级视图中垂直居中,则应使用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转换为整数值。