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