2012-09-09 39 views
5

पर कोई प्रभाव नहीं पड़ेगा, मैंने एक फ्लिप एनीमेशन में उपयोग किए जा रहे डबल-पक्षीय दृश्य का समर्थन करने के लिए UIView उपclassing "TransformView" बनाया है। यह अन्य पदों में सुझाव दिया गया है, जैसे:CATransformLayer चेतावनी का उपयोग करना: ट्रांसफॉर्म-केवल परत में संपत्ति अपारदर्शी को बदलना,

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 वर्ग अपारदर्शी संपत्ति जो एक CALayer नहीं लेकिन एक CATransformLayer के लिए आम तौर पर ठीक है initialising है।

क्या सबक्लासिंग कोड काफी डोडी है? यदि हां, तो फ्लिप एनिमेशन के लिए आप 2-पक्षीय दृश्य कैसे बना सकते हैं?

चेतावनी को रोकने के लिए कोई विचार?

मैं एक संदेह है कि एक निब फ़ाइल के बजाय initWithFrame से एक TransformView बनाने चेतावनी से बचा जाता है, लेकिन यह करने के लिए सिर्फ चेतावनी से बचने के लिए है करने के लिए cludgy लग रहे है।

+0

दायर [rdar: // 23069576] (https://openradar.appspot.com/23069576) के रूप में दायर –

उत्तर

3

आपका अपने कोड में कहीं न कहीं इस एक्सटेंशन जोड़कर चेतावनी से बचने कर सकते हैं:

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

बेशक यह भी एक CATransformLayer की अपारदर्शी गुण सेट करने के लिए अपनी खुद की गलत प्रयासों के लिए चेतावनी बंद हो जाएगा।