我有一个自定义UITableViewCell
,其中有两个彼此相邻的UILabels
。我需要左侧的UILabel
随着文本的增长而增长,而其右侧的UILabel
在这种情况下向右移动。
我正在使用自动版式并设置了约束。但是,左侧的UILabel永远不适合其文本。我试过sizeToFit
,但是什么也没做。有人可以告诉我我要去哪里了吗?
我认为自动布局会根据其内部内容大小来增加UILabel?
编辑
这是我的单元格的样子:
因此,左上方的标签具有以下约束:
固定到左/上边缘。
宽度限制
在其右侧标记的水平间距。
右边的标签也有类似的约束。
我需要UIImageView和灰色标签随着最左侧标签的增长而向右移动。
最佳答案
sizeToFit
将仅在给定大小内进行调整。如果标签的大小为(100,30),并且文本大小为(30,30),则它将其大小更改为(30,30)。
现在,如果标签的大小为(30,30),而文本大小为(50,30),则它将坚持为其分配的大小。简而言之,它占用了文本大小和分配大小中的最小值。即MIN(actualSize, textSize)
。
为了获得所需的实际宽度,您应该使用(NSString UIKit Additions):
- (CGRect) boundingRectWithSize:(CGSize)size
options:(NSStringDrawingOptions)options
attributes:(NSDictionary *)attributes
context:(NSStringDrawingContext *)context;
很遗憾地说,但是每次将文本分配给标签时都需要执行此操作。
可以在this @Shan's SO答案中找到示例。
关于ios - uilabel sizetofit不起作用uitableviewcell,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23910763/