我是iOS编程的新手,并且有一部分界面如下所示:
我希望它表现得像是,当这个表视图中没有行时,标签和包含tableview的scrollview应该被隐藏,而父UIView(灰色的)应该只包装文本字段(保留边距为课程)。如果将某些行添加到表视图中(通过在文本字段中输入文本),则应显示标签和表视图,并且此父UIView应调整大小以包装它们。当它的高度到达使它变得如此之大以至于它到达底部边缘时,它不应该再扩展。如何实现?
编辑:为了使它更清晰,我知道如何向表视图添加行,如何隐藏元素,我不知道的是如何调整这个父UIView的大小。编辑2:让某些人更加清楚:当我隐藏子视图时,他们的父视图(灰色区域)具有与之前相同的大小,这与LinearLayout在其子项被隐藏时在Android上的行为类似。我想要的是当它的子节点为GONE而不是HIDDEN时,它的行为就像LinearLayout。
答案 0 :(得分:2)
使用
label.hidden = YES;
scrollView.hidden = YES;
使用此
答案 1 :(得分:1)
我的简洁回复:
tableview.superview
喔。我会做同样的技巧,但使用uiTextView
及其contextSize。我可以搜索代码是否有帮助,但uiview
和uitableview
没有contextSize
属性。
答案 2 :(得分:0)
使用AutoLayout是实现此目的的最佳方法,但由于您没有提及使用它,您可以尝试这样的事情,
相对于标签放置tableview, tableView.frame = CGRectMake(x,label.frame.origin.y + label.frame.size.height,width,height);
当你调用label.hidden = YES时,将标签的高度设为'0'
一旦u为ui元素重置帧,请调用setNeedsDisplay / setNeedsLayout重绘视图。