2013-04-05 60 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];