首页 > 代码库 > iOS UITableView ExpandableHeader(可形变的Header)
iOS UITableView ExpandableHeader(可形变的Header)
最常见的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.yif 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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。