首页 文章

更流畅的UIView

提问于
浏览
0

我正在寻找一种方法,使我的(第一个)应用程序的菜单系统滚动更顺畅 . 目前我有一个内置于IB的panorma类型视图,宽约1900像素,高480像素 . 除此之外,在视图/图像的不同位置有8个按钮,当选择其中一个按钮时,我更新'xPoint'并调用下面的内容来更新屏幕上的内容(每次点击一个按钮时,动作在400-600px之间) 1-2秒持续时间):

-(void)moveView:(NSNumber *)duration{
    [UIView beginAnimations:nil context:NULL];{
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:[duration floatValue]];
        [UIView setAnimationDelegate:self];     
        viewRect = self.view.frame;
        viewRect.origin.x = xPoint;
        self.view.frame = viewRect;     
    } [UIView commitAnimations];    
}

我已经将IB中的所有内容设置为不透明,并且对于每个按钮/图像都未选中“在绘制之前清除上下文” . 在3GS上,这看起来比3G设备更平滑,但仍然不完美 - 仍然在动画上口吃 .

有一个更好的方法吗?如果没有,我有什么方法可以优化/平滑运动动画?

1 回答

  • 1

    你绝对应该使用工具来调试这个问题(除非有人立即得到答案) . 您可以轻松调试帧率,看看哪些图层是不透明/透明的(使用Core Animation乐器中的'混合图层'选项..

    同时,测量其他设备活动(可能是问题) .

    作为最后的手段,您还可以使用图像来显示按钮 . 创建菜单的“屏幕截图”,然后制作幻灯片(这只是一个项目,一个UIImageView) . 在动画完成之后(或之前),您可以使用真实的UIView(包括按钮)快速替换UIImageView .

    我相信苹果在退出应用程序时也会使用这种技巧(一种形式);你看到应用程序变得越来越小,直到它消失 .

相关问题