2015-07-10 27 views
1

我有一个UITableView内的UIView这样一个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

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

感谢

回答

2

你需要在每次当你改变你的头视图帧的时间来重新分配视图的表头。

YourView.frame = Frame 
TableView.tableHeaderView = YourView 

,并删除:

TableView.tableHeaderView?.frame = Frame 

感谢

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