更新UITableView中的UIView帧大小 - swift

时间:2015-07-10 05:59:59

标签: ios swift uitableview uiview ios8

我在这样的UITableView中有一个UIView

enter image description here

问题是当我尝试以编程方式调整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: enter image description here

2:更新后

enter image description here

有人请帮助我并解释我错过了哪一部分。

感谢

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: {
    })
}