码迷,mamicode.com
首页 > 移动开发 > 详细

iOS UITableView ExpandableHeader(可形变的Header)

时间:2017-08-07 22:04:17      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:图片   mode   style   color   fit   自己   exp   pre   int   

 

 

 

最常见的header就是在tableView下拉时header里的图片会放大的那种,

最近研究了一下,自己实现了这种header。

 

 

 

1.设置TableView的contentInset(为header预留空间)和contentOffset(使tableView加载完成后显示最顶部)

tableView.contentInset = UIEdgeInsetsMake(headerHeight, 0, 0, 0)
tableView.setContentOffset(CGPoint.init(x: 0, y: -headerHeight), animated: true)

 

 

 

 

2.为header添加约束(SnapKit)

var headerHeightConstraint:Constraint?
var headerTopConstraint:Constraint?

 

tableView.addSubview(header)
header.snp.makeConstraints { (m) in
    headerTopConstraint = m.top.equalTo(tableView.snp.top).offset(-headerHeight).constraint
    m.leading.equalTo(tableView.snp.leading)
    m.width.equalTo(SCREEN_WIDTH)
    headerHeightConstraint = m.height.equalTo(headerHeight).constraint
}

 

 

 

 

3.监测TableView的contentOffset,并改变header的约束

let yOffset = -scrollView.contentOffset.y
if yOffset >  headerHeight {
    headerTopConstraint?.layoutConstraints.first?.constant = -yOffset
    headerHeightConstraint?.layoutConstraints.first?.constant = yOffset
}

 

 

 

4.设置header部分的contentMode(模式如果不对,内容缩放的方式就会不同)

header.contentMode = .scaleAspectFit //模式请根据实际情况自选

 

 

 

 


Ficow原创,转载请注明出处:http://www.cnblogs.com/ficow/p/7301110.html

iOS UITableView ExpandableHeader(可形变的Header)

标签:图片   mode   style   color   fit   自己   exp   pre   int   

原文地址:http://www.cnblogs.com/ficow/p/7301110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!