Я получил очень простой UITableViewCell
подкласс. MyTableViewCell.h
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@interface MyTableViewCell : UITableViewCell {
CALayer *backgroundLayer;
}
@end
MyTableViewCell.m
#import "MyTableViewCell.h"
#import <QuartzCore/QuartzCore.h>
@implementation MyTableViewCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
backgroundLayer = [[CALayer alloc] init];
[backgroundLayer setBackgroundColor:[[UIColor yellowColor] CGColor]];
[[self layer] addSublayer:backgroundLayer];
}
return self;
}
- (void)layoutSublayersOfLayer:(CALayer *)layer {
[backgroundLayer setFrame:[layer frame]];
[super layoutSublayersOfLayer:layer];
}
- (void)dealloc {
[backgroundLayer release];
[super dealloc];
}
@end
Странно, вот результат: .
Может кто-нибудь объяснить это ?! Почему слой не рисует все ячейки, а только каждую вторую ячейку?
РЕДАКТИРОВАТЬ: Вот мой tableView:cellForRowAtIndexPath:
метод:
static NSString *reuseIdentifier = @"cellReuseIdentifier";
MyTableViewCell *cell = (MyTableViewCell *)[aTableView dequeueReusableCellWithIdentifier:reuseIdentifier];
if (cell == nil)
cell = [[[MyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier] autorelease];
return cell;