当用户滚动UITableView
时,我尝试在iOS应用中制作一些特效。我想要实现的效果是:
来自here。
它是由Capptivate制作的,但我通读了网站&我仍然困惑在哪里可以获得图书馆。
我知道Core Graphics / Core Animation / QuartzCore Framework可能有所帮助,正如tutorial所暗示的那样。因此,假设效果基于UITableView
,如何像上面的屏幕截图那样扭曲UITableViewCell
?
我可以通过以下方式制作曲面细胞:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * CellIdentifier = @"Cell";
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (![cell.backgroundView isKindOfClass:[CustomCellBackground class]]) {
CustomCellBackground * backgroundCell = [[CustomCellBackground alloc] init];
cell.backgroundView = backgroundCell;
}
if (![cell.selectedBackgroundView isKindOfClass:[CustomCellBackground class]]) {
CustomCellBackground * selectedBackgroundCell = [[CustomCellBackground alloc] init];
selectedBackgroundCell.selected = YES;
cell.selectedBackgroundView = selectedBackgroundCell;
}
NSString * entry;
if (indexPath.section == 0) {
entry = self.thingsToLearn[indexPath.row];
((CustomCellBackground *) cell.backgroundView).lastCell = indexPath.row == self.thingsToLearn.count - 1;
((CustomCellBackground *)cell.selectedBackgroundView).lastCell = indexPath.row == self.thingsToLearn.count - 1;
} else {
entry = self.thingsLearned[indexPath.row];
((CustomCellBackground *)cell.backgroundView).lastCell = indexPath.row == self.thingsLearned.count - 1;
((CustomCellBackground *)cell.selectedBackgroundView).lastCell = indexPath.row == self.thingsLearned.count - 1;
}
cell.textLabel.text = entry;
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.textLabel.highlightedTextColor = [UIColor blackColor];
return cell;
}
但我不知道如何让它对滚动做出反应。
我的问题是:简而言之,滚动时如何制作弯曲的UITableViewCell
?
我读过更多SO问题:
和一些教程:
注意:我只在iOS 7+上工作。