测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可 | MIT |
发布最后发布 | 2015年4月 |
由 Eric Castro 维护。
依赖 | |
pop | >= 0 |
HTDelegateProxy | >= 0 |
这是一个多用途的头视图,您可以将其附加到 UITableView(或任何 UIScrollView),通过在滚动上下文时展开和收缩顶部标题,或者通过委托另一个对象来做出这样的决定,从而最大化滚动内容的屏幕显示状态。
当此类头部不是完全必需时,却可能有一些按钮或其他需要保持可见的交互控制,这种情况很有用。
ECStretchableHeaderView *headerView;
headerView = [[ECStretchableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.tableView.frame), maxHeight)];
// the header will expand up to 320 pixels tall when scrolling down
headerView.maxHeight = 320.0f;
// the header will shrink down to 100 pixels tall when scrolling up
headerView.minHeight = 100.0f;
// for demo purposes we programmatically create
// a height constraint for the header view
// but more likely you will create it on Interface Builder
// and assign it to a private IBOutlet property
NSLayoutConstraint *heightConstraint = [NSLayoutConstraint
constraintWithItem:headerView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:headerView.maxHeight]];
[headerView addConstraint:heightConstraint];
headerView.heightConstraint = heightConstraint;
// put it at the top of your table vew
[headerView attachToScrollView:self.tableView inset:0.0f];
因为 ECStretchableHeaderView 是为了自动布局而设计的,以这种方式,您可以在 Storyboard 上设计您的头部视图,而不会让界面构建器充满布局错误和警告,因为这些约束缺失。
通过修改这个约束常数来改变头部视图的高度,而不是改变视图的框架。
示例项目中包含了一个 ECStretchableHeaderView,它不是通过程序创建的,而是在 Interface Builder 中创建的。
本项目采用 MIT 许可。请自由贡献 :-)