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

Bbx*_*Bbx 6 animation subclass uiview ios catransformlayer

我创建了一个" TransformView"子类UIView,以支持我在翻转动画中使用的双面视图.这已在其他帖子中提出,例如:

如何在透视视图中围绕其中心旋转平面对象?

@interface TransformView : UIView
@end

@implementation TransformView
+ (Class)layerClass {
  return [CATransformLayer class];
}
@end
Run Code Online (Sandbox Code Playgroud)

一切正常,但每次使用以下命令创建TransformView对象时都会收到警告:

TransformView *newTransformView=[[TransformView alloc] initWithFrame:frame];
Run Code Online (Sandbox Code Playgroud)

警告说:

- 在仅变换图层中更改属性不透明将不起作用

我想这个UIView类正在初始化不透明属性,这通常适用于CALayer但不是a CATransformLayer.

子类代码是不是很狡猾?如果是这样,你怎么能为翻转动画创建一个双面视图?

有关如何停止警告的任何想法?

我怀疑TransformView从一个nib文件创建而不是initWithFrame避免警告,但似乎很麻烦,为了避免警告必须这样做.

pom*_*mmy 4

您可以通过在代码中的某个位置添加此扩展来避免警告:

@implementation CATransformLayer (MyExtension)
-(void)setOpaque:(BOOL)opaque
{
    return;
}
@end
Run Code Online (Sandbox Code Playgroud)

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