2015-11-02 22 views
0

我有自定義標題視圖的表視圖。在標題視圖中,我有一個UIImage的子視圖。在輪換時,標題視圖及其子視圖不會更新到它們應該在的位置。相反,他們保持自己的位置,直到用戶按下按鈕,移動到不同的頁面等。基本上,他們的位置不會更新,直到用戶以某種方式與應用程序交互。在設備旋轉上更新tableView的headerView

我檢測有設備旋轉:

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) { 
     // Update header views! 
    } 

我無法找到任何類型的代碼,將更新的標題視圖和它的子視圖雖然。任何幫助讚賞。

編輯:這裏是我的頭視圖代碼:

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
     let headerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, tableView.sectionHeaderHeight)) 
     let headerColor = UIColor.blueColor() 
     headerView.backgroundColor = headerColor 

     headerView.tag = section 

     let headerString = UILabel(frame: CGRect(x: 10, y: 10, width: tableView.frame.size.width-45, height: 30)) as UILabel 
     headerString.text = "Title" 
     headerString.textColor = UIColor.whiteColor() 
     headerView.addSubview(headerString) 
     let headerTapped = UITapGestureRecognizer(target: self, action:"sectionHeaderTapped:") 
     headerView.addGestureRecognizer(headerTapped) 

     // Button in header 
     let gearImage = UIImage(named: "icons_button") 
     let width = CGFloat(45) 
     let rightInset = CGFloat(10) 
     let headerButton = UIButton(frame: CGRect(x: headerView.frame.maxX - 45, y: 7, width: width, height: width - rightInset)) 
     headerButton.setImage(gearImage, forState: UIControlState.Normal) 
     headerButton.tag = section 
     headerButton.contentEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: rightInset) 
     headerButton.addTarget(self, action: "userButtonPress:", forControlEvents: UIControlEvents.TouchUpInside) 
     headerView.addSubview(headerButton) 

     return headerView 
    } 
+0

你在使用故事板嗎? – andrewbuilder

+0

是的,我正在使用故事板 – Tamarisk

+0

您是否考慮過使用Autolayout?您可以在故事板或代碼中設置約束 – andrewbuilder

回答

0
在旋轉FUNC

self.view.layoutIfNeeded() 
+0

這不能解決我的問題。我試圖在不同的視圖上使用layoutIfNeeded(),但仍然沒有改變。 – Tamarisk

+0

如何設置標題框?自動佈局還是編程? – Tim

+0

標題框架和它的子視圖用CGRect – Tamarisk

0

雖然它似乎有點小題大做,這工作得很好:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { 
    [coordinator animateAlongsideTransition: ^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) { 
    [_myTableView reloadData]; 
    } completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) { 
    [_myTableView reloadData]; 
    }]; 
}