VENSeparatorView 使得在 iOS 上创建自定义分隔符变得简单。它在 Venmo 应用中用于代表转账故事。
开始使用最简单的方法是使用 CocoaPods。只需将以下行添加到 Podfile 中
pod 'VENSeparatorView', '~> 1.0.0'
导入 VENSeparatorView.h
使用其 initWithFrame:topLineSeparatorType:bottomLineSeparatorType
初始化器创建 UISeparatorView 或其子类的实例,并将其添加为子视图。
VENSeparatorType 选项有
VENSeparatorTypeStraight,
VENSeparatorTypeJagged,
VENSeparatorTypeNone
使用包含的 VENSeparatorTableViewCellProvider,在 UITableView 中创建锯齿状单元格变得简单
在您的 UITableViewDataSource 中导入 #import "VENSeparatorTableViewCellProvider.h"
并遵守协议的 isCellJaggedAtIndexPath:
方法。
示例
// Specifies that all cells with odd row index are jagged.
- (BOOL)isCellJaggedAtIndexPath:(NSIndexPath *)indexPath
{
return (indexPath.row % 2);
}
将 UITableView 的 separatorStyle
属性设置为 UITableViewCellSeparatorStyleNone
创建 VENSeparatorTableViewCellProvider 属性
@property (nonatomic, strong) VENSeparatorTableViewCellProvider *separatorProvider;
在这个类的 init
方法中,或者如果是 UIViewController 子类,在 viewDidLoad
方法中,使用 initWithStrokeColor:fillColor:delegate:
方法实例化 VENSeparatorTableViewCellProvider 属性。
self.separatorProvider = [[VENSeparatorTableViewCellProvider alloc] initWithStrokeColor:[UIColor grayColor]
fillColor:[UIColor lightGrayColor]
delegate:self];
在数据源的 tableView:cellForRowAtIndexPath:
方法的末尾,使用 VENSeparatorTableViewCellProvider 的 applySeparatorsToCell:atIndexPath:inTableView:cellHeight:
应用于 UITableViewCell。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell;
// ...
[self.separatorProvider applySeparatorsToCell:cell atIndexPath:indexPath inTableView:tableView cellHeight:0];
return cell;
}
请查看此仓库中的 示例项目 以获取示例用法。
我们非常乐意看到您对这个库的改进意见!最好的贡献方式是提交一个拉取请求。我们将尽力迅速响应您的补丁。如果您发现错误或有问题,还可以提交一个 新的 Github 问题。