2012-03-07 9 views
8

आईओएस 5.1 जीएम की आज की रिलीज में मेरे आवेदन का परीक्षण करते समय, मैंने देखा कि मेरे कुछ विचार उनके पैटर्न वाले पृष्ठभूमि रंग की बजाय ठोस काले रंग खींच रहे हैं। सटीक वही कोड पिछले आईओएस रिलीज पर ठीक काम करता है (4.2 - 5.0.1 पर परीक्षण किया गया)।आईओएस 5.1: - [यूआईसीओलर रंगविथपैटर इमेज:] पृष्ठभूमि रंग ठोस काला खींचता है

स्क्रीनशॉट देखें: Screenshots of issue

किसी और को यह अनुभव किया है? क्या आसपास कोई काम है?

उत्तर

12

मेरे अपने प्रश्न का उत्तर देना (यह मुझे कुछ दिन का समय लगा इस डिबग करने के लिए, इसलिए उम्मीद है इस किसी और की बचत होती है कुछ समय;)):

मूल कारण एक पृष्ठभूमि के रूप में +[UIColor colorWithPatternImage:] के माध्यम से एक नमूनों UIColor (का उपयोग करना शामिल) एक UIView पर रंग जो एक ही छवि के साथ UIImageView से ऊपर है।

उदाहरण:

UIImageView *imageView = [[UIImageView alloc] initWithImage:anImage]; 
    [_containerView addSubview:imageView]; 

    UIColor *patternColor = [UIColor colorWithPatternImage:anImage]; 
    UIView *patternView = [[UIView alloc] initWithFrame:frame]; 
    [patternView setBackgroundColor:patternColor]; 
    [_containerView addSubview:patternView]; 

दोनों विचारों काला आकर्षित, और वहाँ एक कैशिंग मुद्दा जहां छवि के अन्य सभी उपयोगों काला खींचता है जब तक आवेदन निलंबित कर दिया है प्रतीत होता है/फिर से शुरू किया।

मैंने ऐप्पल के साथ समस्या # 10795514 दायर की है, लेकिन ऐसा लगता है कि यह इसे 5.1 में बना देता है। इस समस्या में कमी इस पर उपलब्ध है: http://iccir.com/public/radar/Radar10795514.zip

मुझे मिला एकमात्र कामकाज दृश्य पदानुक्रम को फ़्लैट करना था और पैटर्न दृश्य को एक ही दृश्य में दो बार आकर्षित करना था।

+1

+1 - साझा करने के लिए धन्यवाद! – Till

+0

वास्तविक समस्या colorWithPatternImage III5 में UIImageView के लिए लागू नहीं होती है, आपको स्पष्ट रूप से UIView का उपयोग करना चाहिए .... – anders

0

मैं एक iPad मैं कहाँ colorWithPatternImage उपयोग कर रहा था इस तरह की एक UIScrollView पर पर iOS 5.1 के साथ इस समस्या हो रही थी:

scrollView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"YOURIMAGE.jpg"]]; 

यह iOS 6 में काम करता है (उदाहरण के लिए iPad2 और आगे), तथापि, एक मूल पर आईपैड, जहां आप केवल अपना आईओएस 5.1.1 पर अपडेट कर सकते हैं, यह आपको सफेद या अन्य ठोस रंग दिखाएगा जिसे आपने कहीं परिभाषित किया है। ठीक एक से थोड़ा कम आकर्षक तरीका है जहाँ आप इस तरह scrollview की backgroundView सेट का उपयोग करने के लिए है:

scrollView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"YOURIMAGE.png"]]; 

मैं iOS 6 और आईओएस 5.1 में यह परीक्षण किया है, तो यह भी अगर आप iPhone करने के लिए आवेदन करना चाहिए वहां समस्याएं चल रही हैं।

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