当具有自定义帧(200×54像素)的UITextField失去焦点时,文本看起来模糊。
example screenshot http://idzr.org/iu59
这是一个常见问题吗?是否有任何解决方法/解决方案?
答案 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
转换为整数值。