我有一个 UIView
对象,它使用 CALayer
的转换进行旋转:
// Create uiview object.
UIImageView *block = [[UIImageView alloc] initWithFrame....]
// Apply rotation.
CATransform3D basicTrans = CATransform3DIdentity;
basicTrans.m34 = 1.0/-distance;
blockImage.layer.transform = CATransform3DRotate(basicTrans, rangle, 1.0f, 0.0f, 0.0f);
旋转对象的边缘后不抗锯齿。我需要对它们进行抗锯齿处理。 请帮帮我。怎么做到的?
最佳答案
一种方法是将图像放在另一个大 5 像素的 View 中。更大的 View 应该有一个透明的栅格化边框,可以平滑 UIImageView 的边缘:
view.layer.borderWidth = 3;
view.layer.borderColor = [UIColor clearColor].CGColor;
view.layer.shouldRasterize = YES;
view.layer.rasterizationScale = [[UIScreen mainScreen] scale];
然后,将您的 UIImageView 放在该父 View 中并将其居中(每边 2.5 像素)。
最后,旋转父 View 而不是 ImageView 。
它工作得很好——您还可以将整个东西封装在创建层次结构的类中。
关于iphone - 使用 CALayer 的变换对 UIView 的边缘进行抗锯齿处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313804/