【问题标题】:Animation much faster in real device than emulator真实设备中的动画比模拟器快得多
【发布时间】:2012-01-26 09:36:07
【问题描述】:

我正在为按钮上的图像变化制作动画。我将时间设置为 0.6,它在模拟器中的动画完全符合预期,但在 iPhone 4S 中,相同的动画在眨眼间发生,而不是 0.6 秒。

我已将动画持续时间更改为越来越短,模拟器始终按预期工作,但真实设备始终超快,例如 0.1 秒或更快。

真实设备上的其他动画,如更改视图控制器翻转过渡都很好。

这样的代码示例:

for (button in allButtons) {
    [UIView transitionWithView:button.view duration:0.6     
        ^{ [button setSelected:NO];
         }
}

allButtons 集合中有 80 个按钮。单独的按钮转换也可以正常工作。

为什么模拟器的工作方式与真实设备不同?

【问题讨论】:

  • 您的代码示例有语法错误.. 缺少某些东西
  • 这是伪代码,因为我说代码在模拟器中工作,我希望这是显而易见的。关键是它可以在模拟器中运行,而不是在真实设备中运行。
  • 我不知道 iOS 模拟器。你是说 iOS 模拟器?
  • 按钮是什么类?应该是 UIButton 吧?但是 UIButton 没有 view-property!

标签: ios uibutton uiviewanimation


【解决方案1】:

我不确定 selection 属性是否可以设置动画?

看看:“什么可以被动画化?” http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html

【讨论】:

  • 正如我所说,单个按钮按预期动画,并且它也可以在模拟器中工作。我看不出你怎么能从这些陈述中不确定。
【解决方案2】:

你可以试试:

    [UIView animateWithDuration:0.6
                 animations:^{ 
                     for (UIButton *button in allButtons) {
                         [button setSelected:NO];
                     }
                 }];

但这也不应该起作用(正如 Diwann 之前所说。)文档说明了什么是可动画的,并且“选定”属性不在该列表中,实际上它甚至不是 UIView 的属性,它是 UIControl 的属性并且您只能为 UIView 的属性设置动画。

我刚刚在我的模拟器和 iOS 设备上尝试了您的伪代码(使其工作),但都没有动画。两个测试都将按钮设置为一次全部选中。

【讨论】:

    猜你喜欢
    • 2010-11-10
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    相关资源
    最近更新 更多