更新 UITableView 内的 UIView 帧大小 - swift
Posted
技术标签:
【中文标题】更新 UITableView 内的 UIView 帧大小 - swift【英文标题】:Update UIView frame size inside a UITableView - swift 【发布时间】:2015-07-10 05:59:59 【问题描述】:我在这样的 UITableView 中有一个 UIView
问题是当我尝试以编程方式调整 UIView 的高度时,UITableView 内的现有单元格没有向上移动
我已尝试更新
UITableview size
,
UITableviewwrapperview
我一直在尝试更新
TableView.contentInset
TableView.contentOffset
size,remove Auto Layout 和 Auto Layout ,但结果都是一样的。
这是我的代码:
@IBAction func SwitchChanged(sender: UISwitch)
if sender.on
self.ViewBOX.frame.size.height = self.ViewBOX.frame.size.height + 275
var Frame = self.TableView.tableHeaderView!.frame
Frame.size.height = self.ViewBOX.frame.size.height;
TableView.tableHeaderView?.frame = Frame
else
self.ViewBOX.frame.size.height = self.ViewBOX.frame.size.height - 275
var Frame = self.TableView.tableHeaderView!.frame
Frame.size.height = self.ViewBOX.frame.size.height;
TableView.tableHeaderView?.frame = Frame
这是结果图片
1:
2:更新后
请有人帮我解释一下我错过了哪一部分。
谢谢
【问题讨论】:
【参考方案1】:每次更改标题视图框架时,都需要重新分配表标题中的视图。
YourView.frame = Frame
TableView.tableHeaderView = YourView
然后删除:
TableView.tableHeaderView?.frame = Frame
谢谢
【讨论】:
【参考方案2】:如果您想以一种好的方式进行更改,您的代码应该如下所示。
@IBAction func SwitchChanged(sender: UISwitch)
UIView.animateWithDuration(0.3, animations:
if sender.on
self.ViewBOX.frame.size.height = self.ViewBOX.frame.size.height + 275
else
self.ViewBOX.frame.size.height = self.ViewBOX.frame.size.height - 275
TableView.tableHeaderView = self.ViewBOX
, completion:
)
【讨论】:
以上是关于更新 UITableView 内的 UIView 帧大小 - swift的主要内容,如果未能解决你的问题,请参考以下文章
当 SuperViews 约束改变时更新 SubView 约束
带有 AutoLayout 的 UIScrollView 内的 UITableView 动态内容大小高度