Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在绘制元素之前获取其高度';展示什么?目标-C_Ios_Objective C_Xcode - Fatal编程技术网

Ios 如何在绘制元素之前获取其高度';展示什么?目标-C

Ios 如何在绘制元素之前获取其高度';展示什么?目标-C,ios,objective-c,xcode,Ios,Objective C,Xcode,我正在尝试调整UITableViewCell的高度 “我的单元格”包含另一个视图,此视图将绘制文本并显示在单元格中 但是,文本高度可能会有所不同,我只能在调用drawRect(在嵌入的子视图中)后才能计算出来 在显示视图之前,有没有办法计算出视图的高度?只要您知道字体、绘制文本的视图的宽度以及必要时的换行模式,就可以使用以下任一方式: sizeWithFont: sizeWithFont:constrainedToSize: sizeWithFont:constrainedToSize:line

我正在尝试调整UITableViewCell的高度

“我的单元格”包含另一个视图,此视图将绘制文本并显示在单元格中

但是,文本高度可能会有所不同,我只能在调用drawRect(在嵌入的子视图中)后才能计算出来


在显示视图之前,有没有办法计算出视图的高度?

只要您知道字体、绘制文本的视图的宽度以及必要时的换行模式,就可以使用以下任一方式:
sizeWithFont:
sizeWithFont:constrainedToSize:

sizeWithFont:constrainedToSize:lineBreakMode:

最后我找到了方法,我想这不是最好的方法,但它很有效


我实现了一个方法,再次绘制所有内容,并立即返回绘制文本的高度。现在实际上我必须画两次文本,一次是为了得到它的高度,另一次是为了在屏幕上显示它

实际上它不是一个字符串,文本是用CGraphics绘制的。不管怎样,它仍然是您正在绘制的文本,所说的文本将是一个字符串。此外,还指出了绘制字符串的不同方法,答案非常有用。我使用一个以复杂方式绘制文本的库来支持ios上的自定义字体(ios似乎忽略了某些语言的自定义字体)。所以这个解决方案在我的情况下不起作用。我通过两次绘制相同的文本解决了这个问题,一次是为了获得高度,另一次是为了在屏幕上显示。我接受了你的回答,我希望我能投赞成票(因为我是新来的,所以声望很低)。