Swipe-To-Reveal 的 Sparrow 风格实现
Sparrow for iOS 有一种不同的 swipe to reveal;其控制版的容器视图可以随手指或可选滑动。
此 Swipe-To-Reveal 实现将随手指滚动并且可以滑动。它支持向左、向右或同时左右。
以下是一个预览
只需链接 QuartzCore.framework
并使用 ZKRevealingTableViewCell
类来创建您的 UITableViewCell
。要更改折叠视图,只需修改单元格的 backView
属性。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ZKRevealingTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (!cell) {
cell = [[[ZKRevealingTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"] autorelease];
cell.delegate = self;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
return cell;
}
如果您想一次只选择一个项,您可以在 UITableViewController 子类中这样做
#pragma mark - Accessors
- (ZKRevealingTableViewCell *)currentlyRevealedCell
{
return _currentlyRevealedCell;
}
- (void)setCurrentlyRevealedCell:(ZKRevealingTableViewCell *)currentlyRevealedCell
{
if (_currentlyRevealedCell == currentlyRevealedCell)
return;
[_currentlyRevealedCell setRevealing:NO];
if (_currentlyRevealedCell)
[_currentlyRevealedCell autorelease];
[self willChangeValueForKey:@"currentlyRevealedCell"];
_currentlyRevealedCell = [currentlyRevealedCell retain];
[self didChangeValueForKey:@"currentlyRevealedCell"];
}
#pragma mark - ZKRevealingTableViewCellDelegate
- (BOOL)cellShouldReveal:(ZKRevealingTableViewCell *)cell {
return YES;
}
- (void)cellDidReveal:(ZKRevealingTableViewCell *)cell {
NSLog(@"Revealed Cell with title: %@", cell.textLabel.text);
self.currentlyRevealedCell = cell;
}
#pragma mark - UIScrollViewDelegate
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
self.currentlyRevealedCell = nil;
}
要编程式地显示或隐藏 backView
,设置 revealing
属性。
// Reveal the backView
cell.revealing = YES;
// Hide the backView
cell.revealing = NO;
本项目采用 MIT 许可。以下是某些法律术语
版权所有 (c) 2012 Alex Zielenski
凡获得本软件及其相关文档副本(以下简称“软件”)的个人,授予免费使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本的权力,并允许被本软件提供的人士执行上述行为,前提是以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定用途和非侵犯性的保证。在任何情况下,作者或版权所有者不对因本软件或其使用或其它交易而产生的任何索赔、损害或其他责任承担责任,无论这些责任是基于合同、侵权或其他方式。