UILabel背景设置为它的长度宽度?

时间:2014-08-08 17:10:30

标签: ios objective-c uitableview uilabel

如图所示我已经将我的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;
}

1 个答案:

答案 0 :(得分:0)

背景的大小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;