On Jan 4, 2010, at 12:03 AM, John Michael Zorko wrote:

> I'm trying to determine why my tableviews scroll so jerkily on non-3GS 
> devices. The datasource only has perhaps 170 records, so I think it may have 
> something to do with how i'm instantiating the cells in 
> -tableView:cellForRowAtIndexPath. In other apps i've done, I create the view 
> for the cell programmatically, and alloc / init the cell if I can't dequeue 
> it. However, in this app, I have the cell's view loaded from a XIB. Is there 
> a better way of defining my cell's view with IB that still results in a 
> performant tableview?
> 
> - (UITableViewCell *)tableView:(UITableView *)tableViewIn 
> cellForRowAtIndexPath:(NSIndexPath *)indexPath
> {
>       static NSString *cellID = @"mycellID";
> 

Have you verified that you've set the Identifier for the custom cell in the XIB 
to match the above cellID?  If they don't match, you'll end up loading the XIB 
for every row in the table view.  If things are set up properly, the XIB will 
be loaded once for each visible row on the screen plus a few more depending on 
how fast you scroll.


>       MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication 
> sharedApplication] delegate];
> 
>       LogDailyCell *cell = (LogDailyCell *)[tableViewIn 
> dequeueReusableCellWithIdentifier:cellID];
> 
>       if (nil == cell)
>       {
>               NSArray *nib = [[NSBundle mainBundle] 
> loadNibNamed:@"LogDailyCell"
>                                                                               
>                          owner:self options:nil];
>               for (id oneObject in nib)
>               {
>                       if ([oneObject isKindOfClass:[LogDailyCell class]])
>                       {
>                               cell = (LogDailyCell *)oneObject;
>                               break;
>                       }
>               }
>       }

This is less of an issue, but iterating over the objects in the XIB can be 
avoided by adding an outlet connected to the custom cell to your class that 
owns the XIB.  I've got a sample project that demonstrates this available at

        http://majestysoftware.com/code/CustomCellFromNib.zip

The project was created pre-3.0, so you'll get a deprecation warning when 
building.  The basic concept is still valid in 3.x.

--
   Tony Ingraldi
   http://www.majestysoftware.com/
   Old-fashioned values and high-tech 
know-how_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to