滚动时扭曲UITableViewCell?

时间:2014-05-10 02:11:17

标签: ios uitableview core-graphics core-animation

当用户滚动UITableView时,我尝试在iOS应用中制作一些特效。我想要实现的效果是:

enter image description here

来自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+上工作。

1 个答案:

答案 0 :(得分:2)

请查看此github库 - https://github.com/brocoo/BRFlabbyTable