Stretchy Headers

Design Teardowns笔记:

Paste_Image.png

最终效果是这样。下拉headerView被拉伸。

sh-preview.gif

这里给出比较重要的部分:

var headerView: UIView!
let HeaderViewHeight = CGFloat(300)
override func viewDidLoad() {
    super.viewDidLoad()
    headerView = tableView.tableHeaderView
    tableView.tableHeaderView = nil
    tableView.addSubview(headerView)
    tableView.contentInset = UIEdgeInsetsMake(HeaderViewHeight, 0, 0, 0)
    updateHeaderView()
}

func updateHeaderView() {
    var frame = CGRectMake(0, -HeaderViewHeight, tableView.frame.width, HeaderViewHeight)
    let offsetY = tableView.contentOffset.y
    if offsetY < -HeaderViewHeight {
        frame.origin.y = offsetY
        frame.size.height = -offsetY
    }
    
    headerView.frame = frame
}

override func scrollViewDidScroll(scrollView: UIScrollView) {
    updateHeaderView()
}·
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,966评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 你看看哟,所以事都拖一分钟再拖一分钟,尼玛过去3个多小时了,醉了醉了
    这里Cc阅读 172评论 0 0
  • 说不清是什么缘由,今天早上闹钟响起后脑子已清醒但潜意识里却不想起床去上班,所以我翘班了……这应该是工作以来的...
    灰到那遥远的地方去看海阅读 643评论 1 0
  • 我是一个玩手机玩的很疯的人,睡觉、吃饭、上厕所、挤地铁都离不开手机, 可能只有跟喜欢的人面对面聊天,才不会想起手机...
    柠的檬茶阅读 331评论 0 0