我有问题。我创建了一个透明背景和中心视图(消息框)的视图:
该框名为iboShadowBox
在我的控制器类中,我正在为消息框的圆角添加代码并为其添加阴影。
最后我正在这样做:
self.iboShadowView.center = self.view.center;
将消息框居中。
客户说文字很模糊。
我在设置和不设置中心的情况下检查了文本:
设置中心:
没有设置中心:
左侧没有设置中心,右侧有设置中心
问题是,设置视图中心会导致文本模糊吗?以及如何解决它?
修改
试图替换这个:
self.iboShadowView.center = self.view.center;
用这个:
CGPoint center = self.view.center;
CGFloat scale = [UIScreen mainScreen].scale;
self.iboShadowView.center = CGPointMake(roundf(center.x * scale) / scale, roundf(center.y * scale) / scale);
再次显示调试中的ping背景...(这意味着没有帮助)
答案 0 :(得分:0)
您的中心点可能导致文本显示在非像素对齐的位置。这样做的效果是您的标签渲染时具有更夸张的抗锯齿效果,因此外观稍微模糊一些。
检查此理论的一种简单方法是在模拟器中运行应用程序并选择调试>菜单中的颜色未对齐图像。渲染的图像不是像素对齐的,将突出显示品红色。它可能不一定是外部视图未对齐,它可能是导致文本的任何叶视图,因此检查外部视图的框架是否像素对齐可能是不够的。
解决这类问题的一种方法是手动像素对齐框架,例如使用如下函数:
CGRect CGRectAlign(CGRect rect)
{
CGFloat scale = [UIScreen mainScreen].scale;
return CGRectMake(roundf(rect.origin.x * scale) / scale,
roundf(rect.origin.y * scale) / scale,
roundf(rect.size.width * scale) / scale,
roundf(rect.size.height * scale) / scale);
}