2013-07-01 44 views
1

我正在學Objective-C作爲初學者,我有點迷失了setFrame,爲什麼動畫需要一個setFrame,它在這裏真的做了什麼?有人能解釋一下嗎?感謝您的任何建議。Objective C動畫setFrame

感謝

-(void)showAccordionMenuInView:(UIView *)targetView{ 
    ... 
    // STEP 5: ANIMATE 
    [UIView beginAnimations:@"" context:nil]; 
    [UIView setAnimationDuration:ANIMATION_DURATION]; 
    [UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
    [self.view setAlpha:0.5]; 
    // Set the yPoint value as the y origin point of the menu view 
    // and the tempMenuHeight value as its height. 
    **[_viewAccordionMenu setFrame:CGRectMake(_viewAccordionMenu.frame.origin.x, 
                                            yPoint, 
                                            _viewAccordionMenu.frame.size.width, 
                                            tempMenuHeight)];** 
    [UIView commitAnimations]; 

回答

1

爲什麼動畫需要有setFrame,它在這裏真的做了什麼?

您當然不需要動畫來設置視圖的框架,但在動畫中設置框架會使動畫變爲動畫。也就是說,不是立即將_viewAccordionMenu移動到其新位置,而是在動畫中設置該幀將導致視圖移過ANIMATION_DURATION秒。這通常比看到從一個地方跳到另一個地方更好。

+1

謝謝,我現在得到了:) – Bruce

1

是 「必需的」 動畫有一個動畫的變化。如果沒有它,setFrame就可以正常工作,但會在沒有動畫的情況下跳轉到新值。

所有設置的幀都是設置視圖的幀。

+0

感謝大衛,我確信這一點:沒有它就能正常工作,但會跳到沒有動畫的新值。 – Bruce