2014-03-02 234 views
0

我有一些容器視圖,我設法改變他的大小與動畫。 問題是,當我想將其恢復到原始大小時,什麼都不會發生。UIView不會改變大小

這裏是改變它首次碼(偉大工程)

//ANIMATE CONTAINER 
    CGRect screenRect = [[UIScreen mainScreen] bounds]; 
    CGFloat screenWidth = screenRect.size.width; 
    CGFloat screenHeight = screenRect.size.height; 
    //mainContainerView.frame=CGRectMake(0, 0, screenWidth, screenHeight); 
    [UIView animateWithDuration:1.45 
        animations:^{mainContainerView.frame = CGRectMake(0, 0, screenWidth, screenHeight);} 
        completion:^(BOOL finished) 
    { 

     //change container subview 
     [self switchToViewWithViewName:view AndTransition:kCATransitionFromBottom]; 

    }]; 

//比下一次不工作,他留在相同尺寸

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
    CGFloat screenWidth = screenRect.size.width; 
    mainContainerView.frame = CGRectMake(0, 0, screenWidth, 455); 
+0

添加日誌記錄以查看第二次啓動的screenRect和mainContainerView.frame。我猜你正在將'frame'改爲它已有的值,所以沒有任何反應。或者,也許你已經失去了對'mainContainerView'的引用(它是零),所以沒有任何反應。 – matt

回答

0

猜你需要調用視圖的setNeedsDisplay方法將其標記爲重新渲染。