UILabel background устанавливается как ширина его длины?

47
3

Как показано на рисунке, я поместил backgroundcolor моего UILabel, который находится в TableView. Как сейчас, ширина фона установлена на ширину, которую я выбрал в раскадровке. Но я хотел бы установить ширину фона так же долго, как длина UILabel. Теперь все они одинаковые. Любые предложения для умного решения?!

enter image description here

// Appereance of the cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TableCell *cell;
long row = [indexPath row];

//cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.accessoryType = UITableViewCellAccessoryNone;

static NSString *CellIdentifier = @"TableCell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

cell.TitleLabel.text = [self.categoryList[row] categoryName];
cell.TitleLabel.backgroundColor = [UIColor colorWithHue:0.0 saturation:0.0 brightness:0.0 alpha:0.4];
cell.TitleLabel.layer.cornerRadius = 18;

return cell;
}

спросил(а) 2014-08-08T20:10:00+04:00 5 лет, 5 месяцев назад
1
Решение
50

Размер фона - это размер UILabel как все это фон метки. Вы должны изменить размер ярлыка, чтобы он соответствовал его содержимому, а затем изменится и размер фона.

Что-то вроде этого должно работать до того, как вы вернете ячейку.

CGRect frame = cell.TitleLabel.frame;

// save center to recenter after changing width
CGPoint center = cell.TitleLabel.center;

// only change width
frame.size.width = [cell.TitleLabel sizeThatFits:frame.size].width;
cell.TitleLabel.frame = frame;
cell.TitleLabel.center = center;

ответил(а) 2014-08-08T20:24:00+04:00 5 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема