8
I have just created a UICollectionView in which The user can add images from their phone to the photo album feature in the app. I have the images save to the a subdirectory in the documents directory so more can be added and removed. However, when I scroll up and down the collection view, it is very laggy.
How can I make the scroll nice and smooth?
My Code: The first 16 images are preset images everything after that are from a subdirectory in documents Directory
- (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;
}
Time Profiler gave me this
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 _