Ahoy के समान एक पुन: प्रयोज्य UIView बनाना!UITableViewCell
मैं UITableViewController में उपयोग किए गए UITableViewCell कार्यान्वयन के समान एक पुन: प्रयोज्य UIView (विभिन्न कारणों से) बनाने की कोशिश कर रहा हूं। मैं UIScrollView में पुन: प्रयोज्य दृश्य का उपयोग करना चाहता हूं, इसलिए मुझे पता है कि मैं कुछ हासिल करने की कोशिश नहीं कर रहा हूं जो पूरी तरह से अटूट है।
इस के डिफ़ॉल्ट दिया गया है:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//declare cell identifier
static NSString *cellIdentifier = @"cell_identifier";
//dequeue cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
//check cell is valid
if(cell == nil)
{
//create a new cell
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
//
//return cell
return cell;
}
इस से, यह ध्यान देने योग्य है कि सेल UITableView से dequeued है लायक है। यदि सेल अमान्य है, तो एक नया सेल बनाया गया है। मेरा सवाल यह है कि, फिर यह कोशिका फिर से पुन: उपयोग के लिए "कतारबद्ध" कैसे बनती है?
मेरे वर्तमान का प्रयास कार्यान्वयन इस तरह दिखता है:
- (TestScrollViewCell *)scrollView:(TestScrollView *)_scrollView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//declare cell identifier
static NSString *cellIdentifier = @"cell_identifier";
//dequeue cell
TestScrollViewCell *cell = (TestScrollViewCell *)[scrollView dequeueReusableCellWithIdentifier:cellIdentifier];
//check cell is valid
if(cell == nil)
{
//create a new cell
cell = [[TestScrollViewCell alloc] initWithFrame:CGRectZero];
}
//
//return cell
return cell;
}
मुझे लगता है कि मेरी TestScrollView करने के लिए एक NSMutableDictionary जोड़ने cellIdentifier और TestScrollViewCell (UIView) स्टोर करने के लिए सोच रहा हूँ और फिर उन्हें शब्दकोश के आधार पर तोड़ वापस बाहर कुंजी एक अच्छी शुरुआत होगी लेकिन क्या यह वास्तव में "पुन: प्रयोज्य" कोशिकाओं का एक वास्तविक कार्यान्वयन है?
जो मुद्दा मैं देख सकता हूं वह यह है कि मैं तब स्क्रॉलव्यू में UIView जोड़ रहा हूं जो फ्रेम के आधार पर स्थित है। इस अर्थ में एक दृश्य को अस्वीकार करने से मुझे पहले दृश्य को प्रभावित किए बिना स्क्रॉल व्यू में दृश्य जोड़ने की अनुमति नहीं दी जाएगी (फ्रेम को संशोधित करके) लेकिन निश्चित रूप से यह है कि UITableViewCells कैसे काम करता है, साथ ही अनुभाग शीर्षलेख/पाद लेख भी?
मैं this implementation पर देख रहा हूं जो कि उसी मार्ग का पालन कर रहा है जो मैं लागू करने का इरादा रख रहा था लेकिन मुझे 100% बेचा नहीं गया है कि यह पुन: प्रयोज्य कोशिकाओं का सही कार्यान्वयन है।
क्या किसी के पास इससे पहले कोई भाग्य है? मैं इस पर ऐप्पल का नेतृत्व करने की कोशिश कर रहा हूं लेकिन यूआईटीबल व्यूसेल और एमकेएनोटेशन व्यू (मैपकिट) के अलावा, मेरे लिए इससे कोई सुलभ कार्यान्वयन नहीं है।
किसी भी मदद की सराहना की जाएगी।