这是一个组件,它在用户滚动时隐藏头视图。它在 Facebook 表格滚动风格上有所启发。为了简化,此组件遵循 行为对象模式
Objc.io。
pod "ABMFullScrollBehavior"
如果您不想使用 cocoapods,只需将 ABMFullScrollBehavior
文件夹复制到您的项目中。
为了将此行为应用于您的滚动视图,您只需遵循以下步骤
ABMFullScrollBehavior
连接不同的 IBOutlets
委托
头部视图
滚动视图
此对象有几个 IBInspectable
属性,您可以在故事板中设置。
Imantate
在您想防止用户将头部保持在不端状态时。MinVisibleHeightHeader
用来定义多少头部视图的高度将保持可见。您可能希望您的 UITableView 在用户按下单元格时做出反应,为此您需要使用其委托,例如。但是我也需要它来知道用户何时进行滚动。好的,让我们解决这个问题!
在组件内部还有一个名为 ABMMultiplexerProxyBehavior
的类。这个类用于连接一个委托并向连接到它的每个目标转发每个调用。因此,步骤将是
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)];
}
让我们简短概述一下如何设计不同对象之间所有的连接。
尺寸类别
和 自动布局
。导航项
。UIScrollView
类继承的任何 UI 元素配合使用。UICollectionView
UITableView
UIScrollView
ABFullScrollViewController 可在 MIT 许可下获得。有关更多信息,请参阅 LICENSE 文件。