drawAtPoint:和drawInRect:模糊文本

8 iphone fonts cocoa-touch font-size

使用drawAtPoint:,drawInRect:绘制字符串时,甚至设置UILabels的文本属性 - 文本有时会显得有些模糊.

我倾向于在大多数地方使用Helvetica,我注意到特定的字体大小会导致在模拟器和设备上出现某种程度的模糊.

例如:

UIFont *labelFont = [UIFont fontWithName:@"Helvetica-Bold" size:12];
Run Code Online (Sandbox Code Playgroud)

将导致生成的标签具有轻微模糊的文本.

UIFont *labelFont = [UIFont fontWithName:@"Helvetica-Bold" size:13];
Run Code Online (Sandbox Code Playgroud)

结果清晰.

我的问题是为什么会发生这种情况?这只是为字体选择最佳字体大小的问题吗?如果是这样,最佳字体大小是多少?

更新:似乎可能不是导致模糊的字体大小.可能是rect的中心是一个分数点.以下是我在Apple开发论坛上发现的评论:

检查位置.它可能在一个小数像素上.将中心更改为整数值.

我四舍五入所有点的值,但仍然有文字仍然模糊的地方.有没有人遇到过这个问题?

小智 9

我已经解决了这个问题

只需确保您在绘制的点或矩形不会出现在小数像素上.

NSLog(@"%@", NSStringFromCGRect(theRect))确定在分数像素上绘制哪个点.然后打电话round()给那一点.