iPhone SDKレシピ1:UITableViewで縞模様(ストライプ)

UITableViewで行を縞模様にするためには、UITableViewCellの背景を全てクリアしてから、backgroundViewのbackgroundColorを変更する。

ソースはこんな感じ。


UITableViewDelgate#tableView: cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    static NSString *CellIdentifier = @"IndexCell";
  
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
		UIView *bgView = [[UILabel alloc] initWithFrame:CGRectZero];
		cell.backgroundView = bgView;
		[bgView release];
		for (UIView *view in cell.contentView.subviews) {
			view.backgroundColor = [UIColor clearColor];
		}
    }
    
    // Set up the cell...
	NSInteger row = [indexPath row];
	
	[cell setText:@"Test"];
	
	if (row % 2 == 1) {
		cell.backgroundView.backgroundColor = [[[UIColor alloc] initWithRed:0.3 green:0.3 blue:0.3 alpha:0.1] autorelease];
	} else {
		cell.backgroundView.backgroundColor = [UIColor whiteColor];
	}
	[cell retain];
	[pool release];

    return [cell autorelease];
}