UIScrollViewがオートレイアウト制約を使用しない
質問
スクロールビューとその後ろに画像ビューがあり、そこにnibsを入力しています。 私はautolayoutを使用しています。 私は両方のビューでsuperviewに下のスペースとsuperviewに上のスペースを持っています。 イメージビューは、まさに私がやりたいことをやってくれています。 iphone5では、それは私が望むところである。 そして、他のiphoneのために、それは画面の底の上に滞在するので、それは正しくリサイズされます。 スクロール表示はiphone5では正しく表示されますが、他の機種ではリサイズされず、アプリの表示より下にスクロールされます。 ログにこんなメッセージが出ます。
2012-11-21 10:42:38.576 LCHApp[12604:907] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this: (1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer
to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
"<NSLayoutConstraint:0x1d8ea080 UIScrollView:0x1d8413b0.bottom == UIImageView:0x1d892110.bottom>",
"<NSAutoresizingMaskLayoutConstraint:0x1d8cca10 h=-&- v=-&- ScheduleViewNib:0x1d853630.height == UIScrollView:0x1d8413b0.height - 386>",
"<NSLayoutConstraint:0x1d8e5340 V:[UIImageView:0x1d892110]-(64)-| (Names: '|':ScheduleView:0x1d8efc30 )>",
"<NSAutoresizingMaskLayoutConstraint:0x1d8cf520 h=--& v=--& V:[ScheduleView:0x1d8efc30(480)]>",
"<NSLayoutConstraint:0x1d8eaed0 V:|-(45)-[UIScrollView:0x1d8413b0] (Names: '|':ScheduleView:0x1d8efc30 )>"
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x1d8ea080 UIScrollView:0x1d8413b0.bottom == UIImageView:0x1d892110.bottom>
私はすでに
[self setTranslatesAutoresizingMaskIntoConstraints:YES];
と
[self.myScrollView setTranslatesAutoresizingMaskIntoConstraints:YES];
私が見る限り、これはビューからすべての制約を取り除くだけです。 そして、それは私が望むものではありません。
どのように解決するのですか?
UIScrollViewとオートレイアウトの関係は、オートレイアウトの他の側面とは異なっています。基本的に、単純なオートレイアウトを動作させた場合、何もスクロールしません。たとえば、スクロール ビューのサブビューが、スクロール ビューの最上部から 10 ポイントに制約によって通常の方法で固定されていた場合、それは絶対にそこに固定され、スクロール ビューがどのようにスクロールされたとしても、決して動くことはないでしょう。
この問題を解決するために、autolayoutを使用するUIScrollViewは全く新しい方法で動作します。そのため、autolayoutを使用する場合は、以前とは全く異なる動作をすることを覚悟しなければなりません。スクロールビューのサブビューを1つにして
translatesAutoresizingMaskIntoConstraints = YES
で、コンテンツサイズを明示的に指定するか、あるいは、すべてのコンテンツに
translatesAutoresizingMaskIntoConstraints = NO
でなければならず、コンテンツサイズはサブビューの制約に基づいて暗黙のうちに推測されます。
これは、非常によく説明されている https://developer.apple.com/library/content/releasenotes/General/RN-iOSSDK-6_0/index.html
関連
-
[解決済み] ビューを非表示にしたときに、オートレイアウトで他のビューを移動するには?
-
[解決済み】UIScrollView Scrollable Content Size Ambiguity
-
[解決済み] Autolayout を使用して UIScrollview に制約を設定するにはどうすればよいですか?
-
[解決済み] Objective-CのクラスでSwiftのプロトコルをインポートする
-
[解決済み] 別のUIViewの下にあるUIViewとのインタラクションを許可する
-
[解決済み] Swift ネイティブベースクラスまたは NSObject
-
[解決済み] idの意味は?
-
[解決済み] NSStringの最初の3文字を取得するには?
-
[解決済み] Xcode 4(および依存関係)におけるコンパイル、ビルド、またはアーカイブの問題
-
[解決済み] Xcodeバージョン(CFBundleShortVersionString)とビルド(CFBundleVersion)の違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] オートレイアウトの場合、CALayerのアンカーポイントを調整するには?
-
[解決済み] Objective-CでNSArrayを新しいNSArrayにフィルタリングする。
-
[解決済み] Objective-Cのセレクタ?
-
[解決済み] インスタンスメッセージの受信型'CALayer'は前方宣言である」とはどういう意味か?
-
[解決済み] ベストプラクティス - 自分のプロジェクト/アプリのためのNSErrorドメインとコード
-
[解決済み] 別のUIViewの下にあるUIViewとのインタラクションを許可する
-
[解決済み] NSNumberのインクリメント方法
-
[解決済み] Objective-Cです。NSNotificationのオブザーバを削除するには?
-
[解決済み] BOOLのデフォルト値
-
[解決済み] Category is implementing method which will be implemented by its primary class" の警告を抑制する。