Нарисовать прямоугольник в пользовательской ячейке таблицы

Как мне нарисовать прямоугольник в пользовательском классе ячеек таблицы? Ячейка в настоящее время имеет фоновое изображение с несколькими текстовыми метками. Я хотел бы нарисовать прямоугольник за каждой из меток, чтобы их было легче читать на подробном фоновом изображении.

Я знаю, что могу просто установить цвет фона метки, но я хотел бы иметь отступ между цветом фона и текстом. Если это возможно, я хотел бы знать, как! :)

Я создаю подкласс TTTableMessageItemCell в Three20, вызывается метод ниже, в котором вы можете играть с подвидами ячейки,

- (void)layoutSubviews {

[super layoutSubviews];

CGFloat padding = 16;
CGFloat boxWidth = self.contentView.width - 2*padding;
CGFloat textWidth = boxWidth - (padding*2);
CGFloat textHeight = 100;
CGFloat top = kTableCellSmallMargin;

// Position Heading Text
_titleLabel.frame = CGRectMake(padding, top, textWidth, _titleLabel.font.ttLineHeight);
top += _titleLabel.height;

// Position Detail Text
[self.detailTextLabel sizeToFit];
self.detailTextLabel.top = top+2*padding;
self.detailTextLabel.left = 2*padding;
self.detailTextLabel.width = textWidth;
self.detailTextLabel.height = 100;    
}

Я хотел бы, чтобы прямоугольники располагались за метками _titleLable и detailTextLabel.

edit Мне удалось добавить нужное поле, используя следующее:

UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor whiteColor];
view.frame = CGRectMake(padding, top, textWidth, textHeight+2*padding);
[self insertSubview:view belowSubview:self.detailTextLabel];

Он лежит поверх этикетки, и я не могу понять его за ним...

edit Я добавлял представление в неправильное подвид, исправил его с помощью

[[self.subviews objectAtIndex:0] insertSubview:view atIndex:0];

person TimOz44    schedule 23.06.2011    source источник
comment
См.: stackoverflow.com/questions/1106658/   -  person magma    schedule 23.06.2011


Ответы (1)


Вы можете добавить метки к представлениям и их к ячейке.

Вы можете использовать insertSubview:belowSubview: добавьте просмотры за вашими метками. С backgroundColor и правильной рамкой они будут делать то, что вы хотите.

Вы также можете принести detailLabel на передний план

person vikingosegundo    schedule 23.06.2011
comment
Я переопределяю существующий класс ячеек, поэтому не знаю, могу ли я изменить место добавления меток... - person TimOz44; 23.06.2011
comment
вы можете удалить ярлык из своего супервизора и добавить его в uiview. Кстати: если вы покажете нам свой код, вам будет проще вам помочь. - person vikingosegundo; 23.06.2011
comment
Я не включил код в свой первоначальный пост, потому что не думал, что это поможет. Я добавлю его сейчас, чтобы вы могли видеть, с чем я работаю. - person TimOz44; 23.06.2011
comment
Мне удалось добавить поле, но я не могу получить его за этикеткой, я добавил свой новый код в редактировании - person TimOz44; 23.06.2011
comment
Исправлено с помощью insertSubview:view atIndex - person TimOz44; 23.06.2011