Dan*_*Dan 3 animation uitableview ios
我有一个包含许多单元格的tableview.每个单元格都有一个小信息"i"按钮,我希望用户能够通过从右侧"翻转"单元格来单击以编辑该单元格中的信息.
我为两个可能的单元状态中的每一个都有一个单独的表格单元格XIB,并且cellForRowAtIndexPath提供正确的XIB(具有不同的单元格标识符),具体取决于该单元格应该位于常规视图还是详细/编辑视图中.这可以很好地使用例如reloadRowsAtIndexPaths来反映按下"i"按钮时改变的状态.
但是当我按下单元格的"i"按钮时,我无法弄清楚如何为翻盖设置动画.翻转不是reloadRowsAtIndexPaths中"withRowAnimation"的选项之一.使用像UIView animateWithDuration这样的标准动画方法不起作用:reloadRowsAtIndexPaths只会导致相关单元格立即重新加载,忽略动画指令.我甚至试图使用drawViewHierarchyInRect来获取单元格的未来状态作为图像,但我无法让单元格快速地重绘自己被drawViewHierarchyInRect拾取(我不希望用户实际看到结果动画之前的动画)
有没有人知道如何处理这个?
编辑
总而言之,我遇到的挑战是:除了reloadRowsAtIndexPaths(打破动画)之外,还有另一种方法可以将UITableView单元格内容与不同的UITableViewCell Xib交换,而不会给新Xib的IBOutlets带来麻烦吗?(将它作为Nib加载到子视图中似乎打破了IBOutlets.)到目前为止,答案还没有解决这个问题.
Sha*_* BS 18
如果你使用两个子类UITableViewCell,而不是使用单个子类UITableViewCell,并执行翻转动画,这将是复杂的,例如,
让xib包含UITableViewCell其contentView 中的子类添加两个视图
在这个视图中添加你想要显示的内容,并确保在单元格中的hav插座,例如我拍摄的内容

在上面两个视图中第一个View-FlipView和它的内容标签和按钮以及第二个也与第一个视图相同,顶视图应该是normalView
将按钮动作连接到单元格,你只需在自定义单元格中执行如下操作
//flip the view to flipView
- (IBAction)flipButtonAction:(UIButton *)sender
{
[UIView transitionWithView:self.contentView duration:0.6 options:UIViewAnimationOptionTransitionFlipFromRight animations:^{
[self.contentView insertSubview:_flipView aboveSubview:_normalView];
} completion:^(BOOL finished) {
}];
}
//flip the view back to normalView
- (IBAction)flipBackButtonAction:(id)sender
{
[UIView transitionWithView:self.contentView duration:0.6 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[self.contentView insertSubview:_normalView aboveSubview:_flipView];
} completion:^(BOOL finished) {
}];
}
Run Code Online (Sandbox Code Playgroud)
它看起来像下面的东西

任何问题只是评论... :)希望这有助于你.. :)
| 归档时间: |
|
| 查看次数: |
4377 次 |
| 最近记录: |