मैंने अभी एक UICollectionView
बनाया है जिसमें उपयोगकर्ता अपने फोन से छवियों को ऐप में फोटो एलबम सुविधा में जोड़ सकते हैं। मेरे पास दस्तावेज़ निर्देशिका में उपनिर्देशिका में छवियां सहेजी गई हैं ताकि अधिक जोड़ा जा सके और हटाया जा सके। हालांकि, जब मैं संग्रह दृश्य को ऊपर और नीचे स्क्रॉल करता हूं, तो यह बहुत कमजोर होता है।UICollectionView scrolling धीमा है
मैं स्क्रॉल को अच्छा और चिकनी कैसे बना सकता हूं?
मेरे कोड: पहले 16 चित्र हैं कि उसके बाद दस्तावेजों निर्देशिका में एक उपनिर्देशिका से कर रहे हैं पूर्व निर्धारित छवियों सब कुछ
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Custom" forIndexPath:indexPath];
//Current index number
int index=indexPath.section * noOfSection + indexPath.row;
//Check if its the preset photos
if(index<16){
NSString *name=[recipePhotos objectAtIndex:indexPath.section * noOfSection + indexPath.row];
cell.imageView.image=[UIImage imageNamed:name];
}
//not preset photos, so retrieve the photos the user added
else {
NSData *data= [NSData dataWithContentsOfFile:[recipePhotos objectAtIndex:index]];
UIImage *theImage=[UIImage imageWithData:data];
cell.imageView.image=theImage;
data=nil;
}
return cell;
}
समय प्रोफाइलर मुझे दिया इस
Running Time Self Symbol Name
568.0ms 63.1% 0.0 Main Thread 0x4048
320.0ms 35.5% 0.0 _pthread_start 0x405e
320.0ms 35.5% 0.0 thread_start
320.0ms 35.5% 0.0 _pthread_start
320.0ms 35.5% 0.0 0x1084be960
310.0ms 34.4% 1.0 0x1084be6f0
7.0ms 0.7% 0.0 mach_msg
2.0ms 0.2% 2.0 objc_msgSend
1.0ms 0.1% 1.0 -[NSAutoreleasePool release]
4.0ms 0.4% 0.0 _dispatch_mgr_thread 0x4052
4.0ms 0.4% 0.0 _dispatch_mgr_thread
4.0ms 0.4% 0.0 _dispatch_mgr_invoke
4.0ms 0.4% 4.0 kevent
3.0ms 0.3% 0.0 _dispatch_worker_thread2 0x62b24
3.0ms 0.3% 1.0 start_wqthread
3.0ms 0.3% 0.0 _dispatch_worker_thread2 0x62a84
3.0ms 0.3% 0.0 start_wqthread
3.0ms 0.3% 0.0 _pthread_wqthread
3.0ms 0.3% 0.0 _dispatch_worker_thread2
3.0ms 0.3% 0.0 _dispatch_queue_invoke
3.0ms 0.3% 0.0 _dispatch_queue_drain
3.0ms 0.3% 0.0 _dispatch_client_callout
2.0ms 0.2% 0.0 my_io_execute_passive_block
1.0ms 0.1% 0.0 __86-[NSPersistentUIManager writePublicPlistWithOpenWindowIDs:optionallyWaitingUntilDone:]_block_invoke_0835
1.0ms 0.1% 0.0 -[NSPersistentUIManager writePublicPlistData:]
1.0ms 0.1% 0.0 -[NSURL(NSURLPathUtilities) URLByAppendingPathComponent:]
1.0ms 0.1% 0.0 -[NSURL getResourceValue:forKey:error:]
1.0ms 0.1% 0.0 CFURLCopyResourcePropertyForKey
1.0ms 0.1% 0.0 __block_global_2
1.0ms 0.1% 0.0 -[NSPersistentUIManager writeRecords:withWindowInfos:flushingStaleData:]
1.0ms 0.1% 0.0 _dispatch_call_block_and_release
1.0ms 0.1% 0.0 0x1084b8580
1.0ms 0.1% 0.0 mach_msg_send
1.0ms 0.1% 0.0 mach_msg
1.0ms 0.1% 1.0 mach_msg_trap
1.0ms 0.1% 0.0 _pthread_struct_init 0x62a83
1.0ms 0.1% 0.0 start_wqthread
1.0ms 0.1% 0.0 _pthread_wqthread
1.0ms 0.1% 1.0 _pthread_struct_init
1.0ms 0.1% 0.0 start_wqthread 0x62a7f
कितने छवियों को ध्यान में रखते हैं? मेरे अनुभव से, बहुत सारी छवियां फ्रेम दर को धीमा कर सकती हैं। – LAMBORGHINI
यह केवल निर्देशिका से छवियों को लोड करने वाले कक्षों के साथ होता है .. ऊपर अपना कोड देखें .. मैंने अभी इसे अपडेट किया है @ कोडबैंडिट्स –
क्या आप 'संग्रहसेल' में कोई कस्टम ड्राइंग करते हैं? – rog