Ios UILabel背景设置为其宽度';长度是多少?

Ios UILabel背景设置为其宽度';长度是多少?,ios,objective-c,uitableview,uilabel,Ios,Objective C,Uitableview,Uilabel,正如图片所示,我已经将UILabel的背景色放在了TableView中。现在,背景的宽度设置为我在故事板中选择的宽度。但是,我想将背景的宽度设置为UILabel长度的长度。现在他们都一样了。。有没有关于智能解决方案的建议 背景的大小是ui标签的大小,因为它是标签的背景。您需要调整标签的大小以适应其内容,然后背景大小也将改变 在你返回手机之前,类似的方法应该会起作用 CGRect frame = cell.TitleLabel.frame; // save center to recenter

正如图片所示,我已经将UILabel的背景色放在了TableView中。现在,背景的宽度设置为我在故事板中选择的宽度。但是,我想将背景的宽度设置为UILabel长度的长度。现在他们都一样了。。有没有关于智能解决方案的建议


背景的大小是
ui标签的大小,因为它是标签的背景。您需要调整标签的大小以适应其内容,然后背景大小也将改变

在你返回手机之前,类似的方法应该会起作用

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;

背景的结果是正确的,但当我这样做时,高度变得很低。所以这让我们的生活变得疯狂。而且文本不再以视图为中心。有什么建议可以让我为cornerRadius 18获得正确的高度,并将标签设置为居中对齐@Dima@MartinBorstrand请检查我编辑的答案以修复此问题。我编辑了它以保持中心和高度。谢谢,太好了!只需要从cell.center=center;to cell.TitleLabel.center=中心;为了在标签的每一面和背景之间留出一些空间,我设置了宽度+10;所以不,它是完美的!再次感谢,让我开心@Dima@MartinBorstrand修正了我答案中的错误,谢谢:)没问题!
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;