2011-11-26 47 views
0

嘿有StackOverflow!我已經完成了編程我的應用程序,並且一切工作正常 - 所以我決定,因爲函數部分完成了,我想開始在窗體上工作。但是,我有一些代碼給我帶來麻煩,我不知道爲什麼。我的應用程序有兩個視圖可以切換。在viewDidLoad中,我的這兩行代碼:UIView TransitionFromView禁用滾動

[PlannerView setScrollEnabled:YES]; 
[PlannerView setContentSize:CGSizeMake(320, 735)]; 

再後來,我當按下按鈕主視圖和規劃視圖之間進行切換,這樣的:

if (isPlannerView) { 
//  [self setView:MainView]; 
    [UIView transitionFromView:PlannerView 
         toView:MainView 
         duration:0.5 
         options:UIViewAnimationOptionTransitionFlipFromRight 
        completion:^(BOOL finished){ 
         [self setView:TimerView]; 
        }]; 
    isPlannerView = NO; 
} else { 
    [UIView transitionFromView:MainView 
         toView:PlannerView 
         duration:0.5 
         options:UIViewAnimationOptionTransitionFlipFromLeft 
        completion:^(BOOL finished){ 
        }]; 
//  [self setView:PlannerView]; 
    isPlannerView = YES; 
} 

現在,當我使用hte註釋的代碼行(自我setview),它將滾動沒有問題。但是,當我使用UIView transitionFromView時,它不再滾動。任何想法在這裏出了什麼問題?

回答

0

transitionFromView:toView:duration:options:completion:文檔說:

此方法會修改只在他們看來層次的意見。它不會以任何方式修改您的應用程序的視圖控制器。例如,對於 示例,如果您使用此方法更改由視圖控制器顯示的根視圖,則您有責任適當更新視圖控制器以處理更改。

所以確保viewDidLoad:實際上被調用。它還規定:

在動畫過程中,用戶交互被暫時禁用, 視圖被動畫化。 (在iOS 5之前,整個應用程序禁用用戶交互 。)如果希望用戶能夠與視圖交互,請在選項 參數中包含 UIViewAnimationOptionAllowUserInteraction常數。

因此,請確保動畫完成後,視圖上啓用了用戶交互功能。

completion:^(BOOL finished){ 
    [PlannerView setUserInteractionEnabled:YES]; 
}]; 

來源:UIView Class Reference

+0

感謝您的答覆!不幸的是,雖然這可以說明爲什麼會發生這種情況,但建議的代碼仍然不起作用(儘管爲什麼不這樣做對我來說沒有意義)。我也嘗試在options參數中包含UIViewAnimationOptionAllowUserInteraction,但那也不起作用。 – user1067112