【发布时间】:2015-11-02 01:53:58
【问题描述】:
我有一个带有自定义标题视图的表格视图。在标题视图中,我有一个 UIImage 子视图。在旋转时,标题视图及其子视图不会更新到它们应该在的位置。相反,它们会保留自己的位置,直到用户按下按钮、移动到不同的页面等。本质上,它们的位置不会更新,直到用户以某种方式与应用交互。
我正在检测设备旋转:
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
}
【问题讨论】:
-
你在使用故事板吗?
-
是的,我正在使用故事板
-
您考虑过使用自动布局吗?您可以在情节提要或代码中设置约束
标签: ios swift uitableview