6

フリップ アニメーションで使用している両面ビューをサポートするために、" TransformView" サブクラスを作成しました。UIViewこれは、他の投稿で提案されています。

透視図で平らなオブジェクトをその中心を中心に回転させる方法は?

@interface TransformView : UIView
@end

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

すべて正常に動作しますが、以下を使用して TransformView オブジェクトを作成するたびに警告が表示されます。

TransformView *newTransformView=[[TransformView alloc] initWithFrame:frame];

警告は次のように述べています。

- 変換のみのレイヤーでプロパティ opaque を変更しても効果はありません

UIViewクラスは不透明なプロパティを初期化していると思いますが、これは通常 aCALayerでは問題ありませんが、 ではありませんCATransformLayer

サブクラス化コードは非常に危険ですか? もしそうなら、フリップ アニメーション用の両面ビューを作成するには、他にどのような方法がありますか?

警告を停止する方法についてのアイデアはありますか?

TransformView警告を回避するのではなく、nib ファイルからを作成するのではなくinitWithFrame、警告を回避するためだけにこれを行う必要があるのではないかと疑っています。

4

1 に答える 1

4

この拡張機能をコードのどこかに追加することで、警告を回避できます。

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

もちろん、これにより、CATransformLayer の opaque プロパティを誤って設定しようとした場合の警告も停止します。

于 2013-02-19T10:00:14.370 に答える