2015-07-10 35 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: { 
    }) 
}