使用UIButtons作为子视图动画UIView

时间:2011-10-20 15:18:40

标签: cocoa-touch animation uiview ios4 uibutton

就像我在标题中所说的那样,我试图动画一个有几个UIButtons作为子视图的UIView。我的目标是使视图的框架和按钮更大。这是我的代码:

// Animate Frame Changes
    [UIView animateWithDuration:0.5 animations:^ {
        self.frame = CGRectMake(200, 50, 700, 600);

        for (UIView *subview in self.subviews) {
            if ([subview isKindOfClass:[UIButton class]]) {
                UIButton *button = (UIButton *)subview;
                button.frame = CGRectMake((button.frame.origin.x * 2) , (button.frame.origin.y * 2), (button.frame.size.width * 2), (button.frame.size.height * 2));
            }
        }
    }];

代码本身工作正常。但是,按钮的移动方式比父视图更快,这使得动画看起来有点尴尬。

以相同的速度制作动画的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

这是我决定采用的解决方法。我发布它以防万一有人有同样的问题。在我上面发布的代码中,我正在更改帧的所有属性,这会导致不同视图和子视图的动画速度不均匀。为了消除这种影响,我只改变了x,y坐标而不是整个帧,然后我将CGAffineTransform应用到我的整体视图中,放大了所有内容。