首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CATransformLayer警告:更改仅转换层中的属性不透明,将不会产生任何影响。

使用CATransformLayer警告:更改仅转换层中的属性不透明,将不会产生任何影响。
EN

Stack Overflow用户
提问于 2012-09-09 17:53:05
回答 1查看 5.6K关注 0票数 6

我创建了一个"TransformView“子类UIView,以支持我在翻盖动画中使用的双面视图。这已在其他职位上提出过,如:

How to rotate a flat object around its center in perspective view?

代码语言:javascript
复制
@interface TransformView : UIView
@end

@implementation TransformView
+ (Class)layerClass {
  return [CATransformLayer class];
}
@end

所有这些都很好,但是每次创建TransformView对象时都会收到警告:

代码语言:javascript
复制
TransformView *newTransformView=[[TransformView alloc] initWithFrame:frame];

警告说:

  • 仅在转换层中更改属性不透明,将不会产生任何影响。

我猜UIView类正在初始化不透明属性,这通常适用于CALayer,而不是CATransformLayer

子类代码很不可靠吗?如果是这样的话,你还能为翻转动画创建一个双面视图吗?

有什么办法阻止警告吗?

我怀疑从nib文件而不是从initWithFrame创建一个initWithFrame可以避免警告,但是为了避免警告而不得不这样做似乎是有排他性的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-19 10:00:14

您可以通过在代码中添加此扩展名来避免警告:

代码语言:javascript
复制
@implementation CATransformLayer (MyExtension)
-(void)setOpaque:(BOOL)opaque
{
    return;
}
@end

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12341463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档