web-dev-qa-db-ja.com

iOS 6とiOS 7でUIScrollViewが上からスペースを残す理由

enter image description here

enter image description here

Autolayoutをオフにし、ViewControllerがNavigation Controllerに埋め込まれています。 Xcode 5、Storyboardを使用しています。

なぜスペースが上から離れるのか理解できません。実際、ストーリーボードでは、ナビゲーションバーの下にラベルを配置しました。しかし、シミュレータで実行すると、上からスペースが残ります。

これを解決するためのハッキング方法の1つ

-(void)viewWillLayoutSubviews
{
   self.scrollViewMain.frame = CGRectMake(0, -70, 320, 800);

   self.scrollViewMain.contentSize = CGSizeMake(320, 800);
}

しかし、私は何か非常に単純なアプローチを見逃しています

65
bhavya kothari

Xcode 5では、ストーリーボードでコントローラーを選択し、属性インスペクターでスクロールビューのインセットの調整を無効にしますcontentInsetを設定しているかどうかも確認します

編集:写真を添付し​​ました

enter image description here

156
Raheel Sadiq

修正は、viewDidLoadの後に次のコード行を実装することです。

self.automaticallyAdjustsScrollViewInsets = NO;

82
Anooj VM

iOS 11用の更新

if #available(iOS 11.0, *) {
    scrollView.contentInsetAdjustmentBehavior = .never
} else {
    automaticallyAdjustsScrollViewInsets = false
}
33
chengsam

メインストーリーボードに移動します。 View Controllerを選択します。属性インスペクターの「スクロールビューの昆虫の調整」プロパティを参照してください。上部の間隔が必要ない場合は、[上部のバーの下]のチェックを外します。下部の間隔が必要ない場合は、[下部バーの下]のチェックを外します。この種の問題は、スクロールビュー関連のコントローラーを使用するときに発生します。

これは、コントロールのようなスクロールビューでコンテンツを調整するためのナビゲーションとタブバーの機能です。

8
Ravi Kumar

インスペクター:scrollViewを選択し、コンテンツインセットを設定します-never

enter image description here

7
Svitlana

Xcode 7およびSwift 2.xの場合、UIScrollViewにforループを設定し、contentInsetをゼロに設定する必要がありました。

for image in images {
  self.scrollView.contentInset = UIEdgeInsetsZero
}
4
webjunkie