Iphone 如何配置iOs UITextView和UILabel,使其高度由其内容决定
我基本上是在试图找到正确的方法来设计一个包含两个UITextView和三个UILabel的UITableViewCell。这两个UITextView具有动态内容,在运行时之前无法确定其大小 我尝试了各种方法,根据运行时加载到UITextView中的内容重新计算UITextView的高度,虽然非常费劲和空洞,但我已经成功地实现了这一点,但它们随后会溢出位于其下方xib中的UILabel 在计算UITextView的新大小之后,我真的必须重新计算每个UILabel的y坐标吗?有没有一种方法可以简单地让xib中的元素根据其新大小“推”它们下面的元素 使用多个动态文本视图配置UITableViewCell以使整个应用程序不包含计算高度和坐标的代码的正确方法是什么Iphone 如何配置iOs UITextView和UILabel,使其高度由其内容决定,iphone,ios,Iphone,Ios,我基本上是在试图找到正确的方法来设计一个包含两个UITextView和三个UILabel的UITableViewCell。这两个UITextView具有动态内容,在运行时之前无法确定其大小 我尝试了各种方法,根据运行时加载到UITextView中的内容重新计算UITextView的高度,虽然非常费劲和空洞,但我已经成功地实现了这一点,但它们随后会溢出位于其下方xib中的UILabel 在计算UITextView的新大小之后,我真的必须重新计算每个UILabel的y坐标吗?有没有一种方法可以简单地
或者,答案是我不应该在同一个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
,但这取决于您如何构建和管理视图,以及是否设置此更改的动画。