質問するログイン新規登録

質問編集履歴

2

原因が分かったため追記

2020/10/21 10:48

投稿

abc1222
abc1222

スコア24

title CHANGED
File without changes
body CHANGED
@@ -12,6 +12,8 @@
12
12
  真ん中の画面が上手くいった画面です。(一番下のtextFieldがキーボードに合わせてスクロールされる)
13
13
  一番右の画面が上手くいかない画面です。(textFieldをタップしてもキーボードに合わせてスクロールしない。なぜか後ろに透けて見える前の画面がスクロールされている様子)
14
14
 
15
+ 追記:解決策はまだ分かっていませんが、原因は分かったため、質問の一番下に「原因」の見出しで情報を追加しています。
16
+
15
17
  ### 該当のソースコード
16
18
 
17
19
  textFieldや本件に関係ないコードも多いので、見やすいように一部省略しています。
@@ -152,4 +154,11 @@
152
154
 
153
155
  その他気になる所
154
156
  ・Extentionの使い方がよく分からず、前の画面にも同じExtentionを記載しています。
155
- ※クラス名やOutletさせるtextFieldは変えています
157
+ ※クラス名やOutletさせるtextFieldは変えています
158
+
159
+ ### 原因
160
+ textFieldをStackViewの中に入れているなど、入れ子が複雑な(深い?)状態になっていました。
161
+ そして、勉強中なので間違っているかもしれませんが、self.selectedTextField!.frame.maxYは親Viewからの位置を取得するようですので、スクロールビューからの距離ではなく、StackViewからの距離を取得しているみたいです。
162
+ 結果、0 − キーボードサイズを計算し、offsetY < 0 { return }によって何も起きないという状況と思われます。
163
+
164
+ じゃあどうすればスクロールビューからtextFieldまでの距離が取れるのかなどまだわからない点も多いので自己解決には記載できないのですが、取り急ぎご報告です。

1

追記依頼を頂いたので、関係ありそうな情報を追記しています。

2020/10/21 10:48

投稿

abc1222
abc1222

スコア24

title CHANGED
File without changes
body CHANGED
@@ -136,4 +136,20 @@
136
136
  }
137
137
 
138
138
 
139
- ```
139
+ ```
140
+
141
+ ### 追記
142
+ 現在のストーリーボード上のViewの階層と、そのほか関係の有りそうな項目を追記いたします
143
+ ![イメージ説明](0d806737abd159153d9a8a6a89a1153d.png)
144
+
145
+ 最初のScrollViewが参考サイトのとおりに作った所です。
146
+ SafeAreaいっぱいに広げ、すぐ下のViewはSafeAreaと同じ縦横幅に設定しています。
147
+ 上記Viewは透過させ、その上に(階層としては下?に)Viewを余白4方向20で設置し、ポップアップのように見せています。
148
+ ポップアップ用のViewに見出し用ラベル、textFieldを設置するScrollView、ボタン設置用のStackViewを置いています。
149
+
150
+ UIViewControllerにOutletさせているのは最初のScrollViewです。
151
+ スクロールビューが2つあることが駄目なのでしょうか。
152
+
153
+ その他気になる所
154
+ ・Extentionの使い方がよく分からず、前の画面にも同じExtentionを記載しています。
155
+ ※クラス名やOutletさせるtextFieldは変えています