iOS API - sizeThatFits:不起作用

时间:2016-09-02 06:08:17

标签: ios

更新:

很抱歉,我之前没有足够和错误地描述它。

我做了一些像这样的代码:

UIView *view = [[UIView alloc] initWithFrame:someFrame];
CGSize size = [view sizeThatFits:CGSizeMake(100, 100)];

但是,当我观察size时,它什么都没有:{0, 0}

我使用它错了吗?

即使我将初始帧传递给我的视图,大小仍然没有返回。

我搜索了一些帖子,有人说UILabel也可能受到影响。

3 个答案:

答案 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