2012-09-09 10 views
5

Ich habe eine TransformView Unterklasse UIView erstellt, um eine doppelseitige Ansicht zu unterstützen, die ich in einer Flip-Animation verwende. Dies wurde in anderen Beiträgen vorgeschlagen, zB:Verwendung der CATransformLayer-Warnung: Änderung der Eigenschaft opaque im Nur-Transformations-Layer hat keinen Effekt

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

@interface TransformView : UIView 
@end 

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

Das alles funktioniert gut, aber ich habe ein jedes Mal warnt ich ein TransformView-Objekt erstellen, mit:

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

Die Warnung sagt:

- wechselnde Eigenschaft opak in transform-only Schicht, w ill haben keine Wirkung

Ich denke, die UIView Klasse, um die undurchsichtige Eigenschaft wird initialisiert, die für eine CALayer in der Regel in Ordnung ist, aber kein CATransformLayer.

Ist der Unterklassencode ziemlich zweifelhaft? Wenn ja, wie sonst können Sie eine doppelseitige Ansicht für Flip-Animationen erstellen?

Haben Sie Ideen, wie Sie die Warnung stoppen können?

Ich habe den Verdacht, dass ein TransformView aus einer Feder-Datei erstellen, anstatt initWithFrame die Warnung vermeidet, ist aber cludgy scheint dies tun zu müssen nur die Warnung zu vermeiden.

+0

Abgelegt unter [rdar: // 23069576] (https://openradar.appspot.com/23069576) –

Antwort

3

Sie können die Warnung vermeiden, indem diese Erweiterung Hinzufügen irgendwo im Code:

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

dieses Kurses wird auch die Warnung für Ihre eigenen verwechselt Versuche stoppen die lichtundurchlässige Eigenschaft eines CATransformLayer einzustellen.

Verwandte Themen