Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.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
Iphone 如何配置iOs UITextView和UILabel,使其高度由其内容决定_Iphone_Ios - Fatal编程技术网

Iphone 如何配置iOs UITextView和UILabel,使其高度由其内容决定

Iphone 如何配置iOs UITextView和UILabel,使其高度由其内容决定,iphone,ios,Iphone,Ios,我基本上是在试图找到正确的方法来设计一个包含两个UITextView和三个UILabel的UITableViewCell。这两个UITextView具有动态内容,在运行时之前无法确定其大小 我尝试了各种方法,根据运行时加载到UITextView中的内容重新计算UITextView的高度,虽然非常费劲和空洞,但我已经成功地实现了这一点,但它们随后会溢出位于其下方xib中的UILabel 在计算UITextView的新大小之后,我真的必须重新计算每个UILabel的y坐标吗?有没有一种方法可以简单地

我基本上是在试图找到正确的方法来设计一个包含两个UITextView和三个UILabel的UITableViewCell。这两个UITextView具有动态内容,在运行时之前无法确定其大小

我尝试了各种方法,根据运行时加载到UITextView中的内容重新计算UITextView的高度,虽然非常费劲和空洞,但我已经成功地实现了这一点,但它们随后会溢出位于其下方xib中的UILabel

在计算UITextView的新大小之后,我真的必须重新计算每个UILabel的y坐标吗?有没有一种方法可以简单地让xib中的元素根据其新大小“推”它们下面的元素

使用多个动态文本视图配置UITableViewCell以使整个应用程序不包含计算高度和坐标的代码的正确方法是什么


或者,答案是我不应该在同一个UITableViewCell中放置多个动态UITextView吗?

我对单元格使用了类似的方法来计算其高度

tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
作用

    CGSize labelSize = [self.comments sizeWithFont:[UIFont fontWithName:@"Verdana" size:17.0] 
                                                 constrainedToSize:CGSizeMake(280.0f, MAXFLOAT) 
                                                     lineBreakMode:UILineBreakModeWordWrap];
    return labelSize.height + 20;
+20是用来填充的


而且,如果您拥有上面提到的每个单元格,那么您可以创建一个UITableViewCell类,其中包含以下UIView元素。

iOS似乎没有任何类型的流布局引擎——至少我想不出来。
但是,如果标签位于UITableViewCell的底部,则可以将UILabel的autoresizingMask mask属性设置为UIViewAutoresizingFlexibleBottomMargin,以便UILabels将自身锚定在底部。这是假设您已调整UITableViewCell的大小以适合整个控件。否则,我认为最好的处理方法是重新计算标签的y坐标

我发现在UIView上添加此类行为作为一个类别是很有用的,这样视图就可以调整其子视图的大小以适应任意文本,并且可以根据需要调整父视图的大小以适应新放大的子视图


谢谢你的帮助。您是如何深入研究随后出现的问题,即调整大小的标签会在其下方的标签上流血?然后是否有必要重新计算同一视图中每个标签的y坐标?如果只调整单个子视图的大小,那么这应该不是问题,因为可以使用弹簧相对于其父视图的顶部定位可调整大小的视图,相对于底部定位所有其他子视图,并随着标签/文本字段的增长调整父视图的大小。如果不可能,那么是的,您需要在调整子视图的大小后重新布局它们。可能只需调用
-layoutSubviews
,但这取决于您如何构建和管理视图,以及是否设置此更改的动画。