ABMFullScrollBehavior 2.0

ABMFullScrollBehavior 2.0

测试测试过
Lang语言 Obj-CObjective C
许可 MIT
发布上次发布2015 年 3 月

Andres Brun 维护。




  • Andrés Brun Moreno

ABFullScrollViewController

License MIT Build Status

这是一个组件,它在用户滚动时隐藏头视图。它在 Facebook 表格滚动风格上有所启发。为了简化,此组件遵循 行为对象模式 Objc.io

Podfile

pod "ABMFullScrollBehavior"

手动安装

如果您不想使用 cocoapods,只需将 ABMFullScrollBehavior 文件夹复制到您的项目中。

配置

为了将此行为应用于您的滚动视图,您只需遵循以下步骤

  • 使用 .xib 在您的 ViewController 中创建一个新对象。

alt tag

  • 将类更改为 ABMFullScrollBehavior

alt tag

  • 连接不同的 IBOutlets

    • 委托
    • 头部视图
    • 滚动视图
  • 此对象有几个 IBInspectable 属性,您可以在故事板中设置。

    • Imantate 在您想防止用户将头部保持在不端状态时。
    • MinVisibleHeightHeader 用来定义多少头部视图的高度将保持可见。

alt tag

  • 就这样!当用户滚动时,您的滚动将隐藏头部视图!

我想使用我的滚动基本元素委托

您可能希望您的 UITableView 在用户按下单元格时做出反应,为此您需要使用其委托,例如。但是我也需要它来知道用户何时进行滚动。好的,让我们解决这个问题!

在组件内部还有一个名为 ABMMultiplexerProxyBehavior 的类。这个类用于连接一个委托并向连接到它的每个目标转发每个调用。因此,步骤将是

  • 在 ViewController 中使用故事板或 .xib 编辑器创建一个 ABMMultiplexerProxyBehavior 对象。
  • 与将滚动基本元素委托连接到 ABMFullScrollBehavior 对象不同,我们应该将其连接到这个新对象。
  • ABMMultiplexerProxyBehavior 有一个名为 targets 的 IBOutlet。这是一个 IBOutletCollection,因此我们可以连接我们的 ABMFullScrollBehavior 对象和 ViewController。

我想自定义动画

您可以为 ABMFullScrollBehavior 提供一个委托并按照示例实现它

- (void)scroll:(UIScrollView *)scroll animationForHeaderView:(UIView *)view percent:(CGFloat)percent {
    [self.headerContainerView setAlpha:percent];

    CGFloat transform = MIN(percent+0.5, 1);
    [self.headerContainerView setTransform:CGAffineTransformMakeScale(transform, transform)];
}

架构

让我们简短概述一下如何设计不同对象之间所有的连接。

不使用 ABMMultiplexerProxyBehavior

alt tag

使用 ABMMultiplexerProxyBehavior

alt tag

特性

  • 此组件支持 尺寸类别自动布局
  • 还支持 导航项
  • 它可与从 UIScrollView 类继承的任何 UI 元素配合使用。
    • UICollectionView
    • UITableView
    • UIScrollView
  • 所有配置仅使用 storyboard 或 .xib 编辑器进行。这使代码更加封装,并使其集成和修改变得方便。

示例

alt tag

许可

ABFullScrollViewController 可在 MIT 许可下获得。有关更多信息,请参阅 LICENSE 文件。