मैं ओएस एक्स के लिए Xcode पर एक खाली कोको एप्लिकेशन बनाया है, और कहा:NSView को अपने बाउंडिंग क्षेत्र को क्लिप करने के लिए कैसे करें?
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
self.view = [[NSView alloc] initWithFrame:NSMakeRect(100, 100, 200, 200)];
self.view.wantsLayer = YES;
self.view.layer = [CALayer layer];
self.view.layer.backgroundColor = [[NSColor yellowColor] CGColor];
self.view.layer.anchorPoint = CGPointMake(0.5, 0.5);
self.view.layer.transform = CATransform3DMakeRotation(30 * M_PI/180, 1, 1, 1);
[self.window.contentView addSubview:self.view];
}
लेकिन घुमाया परत की पृष्ठभूमि दृश्य का सीमांकन क्षेत्र से काटा जाता है:
मैं कुछ के बाद से सोचा ओएस एक्स और आईओएस का संस्करण, दृश्य इसके सबव्यूज़ की सामग्री को क्लिप नहीं करेगा और सबकुछ अंदर और बाहर दिखाएगा? आईओएस पर, मुझे वह व्यवहार दिखाई देता है, लेकिन मुझे आश्चर्य है कि यह ऐसा क्यों दिखता है और सबकुछ कैसे दिखाया जाए? (मैं पहले से ही माउंटेन शेर पर सबसे वर्तमान एक्सकोड 4.4.1 का उपयोग कर रहा हूँ)।
(ध्यान दें: यदि आप कोड ऊपर का प्रयास करें, आप, हालांकि मुझे आश्चर्य है कि क्यों मैं हैडर आयात नहीं किया और यह अभी भी पूरी तरह से संकलित क्वार्ट्ज कोर से लिंक है, और संभवतः क्वार्ट्ज कोर हैडर आयात करने के लिए की आवश्यकता होगी)
मैं आईओएस डेवलपर हूं और मैंने हाल ही में कोको में काम करना शुरू कर दिया है। यह पिछले तीन दिनों से मुझे पागल कर रहा है। मुझे आश्चर्य है कि मुझे इसके बारे में अधिक जानकारी नहीं मिल रही है। अपना समाधान पोस्ट करने के लिए धन्यवाद !! – KevinM
जब आप परतों के बिना परतों और किसी के साथ NSView मिश्रण करते हैं तो समस्याएं हो सकती हैं। यह स्थिर नहीं है कि कौन सी सामग्री दूसरों पर ओवरले होगी। – Slavik
'self.wantsLayer = YES' सेट करना' init' में काम नहीं करता है क्योंकि 1. सही प्रारंभकर्ता 'initWithFrame:' और 2. है, यहां तक कि इसे nibs से लोड किए गए दृश्यों के लिए भी नहीं कहा जाता है। आपको '-awakeFromNib' ओवरराइड करना चाहिए और वहां अपना सेटअप करना चाहिए। वैकल्पिक रूप से, आप आईबी के व्यू इफेक्ट इंस्पेक्टर में कोर एनीमेशन लेयर प्रॉपर्टी सेट कर सकते हैं। –