如图所示我已经将我的UILabel的背景色放在了TableView中。现在,背景的宽度设置为我在故事板中选择的宽度。但是,我想将背景的宽度设置为与UILabel长度一样长。现在他们都是一样的..对智能解决方案的任何建议?!
// 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;
}
答案 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;