Ios 使用autolayout运行时扩展uitableview footerview
我有一个UIView,它是uitableview的脚注视图。在运行时,用户将文本输入到footerview中的uitextview中,该视图应通过autolayout中的高度约束调整文本内容的大小 视图中的所有其他对象(标签、图像视图)都具有适当的约束,以适应textview的扩展 但是,整个footerview的高度不会改变大小,并且无法在tableview footerview高度上使用autolayoutIos 使用autolayout运行时扩展uitableview footerview,ios,uitableview,Ios,Uitableview,我有一个UIView,它是uitableview的脚注视图。在运行时,用户将文本输入到footerview中的uitextview中,该视图应通过autolayout中的高度约束调整文本内容的大小 视图中的所有其他对象(标签、图像视图)都具有适当的约束,以适应textview的扩展 但是,整个footerview的高度不会改变大小,并且无法在tableview footerview高度上使用autolayout 有人有解决办法吗?谢谢每次更改页脚高度时,您可以尝试再次设置页脚视图,以通知表格它应
有人有解决办法吗?谢谢每次更改页脚高度时,您可以尝试再次设置页脚视图,以通知表格它应该更改页脚高度。或者使用插图。从页脚视图中:
SetNeedsLayout()
LayoutIfNeeded()
ownertable.TableFooterView = this
很抱歉,很久以前误解了这个问题。您可以通过tableview的属性
tableFooterView
直接访问页脚
您可以在xib或viewDidLoad:
中创建默认页脚。一旦需要增加页脚的大小,可以从该属性中拉出ui视图
,并在必要时编辑其框架,使其更大
因此,请确保为
tableFooterView
分配了UIView
,因为默认情况下它是nil。要使高度更高,可以使用self.tableView.tableFooterView.frame=CGRectMake(您需要的任何rect)代码>尚未找到一个实际的、优雅的解决方案,但我已推迟使用解决方案来解决此问题:
将用作页脚的视图框架设置为所需的最大值。在我的情况下,这意味着给它约60像素的备用垂直空间。因为它是页脚,并且在它下面没有任何东西可以重新定位,所以用户不会受到解决方法的影响。
页脚视图的内容固定在顶部,并有足够的空间在需要时展开。
作为记录:我的视图是从nib文件加载的。
虽然理论上,interface builder中顶层视图的大小仅用于设计时,并且运行时大小应根据约束和生成的内部大小进行计算,对于这种特定情况,我发现高度与IB中的高度相同。我们可以通过以下代码更改页脚视图运行时的高度:
func methodToChangeTableViewFooterHeight()
{
var footerView:UIView = self._tableView.tableFooterView! as UIView
var frame:CGRect = footerView.frame
frame.size.height = self.heightCollectionCS.constant + 10
footerView.frame = frame
self._tableView.tableFooterView! = footerView
}
这里,self.heightCollectionCS.constant是集合视图的高度约束。
我们可以在该位置使用文本内容高度。那么表尾的节号是多少?请您扩展上述方法好吗?我尝试的是先设置页脚,然后通过代码添加约束。这在iOS 8中运行良好,但在iOS 7中崩溃。viewDidLayoutSubViews的tableviews实现似乎不调用super。请提供帮助。是的,在iOS 7上,并非每个控件的每个部分都支持自动布局。那么您建议如何解决此问题?