मैं चाहता हूं कि मेरे अनुभागों में UICollectionView
छवि के साथ हेडर हो।
मैंने इन चरणों का पालन किया है:
- स्टोरीबोर्ड पर, मेरे लिए एक सहायक के रूप में एक हेडर सौंपा
UICollectionView
- इसे एक पहचानकर्ता दिया
UICollectionReusableView
इसके लिए एक उपवर्ग बनाया- स्टोरीबोर्ड पर कस्टम वर्ग को कक्षा को सौंपा।
- एक डाल
ImageView
हैडर गौण पर - फ़ाइल
ImageView
में कस्टम वर्ग के लिए एक आउटलेट बनाया.h
- निम्नलिखित को लागू किया गया
viewDidLoad
:
[self.collectionView registerClass:[ScheduleHeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerIdentifier];
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionReusableView *reusableview = nil;
if (kind == UICollectionElementKindSectionHeader)
{
ScheduleHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerIdentifier forIndexPath:indexPath];
headerView.headerImageView.image = [UIImage imageNamed:@"blah.png"];
reusableview = headerView;
}
return reusableview;
}
मुझे पता है कि डेटा स्रोत और प्रतिनिधि विधियां काम कर रही हैं क्योंकि मैं सभी कोशिकाओं और इसके वर्गों को देख सकता हूं। हालाँकि, मेरे पास मेरे हेडर नहीं हैं। मैं ऊपर की विधि पर एक ब्रेकपॉइंट में रखता हूं और इसे कभी नहीं बुलाया जा रहा है।
मैं क्या गलत कर रहा हूं?
kind == UICollectionElementKindSectionHeader
स्ट्रिंग सामग्री के बजाय स्ट्रिंग पॉइंटर्स की तुलना करते हैं, आप शायद[kind isEqualToString: UICollectionElementKindSectionHeader]
इसके बजाय उपयोग करना चाहते हैं ।