我正在显示一个带有UILabel的UIView,这个视图和标签一旦到达这些行代码就会变得模糊:
CATransform3D transform = CATransform3DIdentity;
transform.m34 = (1.0/-500);
view.layer.transform = transform;
在整个应用程序中我使用CA3DRotations和其他东西,这从未发生过。 另外,我只使用整数设置视图的框架和标签!所以它不是半像素问题或类似问题,我知道这会导致最模糊的问题,但不是我的问题!
在模拟器上它并不模糊,iPad不模糊,iPhone3GS并不模糊。只有配备Retina显示屏的iPhone4才会变得模糊不清。甚至在我做任何3D旋转之前!在我疯了之前有没有人知道?
答案 0 :(得分:25)
好吧,我找到了解决方案。 在使用图层属性(例如图层重力或放大倍数以及大量其他解决方案)使用了一百个不同的代码行后,我突然偶然发现以下两行:
self.layer.shouldRasterize = TRUE;
self.layer.rasterizationScale = [[UIScreen mainScreen] scale];
这是解决方案!对于未来的每个人来说,视网膜显示屏上的视图是否模糊?用这个!
答案 1 :(得分:3)
您是否已将图层的contentsScale
设置为与[UIScreen mainScreen]. scale
匹配?试试吧。
答案 2 :(得分:0)
你的观点可能是“像素之间”(例如,中心是[12.5,10])。尝试围绕他们的位置,看看是否有帮助。
答案 3 :(得分:0)
如果您的最终着陆位置是平坦/未转换的,只需将转换设置为CATransform3D标识也可以解决问题。根据动画的设置方式,将其中一个3D变换的最终位置设置为0.0仍然会引入舍入误差并给出模糊外观。