使用CATransformLayer警告:在仅变换图层中更改属性不透明将不起作用

时间:2012-09-09 17:53:05

标签: ios animation uiview subclass catransformlayer

我创建了一个“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可以避免警告,但为了避免警告,这似乎很麻烦。

1 个答案:

答案 0 :(得分:3)

您可以通过在代码中的某处添加此扩展程序来避免警告:

@implementation CATransformLayer (MyExtension)
-(void)setOpaque:(BOOL)opaque
{
    return;
}
@end

当然,这也会停止警告您自己错误地尝试设置CATransformLayer的opaque属性。