2016-05-18 14 views
1

スクロールビューを水平方向にスクロールしないで、segコントロールが画面に対して大きすぎるため、セグメント化されたコントローラをスクロールビューに追加しようとしています。なぜそれがスクロールしていないのか分かりません。私は何か小さいものを見逃していると思うが、私はそれを見つけることができない。何かが助けます!ありがとうございました!スクロールビューが水平方向にスクロールしない

のviewDidLoadでの私のコード:

scrollView.delegate = self 
scrollView.showsHorizontalScrollIndicator = true 
self.scrollView.alwaysBounceHorizontal = true 
self.scrollView.scrollEnabled = true 
self.scrollView.addSubview(segControl) 
self.scrollView.pagingEnabled = true 
self.scrollView.directionalLockEnabled = false 
self.scrollView.contentSize.height = segControl.frame.height 
self.scrollView.contentSize.width = segControl.frame.width 
+0

'segControl.frame.width'の値は何ですか? 'scrollView.frame.width'よりも大きいですか? – ozgur

+0

scrollView.contentSizeは、スクロールするためにscrollview.frameより大きい必要があります。 – Sumanth

+0

はいいいえ、私は99%確信しています。どうすればそれが起こらないのですか?どのように私はそれがあるかどうかを確認することができますか? – user3462448

答えて

1

UIScrollViewはで動作するように非常に簡単です:限り、そのcontentSizeframe.size、独自よりも大きくなるように、それはあなたがオフになっているサブビューを発表するためにスクロールできるようになるの可視領域。

segControl.frame.widthscrollView.frame.widthの値を確認してください。スクロールビューをスクロールするには、segControlの幅を大きくする必要があります。

scrollView.frameが正しいかどうかを確認して、画面より離れた場所にはないことも確認する必要があります。 scrollView.frame.origin.x + scrollView.frame.widthは画面の幅より小さいです。

スクリーンショットを見るとscrollView.contentSize.width320(iPhone 5/5Sの場合はシミュレータ画面全体の幅をとっているため)です。コンテンツの幅が216と出力されていることを指定しているため、間違ったコールバックのフレームにアクセスしているように見えますが、値が正しく設定されていないとトリガーされます。私はviewWillAppear()代わりのviewDidLoad()

scrollView.contentSize.height = segControl.frame.height 
scrollView.contentSize.width = segControl.frame.width 

一部を動かす提案することができます。

+0

私はそれが大きかった。私はそれを印刷しました、これはデバッグ領域に現れました。 scrollviewフレームの幅:0.0コンテンツのサイズ:216.0 – user3462448

+0

'scrollView.frame'についてはどうですか?それは大丈夫ですが、万一画面外ではありませんか? –

+0

私は、スーパービューに等しいスクロールビューの末尾と先頭の制約を持っています。だから私はそうは思わない。 – user3462448

関連する問題