Вот решение, которое немного похоже на клочок, но оно точно соответствует моим требованиям ... с одним фатальным недостатком: когда клетки повторно используются, появляется звездный угол, когда я этого не хочу.
http://dl.dropbox.com/u/2349787/UIImage_Position_subclassed_cell2.zip
Я все еще использую drawRect здесь, но только потому, что self.starImage имеет значение null, если вы обращаетесь к нему в методе initWithStyle. Кроме того, вместо добавления подпредставления в self.contentView, я добавляю его в self.backgroundView, чтобы кнопка вмешательства ячейки не мешала ему. Звездный угол расположен правильно как в портретном, так и в ландшафтном режиме, и отлично работает в режиме редактирования.
С проблемой повторного использования ячеек, это все еще не пойдет ... так что, возможно, я вернулся к попытке сделать это без создания подкласса UITableViewCell.
Я открыт для любых дальнейших предложений. Спасибо!
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
// Initialization code
self.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cellBackground.png"]] autorelease];
}
return self;
}
- (void) drawRect:(CGRect)rect {
UIImageView *imageView = [[[UIImageView alloc] initWithFrame:CGRectMake(self.bounds.size.width - self.starImage.size.width, 0, self.starImage.size.width, self.starImage.size.height)] autorelease];
imageView.image = self.starImage;
imageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
[self.backgroundView addSubview:imageView];
}