我可能在做一些非常愚蠢的事情,但我不明白爲什麼這不起作用。UIView動畫iOS,Bizzarre
我想執行一個簡單的UIView塊動畫,但遇到了麻煩。我已經在一個測試項目中重新創建。
我在視圖控制器上有一個視圖,當我按下按鈕時,我創建一個新視圖並將其框架設置爲超出當前視圖(在其上方)。我想爲過渡設置動畫,以便當前在屏幕上的視圖向下移出視圖,因爲上面的視圖取代了它的位置。
這裏是一個被掛在按鈕的代碼, 原來的觀點是迷上了爲self.view1
- (IBAction)buttonPressed:(id)sender {
UIView *view2 = [[UIView alloc] init];
view2.backgroundColor = [UIColor blueColor];
float offScreenY = 0 - self.view1.frame.size.height;
CGRect offScreenRect = CGRectMake(0, offScreenY, self.view1.frame.size.width, self.view1.frame.size.height);
view2.frame = offScreenRect;
[self.view addSubview:view2];
float oldY = self.view1.frame.origin.y + self.view1.frame.size.height;
CGRect oldRect = CGRectMake(0, oldY, self.view1.frame.size.width, self.view1.frame.size.height);
[UIView animateWithDuration:0.5 animations:^{
self.view1.frame = oldRect;
view2.frame = CGRectMake(0, 0, self.view1.frame.size.width, self.view1.frame.size.height);
}];
}
這只是動畫視圖2下來,沒有動畫視圖1.
如果我不要將視圖2作爲子視圖添加,只將視圖1的幀更改放入動畫塊中,然後view1正確地進行動畫。
但他們不會一起工作!
這是爲什麼?
這可能是因爲oldRect與self.view1.frame相同。打印這兩個值,你會看到發生了什麼 – pdrcabrod
嘗試完全相同的代碼,它在這裏工作得很好。必須有別的東西,你沒有在這裏展示... – omz