2013-09-21 9 views
6

दिखा रहा है मेरे पास एक ऐप है जिसे मैं आईओएस 6 के लिए बनाया गया था जिसे मैंने हाल ही में आईओएस 7 में अपग्रेड किया था। मेरे पास UIScrollView कुछ कस्टम UIViews के साथ है। उन UIViews के भीतर, मेरे पास प्रत्येक में एक UIImageView है। किसी कारण से, जब मैंने आईओएस 6 में UIImageView.image सेट किया, तो यह ठीक दिखाई देता है, लेकिन आईओएस 7 उन्हें नहीं दिखाएगा। कोड यह रहा:आईओएस 7 के साथ UIImageView

int i = 0; 

     for (UIImageView *imageView in myImageViewsOutletCollection) 
     { 
      imageView.image = nil; 
      if (imagesArray.count > i) 
       imageView.image = [UIImage imageWithData:[imagesArray objectAtIndex:i]]; 

      if (imageView.image == nil) 
       NSLog(@"signature image with index: %i is nil", i); 
        else 
          NSLog(@"It Worked") 

      i++; 
     } 

मेरा ऐप प्रवेश करने जाता है: @"It Worked", इसलिए मुझे पता है UIImageView.imagenil नहीं है। मुझ से ऐसी कौनसी गलती हो जाएगी?

संपादित करें:

मैं UIImageRenderingMode की कोशिश की:

UIImage *imageForView = [UIImage imageWithData:[imagesArray objectAtIndex:i]]; 
imageForView = [imageForView imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

imageView.image = imageForView; 

फिर भी काम नहीं किया। हालांकि, @ Max_Power89 ने कहा:

के रूप में यह सेब डेवलपर मंच पर लिखा है: imageWithData बग रिपोर्ट

यह एक बग होना चाहिए। मुझे उम्मीद है कि वे जल्दी ही समस्या को ठीक करेंगे।

संपादित करें 2:

मैं भी इस कहा:

NSData *pngData = UIImagePNGRepresentation(imageView.image); 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
NSString *docs = [paths objectAtIndex:0]; 

NSError *writeError = nil; 
[pngData writeToFile:[docs stringByAppendingFormat:@"/image.png"] options:NSDataWritingAtomic error:&writeError]; 
if(writeError!=nil) 
{ 
    NSLog(@"%@: Error saving image: %@", [self class], [writeError localizedDescription]); 
} 

छवि को एप्लिकेशन की निर्देशिका में बचा लिया गया था, तो मैं निश्चित रूप से कह कि छवि नहीं के बराबर नहीं है।

+0

छवि दृश्यों का आकार लॉग इन करें – Wain

+0

@Wain - फ्रेम का NSLog '0,0,320,120' कोई समस्या नहीं है –

+0

क्या हमारे पास इसके लिए एक समाधान समाधान है? मुझे एक ही समस्या का सामना करना पड़ रहा है। यह 'UITableView' के लिए भी जाता है :( – dzep

उत्तर

1

आईओएस 7 में ऑटो लेआउट बाधाओं के साथ यह एक समस्या/बग है। यदि आप UIView पर बाधाओं को हटाते हैं, तो यह कोई समस्या नहीं है। यदि आपको आवश्यकता हो तो आप प्रोग्रामेटिक रूप से फ़्रेम सेट कर सकते हैं।

+0

यह उत्तर मेरे लिए काम किया। – chongzixin

0

आईओएस 7 में, डिफ़ॉल्ट रूप से एक छवि लोड करना केवल अल्फा चैनल लोड करें, और इसे विस्तारित रंग रंग के साथ टिंट करें। आपकी छवि दिखा रही है, बस यह पृष्ठभूमि के साथ एक ही रंग है।

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode 

सेट इसे करने के लिए:

UIImageRenderingModeAlwaysOriginal 
+0

तो, मैं इसे कैसे ठीक करूं? - @ केली फेंग –

+0

मुझे बताएं कि यह काम करता है। @ कोडी –

+0

काम नहीं किया। महान सुझाव, यद्यपि। –

0

के रूप में यह सेब डेवलपर मंच पर लिखा है: imageWithData bug report

यह एक बग होना चाहिए। मुझे उम्मीद है कि वे जल्दी ही समस्या को ठीक करेंगे।

+0

हम्म की मदद कर सकता है, यह हो सकता है। हालांकि, कोड शून्य वापस प्रतीत नहीं होता प्रतीत होता है। –

0

शायद यह किसी के लिए सहायक होगा: मुझे एक ही समस्या थी - कम से कम यह ऐसा दिखाई देता था। अंत में मुझे पता चला कि UIScrollView कुछ पृष्ठभूमि दृश्य परतों को छुपा रहा था। UIScrollView-background को "समूह तालिका दृश्य पृष्ठभूमि रंग" .xib-file में सेट किया गया था। अगर मैंने इसे "स्पष्ट रंग" में बदल दिया है तो व्यवहार सामान्य पर वापस चला गया (जैसे आईओएस 6 में)। ऐसा लगता है कि आईओएस 6 से 7 तक उस तत्व के लिए "डिफ़ॉल्ट व्यवहार" बदल गया है। शायद कोई इसकी पुष्टि करने में सक्षम है।