我们在使用UIScrollView的时候经常会因为子视图的背景色需要显示在上下滑动时父视图不同的背景。例如淘宝中“我的淘宝”页面,上下拉的时候顶部是橙色,底部是灰色。在此要感谢MJRefresh的作者,是看了MJRefresh才有的灵感。
在scrollViewDidScroll的代理方法中添加如下代码:
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.y < -scrollView.contentInset.top {
if scrollViewTopBackView.superview == nil {
scrollView.addSubview(scrollViewTopBackView)
scrollViewTopBackView.backgroundColor = UIColor.redColor()
}
let scrollViewTopBackViewHeight = -scrollView.contentOffset.y - scrollView.contentInset.top
scrollViewTopBackView.frame = CGRectMake(0, -scrollViewTopBackViewHeight, HMUITool.ScreenWidth, scrollViewTopBackViewHeight)
}
}
其中scrollViewTopBackView可以使用直接定义成一个成员变量:
let scrollViewTopBackView = UIView()