1

我有一个通过 Storyboard 配置的 UIView。这个视图 ( self.view) 有一个孩子,一个按钮 ( self.cartButton)。稍后在代码中我添加了subview一个view

[self.view addSubview:self.cart.view];

我有以下方法:

- (void)openCart
{
    [UIView animateWithDuration:2 animations:^{
        self.cartButton.frame = CGRectMake(0.0f, 0.0f, self.cartButton.frame.size.width, self.cartButton.frame.size.height);
        self.cart.view.frame = CGRectMake(0.0f, 0.0f, self.cart.view.frame.size.width, self.cart.view.frame.size.height);
    }];
}

我认为它应该将两个对象都移动到屏幕的顶部,但真正发生的是cartButton 动画到最底部的位置,而购物车视图到顶部。为什么会这样?我在某个地方搞砸了坐标系吗?

更新:如果我注释掉动画中的第二行(动画购物车视图),cartButton飞到顶部。

UPDATE2:它与我的cartView. 它是一个通用视图(在 Storyboard 中创建)。例如,当我尝试使用 a 做相同的动画时NavigationController,它可以工作。

UPDATE3:如果我的购物车视图没有子视图,它工作正常。如果它里面有任何东西(一个按钮,,navigationBar任何东西......),它就不起作用。

4

0 回答 0