我创建了一个“TransformView
”子类UIView
,以支持我在翻转动画中使用的双面视图。这已在其他帖子中提出,例如:
How to rotate a flat object around its center in perspective view?
@interface TransformView : UIView
@end
@implementation TransformView
+ (Class)layerClass {
return [CATransformLayer class];
}
@end
一切正常,但每次使用:
创建TransformView对象时都会收到警告TransformView *newTransformView=[[TransformView alloc] initWithFrame:frame];
警告说:
- 更改属性不透明 仅变换图层,将无效
我想UIView
类正在初始化opaque属性,这通常适用于CALayer
但不适用CATransformLayer
。
子类代码是不是很狡猾?如果是这样,你怎么能为翻转动画创建一个双面视图?
有关如何停止警告的任何想法?
我怀疑从nib文件而不是TransformView
创建initWithFrame
可以避免警告,但为了避免警告,这似乎很麻烦。
答案 0 :(得分:3)
您可以通过在代码中的某处添加此扩展程序来避免警告:
@implementation CATransformLayer (MyExtension)
-(void)setOpaque:(BOOL)opaque
{
return;
}
@end
当然,这也会停止警告您自己错误地尝试设置CATransformLayer的opaque属性。