2013-11-15 80 views
0

我有一個UIScrollView,裏面有一個UIView。我在故事板編輯器中將這個UIScrollView定位在屏幕的中間位置。默認情況下,它會顯示在應該出現的位置,但在運行我的應用程序時不會響應用戶交互。如果我取消選中故事板的自動佈局,交互就可以工作,但視圖會自動移動到屏幕的頂部。或者,我可以離開自動版式檢查,並在我viewDidLoad中插入下面的代碼:UIScrollView框架被自動移動

scrollView.translatesAutoresizingMaskIntoConstraints = NO; 
noteContainer.translatesAutoresizingMaskIntoConstraints = NO; 

NSDictionary *viewsDictionary; 
viewsDictionary = NSDictionaryOfVariableBindings(scrollView, noteContainer); 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView]|" options:0 metrics: 0 views:viewsDictionary]]; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" options:0 metrics: 0 views:viewsDictionary]]; 
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[noteContainer]|" options:0 metrics: 0 views:viewsDictionary]]; 
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[noteContainer]|" options:0 metrics: 0 views:viewsDictionary]]; 

在這種情況下,滾動視圖響應的互動,但同樣會自動移動到屏幕的頂部。可笑的沮喪。

回答

1

解決方法是將scrollview放置在通用UIView內,該UIView位於您想要的位置。

1

它轉到屏幕的頂部(並且是屏幕的大小),因爲這是你告訴它你的限制做的事:

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" options:0 metrics: 0 views:viewsDictionary]]; 

該約束說使滾動視圖有0距離到屏幕的頂部和底部。如果你想要的話,說從頂部150點,並一路走下到底部,你應該有這樣的:

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-150-[scrollView]|" options:0 metrics: 0 views:viewsDictionary]];