Нарисуйте прямоугольник в пользовательской ячейке таблицы - PullRequest
0 голосов
/ 23 июня 2011

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

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

Я подклассифицирую 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];

1 Ответ

1 голос
/ 23 июня 2011

Вы можете добавить метки к видам, а они к ячейке.

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

Вы также можете вывести detailLabel вперед

...