代码之家  ›  专栏  ›  技术社区  ›  David

自定义UITextField模糊文本

  •  2
  • David  · 技术社区  · 16 年前

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

    example screenshot http://idzr.org/iu59

    这是一个常见问题吗?是否有已知的解决方案?

    1 回复  |  直到 12 年前
        1
  •  2
  •   David    13 年前

    我通过google找到了很多关于这个bug的参考资料,但是每个人都通过玩字体大小来解决这个问题。经过多次狩猎,我发现 this thread 也就是说,当视图的帧包含分数像素值时(例如,如果将其大小计算为超级视图的分数),将应用抗锯齿。

    当然了,铸造 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 可用于转换 CGRACT 到整数值。