我通过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中创建)。当我尝试使用NavigationController
进行相同的动画时,它可以正常工作。
更新3:如果我的购物车视图没有子视图,则可以正常工作。如果它中有任何内容(一个按钮,navigationBar
,任何......),它就不起作用。