更新:
很抱歉,我之前没有足够和错误地描述它。
我做了一些像这样的代码:
UIView *view = [[UIView alloc] initWithFrame:someFrame];
CGSize size = [view sizeThatFits:CGSizeMake(100, 100)];
但是,当我观察size
时,它什么都没有:{0, 0}
。
我使用它错了吗?
即使我将初始帧传递给我的视图,大小仍然没有返回。
我搜索了一些帖子,有人说UILabel
也可能受到影响。
答案 0 :(得分:3)
您的观点不包含任何内容,也没有任何内容尺寸,因此尺寸为零。
试试这些,你会发现它有效:
UILabel *label [UILabel new];
label.text = @"test test test test";
CGSize size = [label sizeThatFits:CGSizeMake(20, CGFLOAT_MAX)];
答案 1 :(得分:1)
正如@Konstantin所说:
您的观点不包含任何内容,也没有任何内容 内容大小
所以尝试使用此代码
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];
CGSize size = view.size;
答案 2 :(得分:1)
检查__init__.py
的说明,它说明,
要求视图计算并返回最适合的大小 指定大小。一个适合接收者子视图的新尺寸。
因此,您的视图应该有一些子视图或内容,否则它将返回sizeThatFits
。