2017-05-01 19 views
10

हैलो मैं उत्पाद तालिका और उत्पाद विवरण प्रत्येक उत्पाद के लिए देखने के लिए है मैं एक उत्पाद का चयन अपने विवरण की जाँच करने के लिए मैं पुन: प्राप्त करने कैश्ड कोशिश कर रहा हूँ कि डाउनलोड किया है और डिस्क और हर बार उपयोगकर्ता पर स्मृति पर कैश कर रहे हैं कई छवियों है छवियों और यह में स्थापित मेरी चार UIImageView एक कस्टम सेल के अंदर के लिए UITableViewController मैं हालांकि मैं उन्हें NSLog() के माध्यम से प्रवेश कर सकते हैं छवियों सेट करने में सक्षम नहीं हूँ समारोह मैं इस कोड का उपयोग कर रहा हूँ:customCell में UIImageView के माध्यम से पाशन

int index = 0; 
    int indexOfImages = 1; 
    self.imageCache = [[SDImageCache alloc] initWithNamespace:@"menuImage"]; 
    for (UIImageView *currentImageView in cell.contentView.subviews) 
    { 
     NSLog(@"the imageindex is: %d",indexOfImages); 
     NSLog(@"the index is: %d",index); 
     NSLog(@"the count is: %lu",(unsigned long)[self.currentProduct.mirsaProductUrlImage count]); 
     if (index < [self.currentProduct.mirsaProductUrlImage count]) { 
      [self.imageCache queryDiskCacheForKey:self.currentProduct.mirsaProductUrlImage[indexOfImages] 
    done:^(UIImage *image, SDImageCacheType cacheType) { 
       if (image) { 
        currentImageView.image = image; 
       } 
      }]; 
      indexOfImages++; 
      index++; 
     } 
     else 
     { 
      break; 
     } 
    } 

और अगर मैं इस

for (UIImageView *currentImageView in self.tableView.subViews) 

मैं इस त्रुटि UITableViewWrapperView setImage मिला करने के लिए लूप रास्ता बदलने की कोशिश:]: गैर मान्यता प्राप्त चयनकर्ता उदाहरण

के लिए भेजा मैं सिर्फ अगर मैं जानना चाहता हूँ मैं गलत तरीके से लूपिंग कर रहा हूं जिसका मतलब है कि मैं इस लूप के माध्यम से उन तक पहुंचने में सक्षम नहीं हूं या क्या चल रहा है?

+3

यह स्पष्ट नहीं है कि क्या आप वास्तव में प्राप्त करने के लिए कोशिश कर रहे हैं, लेकिन लगभग निश्चित रूप से अपने tableview की subviews तक पहुँचने का प्रयास सही नहीं है मार्ग। आपका अपवाद इसलिए होता है क्योंकि आपकी सभी तालिका के सबव्यूज UIImageViews नहीं हैं। – Paulw11

+0

मेरे दोस्त मैं UITableView की मेरी customCell अंदर अपने सभी UIImageView का उपयोग करने की मैं यह कैसे प्राप्त कर सकते हैं कोशिश कर रहा हूँ? –

+0

हाँ, आपने कहा कि है, लेकिन यह स्पष्ट नहीं है * क्यों * यदि आप ऐसा चाहते हैं। आपकी टेबलव्यू कक्ष केवल आपके डेटा मॉडल का प्रतिनिधित्व कर रहे हैं। क्या आप प्लेसहोल्डर छवियों को कैश की गई छवियों से प्रतिस्थापित करने का प्रयास कर रहे हैं जिन्हें सेल से पहले ही प्रदर्शित किया जा चुका है नेटवर्क से पुनर्प्राप्त किया गया है? – Paulw11

उत्तर

7

आप करने के लिए है पाश को बदलने के रूप में:

for (UIView *currentView in cell.contentView.subviews) 
    { 
     if([currentView isKindOfClass:[UIImageView class]]) 
     { 
      // here Do All the stuff for imageViews 
     } 
    } 

cellForRowAtIndexPathमें यह सब सामान करेंऔर बदलने के लिए imageView छवि इस तरह imageView के कमजोर उदाहरण लेते हैं:

__weak UIImageView *weakImage = currentImageView; 
[self.imageCache queryDiskCacheForKey:self.currentProduct.mirsaProductUrlImage[indexOfImages] 
    done:^(UIImage *image, SDImageCacheType cacheType) { 
       if (image) { 
        weakImage.image = image; 
       } 
}]; 
+0

ठीक है कि मैंने –

+0

को कमजोर करने के लिए छविदृश्य उदाहरण बदलना कम स्मृति लेगा। – ajjjjjjjj

0

मुझे लगता है कि यह अपने कोड के साथ काम नहीं करेगा। रूप

के लिए (cell.contentView.subviews में UIImageView * currentImageView)

इस लाइन UIImageView करने के लिए अपने सेल के contentView के सभी subviews कन्वर्ट करने के लिए कोशिश करेंगे।

आप सीधे अपने सभी UIImageView करने के लिए टैग सेट कर सकते हैं और उसके बाद की तरह

cell.contentView.viewWithTag (yourtag)

और सेट छवि यह करने के लिए टैग के साथ उन तक पहुँच