答案 0 :(得分:0)
首先将标题视图添加为UIvVew,并在headerView下将UIScrollView或UITableView添加到屏幕截图,然后执行以下步骤。
为页眉视图(例如125)设置一个固定的高度约束,并将其附加到顶部,左侧和右侧。
使下面的UIScrollView使用所有可用空间,因此将其设置为零上,下,左和右约束。
将标头视图高度约束连接到ViewController以便具有以下功能:
@IBOutlet var headerViewHeightConstraint: NSLayoutConstraint!
将UIScrollView委托设置为ViewController
声明两个属性以限制标题视图的最大和最小高度,例如狐狸示例:
let headerViewMaxHeight: CGFloat = 125
let headerViewMinHeight: CGFloat = 44 + UIApplication.shared.statusBarFrame.height
整个解决方法都是基于在UIScrollView滚动时更新标题视图高度约束,因此让我们实现UIScrollViewDelegate和本例中最重要的委托,scrollViewDidScroll:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let headerViewMinHeight: CGFloat = 44 + UIApplication.shared.statusBarFrame.height
let yPos = mainScrollView.contentOffset.y
let newHeaderViewHeight: CGFloat = headerViewHeightConstraint.constant - yPos
if newHeaderViewHeight > headerViewMaxHeight {
// Here, Manage Your Score Format View
headerViewHeightConstraint.constant = max(headerViewMaxHeight, newHeaderViewHeight)
} else if newHeaderViewHeight < headerViewMinHeight {
headerViewHeightConstraint.constant = headerViewMinHeight
} else {
headerViewHeightConstraint.constant = newHeaderViewHeight
scrollView.contentOffset.y = 0 // block scroll view
}
}
答案 1 :(得分:0)