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.
\*はどちらかの指定をすればよい。
2023年12月 | ||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
  |   |   |   |   | 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 |
31 |   |   |   |   |   |   |
iOS
web
?スA?スv?ス?ス?スフ抵ソス?ス??
?スu?ス?ス?スb?スN?ス`?スF?ス[?ス?ス?ス^?ステ搾ソス?スZ?スp
?スV?ス?ス?ス?ス?スミ会ソス
?スT?スE?ス?ス謨ァ?ス?ス
?ス?ス?ス{?スフなりた?ス?ス