Autolayoutをオフにし、ViewControllerがNavigation Controllerに埋め込まれています。 Xcode 5、Storyboardを使用しています。
なぜスペースが上から離れるのか理解できません。実際、ストーリーボードでは、ナビゲーションバーの下にラベルを配置しました。しかし、シミュレータで実行すると、上からスペースが残ります。
これを解決するためのハッキング方法の1つ
-(void)viewWillLayoutSubviews
{
self.scrollViewMain.frame = CGRectMake(0, -70, 320, 800);
self.scrollViewMain.contentSize = CGSizeMake(320, 800);
}
しかし、私は何か非常に単純なアプローチを見逃しています
Xcode 5では、ストーリーボードでコントローラーを選択し、属性インスペクターでスクロールビューのインセットの調整を無効にしますcontentInsetを設定しているかどうかも確認します
編集:写真を添付しました
修正は、viewDidLoadの後に次のコード行を実装することです。
self.automaticallyAdjustsScrollViewInsets = NO;
iOS 11用の更新
if #available(iOS 11.0, *) {
scrollView.contentInsetAdjustmentBehavior = .never
} else {
automaticallyAdjustsScrollViewInsets = false
}
メインストーリーボードに移動します。 View Controllerを選択します。属性インスペクターの「スクロールビューの昆虫の調整」プロパティを参照してください。上部の間隔が必要ない場合は、[上部のバーの下]のチェックを外します。下部の間隔が必要ない場合は、[下部バーの下]のチェックを外します。この種の問題は、スクロールビュー関連のコントローラーを使用するときに発生します。
これは、コントロールのようなスクロールビューでコンテンツを調整するためのナビゲーションとタブバーの機能です。
Xcode 7およびSwift 2.xの場合、UIScrollViewにforループを設定し、contentInsetをゼロに設定する必要がありました。
for image in images {
self.scrollView.contentInset = UIEdgeInsetsZero
}