我在这样的UITableView中有一个UIView
问题是当我尝试以编程方式调整UIView的高度时,UITableView内部的现有单元格没有向上移动
我已经尝试过更新
UITableview size
,
UITableviewwrapperview
我一直在尝试更新
TableView.contentInset
TableView.contentOffset
尺寸,删除自动布局和自动布局,但结果相同。
这是我的代码:
@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:更新后
有人请帮助我并解释我错过了哪一部分。
感谢
答案 0 :(得分:2)
每次更改标题视图框时,都需要在表格标题中重新指定视图。
YourView.frame = Frame
TableView.tableHeaderView = YourView
并删除:
TableView.tableHeaderView?.frame = Frame
由于
答案 1 :(得分:1)
如果您希望以一种好的方式更改此代码,您的代码应如下所示。
@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: {
})
}