我需要在滚动时创建如下图所示的表格视图动画,但我对动画的想法很少。而且我还需要通过向内移动使所选单元格动画并在上下单元格关闭时消失(就像在iPhone中删除文本消息时完成的动画一样)。
答案 0 :(得分:3)
您必须劫持scrollView(将自己添加为与TableViewDelegate一起的ScrollViewDelegate),并且表视图将自动转发scrollview事件以及tableview事件。
(self.tableView.delegate = self)真的和两个人谈话
<UIScrollViewDelegate, UITableViewDelegate>
我在示例中有一个辅助函数,它还计算到单元格顶部的距离。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSArray *rows = [self.tableView indexPathsForVisibleRows];
for (NSIndexPath *path in rows) {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:path];
float percent = [self cellDistanceAsPercentageFromTableViewCenterAtRow:cell];
cell.layer.sublayerTransform = CATransform3DMakeScale(percent, percent, 1);
}
}
//Calculate distance of the cell as a percentage from the bottom of the actual visible contentView
-(float)cellDistanceAsPercentageFromTableViewCenterAtRow:(UITableViewCell *)cell {
float position = cell.frame.origin.y;
float offsetFromTop = self.tableView.contentOffset.y;
float percentFromBottom = (position-offsetFromTop+ROW_HEIGHT)/self.tableView.frame.size.height;
percentFromBottom = MIN(MAX(percentFromBottom, 0), 1);
return percentFromBottom;
}