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改变故事板中的自动调整,然后它运作良好。
何不你在这些地方记录'huatiaoRect'的值,看看'origin.y'是否在某处变化? 'NSLog(NSStringFromRect(self.huatiaoRect));' – 2013-04-05 15:15:07
@SeamusCampbell我登录viewDidLoad,origin.y没有改变,但实际上它已经改变了。我认为这个改变已经超出了viewDidLoad。 – 2013-04-05 15:19:24
我认为你需要找到你改变或更新'huatiaoRect'的值并记录它的地方。也许你只是在编辑宽度的地方编辑原点。 – 2013-04-05 15:27:18