我有一个自定义动画:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
的UITableViewCell
,类似于:
[UIView animateWithDuration:0.15 animations:^{
self.center = CGPointMake(self.center.x + 110, self.center.y);
} completion:^(BOOL finished) {
isShifted = finished;
}];
这里的想法是在触摸按下时移动单元格。然后,如果选择了单元格(没有发生滚动或取消事件),我将继续执行单元格的另一个动画并转换到新视图。
setHighlighted:NO
这里的问题是动画在方法调用时将单元格放回其原始位置。从视觉上看,它看起来像在选择时单元格移动(触地),然后开始返回(系统移除突出显示),然后开始转换(系统调用setSelected:YES
)。
据我所见,在选择表格中的单元格时,会发生以下情况:
setHighlighted:YES
setHighlighted:NO
setSelected:YES
是否有任何优雅的解决方案可以跳过呼叫 2 并避免后移动画而不引入将检查选择的计时器?