【问题标题】:Rotate UIImageView in UITableViewCell - iPhone SDK在 UITableViewCell 中旋转 UIImageView - iPhone SDK
【发布时间】:2010-11-13 04:57:33
【问题描述】:

我在 uitableview 的 uittableviewcell 中有一个 uiimageview。我想要完成的是使用计时器旋转每个单元格的所有 uiimageviews。我知道 nstimer 和旋转概念是如何进行的,但我不知道如何旋转 UITableView 中每个单元格中的所有图像。有没有办法访问所有 uitableviewcells 的这些属性?

希望这不会造成混淆,如果是这样的话,这是一个简单的例子: 以我的 uitableview 中有 5 个单元格为例。 5 个单元格中的每一个都有一个 uiimageview,因为我的单元格是定制的并且有自己的类。我将如何旋转所有 5 个 uiimageview?

感谢您的帮助,

凯文

【问题讨论】:

    标签: iphone objective-c uitableview


    【解决方案1】:

    在你的定时器回调函数中你想做这样的事情。

    NSArray* cellArray = [yourTableView visibleCells];
    for (UITableViewCell* cell in cellArray)
    {
      // do your cell by cell rotation here
    }
    

    要在为无限动画创建单元格时执行此操作,您可以使用以下代码。请记住,如果您正在缓存单元格,那么您只需要在创建单元格时执行此操作,而不是在缓存的单元格上。

    [UIView beginAnimations:@"looping animation" context:nil];
    [UIView setAnimationRepeatCount:0];     // 0 is infinite
    [UIView setAnimationDuration:3];
    // other animation options here if you'd like, and the duration can be anything, not just 3.
    
    [UIView animateWithDuration:3 delay:0 options:UIViewAnimationOptionRepeat animations: ^{
    // do your rotation stuff on your image, in this block, for the cell you will be returning.
    
    } completion:nil];
    
    [UIView commitAnimations];
    

    【讨论】:

    • 我可能理解错了,你想在动画中不断地旋转所有单元格中的视图吗?还是一次性通行证?我不了解足够的上下文来知道为什么在 tableView:cellForRowAtIndexPath:... 中创建单元格时要使用计时器而不是旋转来执行此操作:...
    • 我希望动画在该方法之后继续。
    • 在这种情况下,只需在每次调用计时器时遍历所有单元格并在每个单元格上旋转 imageView。您将希望拥有自己的自定义单元格,以便在那时旋转每个自定义视图。
    • 另一个选项是您可以使用核心动画的调用 animateWithDuration:delay:options:animations:completion: 并传入重复选项。如果你这样做,你可以在 tableView:cellForRowAtIndexPath: 中创建自定义单元格时这样做,而不必使用计时器。
    • 哦,从来没想过!谢谢你的提示。我将在哪里启动该方法?我会在我的 CustomCell 类还是在 cellforrowatindexPath 中这样做?您能否提供一个关于新的旋转方法与 animateWithDuration 的外观如何的 sn-p...
    【解决方案2】:

    对动画使用计时器并不是最好的方法。

    如果你坚持,我建议你简单地枚举表格视图中的可见单元格(使用 visibleCells tableview 方法),并在每个单元格上执行旋转操作。

    【讨论】:

      【解决方案3】:

      UIView 的一些控制动画流的方法怎么样?可以重复旋转动画。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-16
        • 1970-01-01
        • 2011-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多