Has ambiguous scrollable content height (or width) storyboardエラーに対応するには
iOSの開発でXcodeのStoryboardでスクロールビューを設置する場合に、エラーが表示されることがある。
UIViewController#viewDidload で UIScrollView#ContentSizeを設定すれば問題なく動作はするが、赤い警告が出続けるのは嫌なものだ。
エラーの内容は次のようなものだ。
Has ambiguous scrollable content height(or width)とエラー表示される。
UIScrollView に設置した View の大きさが認識できないのだなということは分かるが、ではどのconstraint を追加変更すれば良いのかが分からないし、共有されている情報も極めて少ない。
通常、View をSubViewとして配置する場合には次のようなconstraintを設定すればよい。
root view
subview
- top space to superview = 15
- buttom space to superview = 15
- leading space to superview = 20
- trailing space to superview = 20
または
root view
subview
- equal hight to superview
- align center y to superview
- equal width to superview
- align center x to superview
しかし、scrollViewのサブビューとして配置する場合には、これだけでは
UIScrollView#contentSizeが設定されないのだ。
UIScrollView#contentSizeを設定するためには、次に示すように top space, bottom space, leading space(またはalign center x), trailing space と equal height, equal width のすべての指定が必要になる。
(注意)
trailing space と equal height のどちらか一方を指定すればよいと考えがちだが、scrollViewのサブビューの場合には、両方のconstraint指定をしなければならない。
root view
scroll view
- top space to top layout view = 0
- buttom space to bottom layout view = 0 ←*どちらか必要
- equal hight to superview ←*どちらか必要
- equal width to superview
- align center x to superview
view
- top space to superview = 0
- buttom space to superview = 0 ←これが必要
- equal hight to superview ←*スクロールしない場合
- equal hight = 1000 ←*スクロールする場合
- equal width to superview
- align center x to superview
- trailing space to superview = 0 ←これが必要
button
textfield etc.
\*はどちらかの指定をすればよい。
2022年9月 | ||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
  |   |   |   | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |   |
iOS
web
アプリの著作権
ブロックチェーン/暗号技術
新しい社会
禅・大乗仏教
日本のなりたち