ECStretchableHeaderView 1.0.2

ECStretchableHeaderView 1.0.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2015年4月

Eric Castro 维护。



 
依赖
pop>= 0
HTDelegateProxy>= 0
 

这是一个多用途的头视图,您可以将其附加到 UITableView(或任何 UIScrollView),通过在滚动上下文时展开和收缩顶部标题,或者通过委托另一个对象来做出这样的决定,从而最大化滚动内容的屏幕显示状态。

当此类头部不是完全必需时,却可能有一些按钮或其他需要保持可见的交互控制,这种情况很有用。

ECStretchableHeaderView

使用方法

    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 许可。请自由贡献 :-)