Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.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 使用autolayout运行时扩展uitableview footerview_Ios_Uitableview - Fatal编程技术网

Ios 使用autolayout运行时扩展uitableview footerview

Ios 使用autolayout运行时扩展uitableview footerview,ios,uitableview,Ios,Uitableview,我有一个UIView,它是uitableview的脚注视图。在运行时,用户将文本输入到footerview中的uitextview中,该视图应通过autolayout中的高度约束调整文本内容的大小 视图中的所有其他对象(标签、图像视图)都具有适当的约束,以适应textview的扩展 但是,整个footerview的高度不会改变大小,并且无法在tableview footerview高度上使用autolayout 有人有解决办法吗?谢谢每次更改页脚高度时,您可以尝试再次设置页脚视图,以通知表格它应

我有一个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上,并非每个控件的每个部分都支持自动布局。那么您建议如何解决此问题?