gpt4 book ai didi

ios - 如何翻转 iOS UITableViewCell?

转载 作者:可可西里 更新时间:2023-11-01 06:18:04 30 4
gpt4 key购买 nike

我有一个包含多个单元格的表格 View 。每个单元格都有一个小信息“i”按钮,我希望用户能够通过从右侧“翻转”单元格来单击以编辑该单元格中的信息。

对于两种可能的单元格状态,我都有一个单独的表格单元格 XIB,并且 cellForRowAtIndexPath 提供了正确的 XIB(具有不同的单元格标识符),具体取决于该单元格是应该在常规 View 中还是在详细信息/编辑中看法。这可以很好地使用 reloadRowsAtIndexPaths 来反射(reflect)按下“i”按钮时更改的状态。

但我就是不知道如何在按下单元格的“i”按钮时为翻转设置动画。翻转不是 reloadRowsAtIndexPaths 中“withRowAnimation”的选项之一。使用像 UIView animateWithDuration 这样的标准动画方法是行不通的:reloadRowsAtIndexPaths 只会导致相关单元立即重新加载,而忽略动画指令。我什至尝试使用 drawViewHierarchyInRect 将单元格的 future 状态作为图像获取,但我无法让单元格足够快地重新绘制自身以被 drawViewHierarchyInRect 拾取(并且我不希望用户实际看到结果动画之前的动画)。

有没有人知道如何处理这个问题?

编辑

总而言之,我面临的挑战是:除了 reloadRowsAtIndexPaths(会破坏动画)之外,是否还有另一种方法可以将 UITableView 单元格内容与不同的 UITableViewCell Xib 交换,而不会导致新 Xib 的 IBOutlets 出现问题? (将它作为 Nib 加载到 subview 中似乎会破坏 IBOutlets。)到目前为止,答案还没有解决这个问题。

最佳答案

如果你使用两个子类UITableViewCell,而不是使用一个子类UITableViewCell,并执行例如翻转动画,这会很复杂,

让xib包含子类UITableViewCell在其contentView中添加两个 View

  1. 普通 View
  2. 翻转 View

在此 View 中添加您要显示的内容,并确保两者在单元格中都有 socket 例如,我采取了

enter image description here

在上面的两个 View 中,第一个View-FlipView及其内容标签和按钮,第二个也与第一个 View 相同,顶 View 应该是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) {

}];
}

它看起来像下面的东西

enter image description here

任何问题只要评论... :) 希望这可以帮助你 .. :)

关于ios - 如何翻转 iOS UITableViewCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24688083/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com