2011-12-20 7 views
24

मेरे उदाहरण में, मेरे पास 3 विचार हैं: एक लाल दृश्य जिसमें दो सफेद दृश्य हैं। मैं लाल कंटेनर व्यू के अल्फा को 0.3 पर बदलता हूं और ऐसा होता है (छवि को देखें, वर्तमान परिणाम)।आईओएस सबव्यू के लिए UIView अल्फा व्यवहार को नियंत्रित करता है

इसे देखकर, मैं केवल मान सकता हूं (मुझे बताएं कि क्या मैं गलत हूं) कि दृश्य का अल्फा सेट करने से इसके सभी सबव्यूस 'अल्फा भी सेट हो जाएंगे। मेरा सवाल है: क्या पूरी तरह से कार्य करने के लिए लाल दृश्य को बताने का कोई तरीका है ताकि उसका अल्फा सेट करना वांछित परिणाम (छवि में) जैसा दिखता हो?

results

यह वही है यह किसी भी अल्फा के बिना की तरह लग रहा है:

enter image description here

+0

में अपने "परिणाम चाहता था" आप whwite और लाल विचारों के माध्यम से या नहीं पृष्ठभूमि को देखने के लिए करना चाहते हैं? यदि नहीं, तो आपको अल्फा 1 के साथ कस्टम रंग का उपयोग करना चाहिए। सबव्यूव्यू पर्यवेक्षण से "उत्तराधिकारी" अल्फा। एक और तरीका आप कोशिश कर सकते हैं परतें है, लेकिन मुझे यकीन नहीं है। –

उत्तर

12

चेक बाहर Info.plist के लिए संभव UIKit चाबियाँ, विशेष रूप से UIViewGroupOpacity

UIViewGroupOpacity (बूलियन - आईओएस) निर्दिष्ट करती है कि कोर एनिमेशन sublayers उनके superlayer की अस्पष्टता के वारिस।

Info.plist UIKit Keys

+0

दस्तावेज़ों के मुताबिक, कुंजी डिफ़ॉल्ट रूप से नहीं है यानी वारिस नहीं है। यह अजीब नहीं है? डिफ़ॉल्ट व्यवहार सीम का उत्तराधिकारी होना है। http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW6 – Robert

+0

सही - मुझे यह नहीं मिला या तो। अगर मैं विरासत नहीं चाहता, तो क्या मैं कुंजी को हाँ या नहीं कर सकता हूं? मैंने कहा 'नहीं' और उसने मेरे मुद्दों को ठीक नहीं किया। – user798719

20

मार्क जवाब पर विस्तार से बता दें: यदि आप Info.plist में UIViewGroupOpacity सेट करते हैं, यह अगर आप केवल इस बात का प्रतिपादन फिक्सिंग में रुचि रखते हैं आपके ऐप की पूरी विचारों के लिए व्यवहार बदल जाएगा,

redContainerView.layer.shouldRasterize = YES; 
// No setting rasterizationScale, will cause blurry images on retina. 
redContainerView.layer.rasterizationScale = [[UIScreen mainScreen] scale]; 
+1

आपने मुझे बहुत खुश किया। –

14

आईओएस अल्फा संपत्ति अपने subviews द्वारा विरासत में मिली है: विशेष दृश्य, आप भी इस स्निपेट का उपयोग कर सकते हैं। यदि हम लाल दृश्य के लिए अल्फा 0.3 सेट कर रहे हैं तो दोनों सबव्यू में अल्फा = 0.3 होगा। अपने सुपर व्यू से अल्फा मूल्य प्राप्त करने के लिए सबव्यूव को रोकने का कोई तरीका नहीं है।

समाधान हो सकता है। आप अल्फा 0.3 के साथ लाल दृश्य का रंग सेट कर सकते हैं। कलर प्रॉपर्टी इसके सबव्यूव से नहीं आती है। Yor कोड के नीचे का उपयोग कर सकते

[redView setBackgroundColor:[UIColor colorWithHue:238.0f/255.0f saturation:24.0f/255.0f brightness:24.0f/255.0f alpha:0.3]]; 
+0

सर्वोत्तम उत्तर इमो। – user1563544

+1

बिल्कुल सही जवाब। अवधारणा कि रंग में अल्फा और दृश्य में अल्फा है, प्रत्येक अलग-अलग व्यवहार के साथ, बहुत महत्वपूर्ण है। – Richard

+0

अल्फा मान सबव्यू – lazi74

संबंधित मुद्दे