2013-08-21 17 views
7

質問には既に多くの回答があることがわかりましたが、それぞれをテストしても問題はあります。 UIViewが含まれているUIScrollViewがあり、アニメーションのアクティブな自動レイアウトが必要です。しかし、このため、私のスクロールビューはスクロールしません。自動レイアウトのためにuiscrollviewがスクロールしない

これは私のコードです:それは動作しない理由を

NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(_scrollView, _containerScrollView); 

    [_scrollView setScrollEnabled:YES]; 
    [_scrollView setContentSize:CGSizeMake(_scrollView.frame.size.width, CGRectGetHeight(_containerScrollView.frame))]; 
    _scrollView.userInteractionEnabled = YES; 
    _scrollView.delaysContentTouches = YES; 

    [self.superview addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_scrollView]|" options:0 metrics:0 views:viewsDictionary]]; 
    [self.superview addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_scrollView]|" options:0 metrics:0 views:viewsDictionary]]; 
    [_scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_containerScrollView]|" options:0 metrics:0 views:viewsDictionary]]; 
    [_scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_containerScrollView]|" options:0 metrics:0 views:viewsDictionary]]; 

誰かが私に説明できますか?

+0

scrollViewとcontainerScrollViewのサイズは異なりますか?同じサイズの場合、スクロールビューのcontentSizeは、すべてのコンテンツを表示するためにスクロールする必要がないことを指示します。 – Eric

+0

はい、サイズが異なります。 _scrollview height:652. _containerScrollView height:1050 – Maxime

+0

autolayoutでは、通常、スクロールビューの 'contentSize'を指定しません。これは、一般にサブビューの制約によって決まるためです。しかし、それから戻って、おそらくあなたが達成しようとしていることを私たちに伝えることができます。望ましいUXのより大きなイメージを理解することなく、ソリューションを推薦するのは難しいです。たとえば、アニメーションの性質は何ですか? '_containerScrollView'の制約をどのように定義しましたか(' UIScrollView'自体ではなく、スクロールビューの中の 'UIView'と仮定します)? – Rob

答えて

0

私はちょうど同様の質問に答えました。 https://stackoverflow.com/a/18404262/390665 その答えに関する詳細なスクロールビューとNSLayoutConstraintsの説明があります。

+0

助けてくれてありがとう、今日の午後にこれを試してみましょう。 – Maxime

7

autolayoutsを設定したまま、scrollViewのContent size intを "viewDidLayoutSubviews"メソッドに設定してみてください。

-(void)viewDidLayoutSubviews 
{ 
    [self.itemList setContentSize:CGSizeMake(required_width, required_height)]; 
} 
+0

素晴らしい作品です! –

関連する問題