2013-04-05 112 views
1

我做了一個UIScrollView它的寬度隨觸摸而改變。當前的視圖控制器繼續下一個,我想保存UIScrollView的寬度。當再次顯示視圖控制器時,應恢復UIScrollView的寬度。UIScrollView的奇怪行爲

//TouZiViewController is the current view controller 
@implementation TouZiViewController 
... 
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"toTouZi2"]) 
    { //TouZi2ViewController is the destination view controller 
     TouZi2ViewController *viewController2=[segue destinationViewController]; 

     //huatiaoRect is CGRect,fullHuaTiao is the outlet of UIScrollView 
     viewController2.huatiaoRect=self.fullHuaTiao.frame; 

    } 
} 
@end 


@implementation TouZi2ViewController 
... 
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"toTouZi"]) 
    { 
     TouZiViewController *viewController=[segue destinationViewController]; 
     [viewController loadView]; 

     viewController.fullHuaTiao.frame=self.huatiaoRect; 

    } 

} 
@end 

的問題是,當我從第二視圖控制器回來時,UIScrollView的位置比以前高得多。爲什麼是這樣? 更新 現在我發現問題是由於autoresizing.I改變故事板中的自動調整,然後它運作良好。

+0

何不你在這些地方記錄'huatiaoRect'的值,看看'origin.y'是否在某處變化? 'NSLog(NSStringFromRect(self.huatiaoRect));' – 2013-04-05 15:15:07

+0

@SeamusCampbell我登錄viewDidLoad,origin.y沒有改變,但實際上它已經改變了。我認爲這個改變已經超出了viewDidLoad。 – 2013-04-05 15:19:24

+0

我認爲你需要找到你改變或更新'huatiaoRect'的值並記錄它的地方。也許你只是在編輯寬度的地方編輯原點。 – 2013-04-05 15:27:18

回答

1

我認爲這個問題可能在設置frame.If無法登錄的幀值並找到值被改變

改變這一點,並給它一個嘗試之前調用的loadView方法

viewController.fullHuaTiao.frame=self.huatiaoRect; 
    [viewController loadView];