此类使得向滚动视图添加视差头部视图变得超级简单。其他替代方案依赖于 UIScrollView
、UITableViewController
或 UITableView
的子类。相反,APParallaxHeader 使用 Objective-C 运行时向 UIScrollView
添加以下两个方法,无需进行子类化。
- (void)addParallaxWithImage:(UIImage *)image andHeight:(CGFloat)height andShadow:(BOOL)shadow;
- (void)addParallaxWithImage:(UIImage *)image andHeight:(CGFloat)height;
- (void)addParallaxWithView:(UIView*)view andHeight:(CGFloat)height;
重要提示:如果您的项目不使用 ARC:您必须将编译器标志 -fobjc-arc
添加到目标设置 > 编译阶段 > 编译源中的 UIScrollView+ APParallaxHeader.m
。
APParallaxHeader/APParallaxHeader
文件夹拖入您的项目中。UIScrollView+APParallaxHeader.h
。(请参阅 /Demo
中的示例 Xcode 项目)
[tableView addParallaxWithImage:[UIImage imageNamed:@"ImageName"] andHeight:160];
注意:在添加自定义视图时,可以使用 APParallaxViewDelegate
、自动布局约束或 contentMode
来调整自定义视图的大小,以在滚动过程中进行缩放。
UIView *customView = [[UIView alloc] init];
[customView setFrame:CGRectMake(0, 0, 320, 160)];
[self.tableView addParallaxWithView:customView andHeight:160];
[self.tableView.parallaxView setDelegate:self];
APParallaxViewDelegate 将在视差视图调整大小时通知代理。
- (void)parallaxView:(APParallaxView *)view willChangeFrame:(CGRect)frame
- (void)parallaxView:(APParallaxView *)view didChangeFrame:(CGRect)frame
UITableViewStylePlain
样式的 tableview 的标题将不会像预期那样固定。0.1.6
0.1.5
APParallaxViewDelegate
).0.1.4
0.1.3
0.1.2
APParallaxHeader 是由 Mathias Amnell 在 Apping AB 为您带来的。代码灵感来源于 Sam Vermette 的作品,特别是 SVPullToRefresh (特别是利用 objc/runtime.h
实现的方法,使其非常容易实现,无需子类化)。
APParallaxHeader 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。