1

我做了一个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' 的位置比以前高得多。为什么是这样? 更新 现在我发现问题是由于自动调整大小。我在情节提要中更改了自动调整大小,然后效果很好。

4

1 回答 1

1

我认为问题可能是在设置框架之前调用 loadview 方法。如果没有记录框架值并找到值更改的位置

改成这个并试一试

    viewController.fullHuaTiao.frame=self.huatiaoRect;
    [viewController loadView];
于 2013-04-05T16:14:00.310 回答