質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

4120閲覧

UITableViewとUITabBarControllerの組み合わせで、テーブルビューがスクロールできない

bizkit.kit

総合スコア30

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2017/11/08 15:06

編集2017/11/09 14:00

UITabBar、UITabBarItem、UITabBarController、UITableView、UITableViewCellを使って
画像のような画面を作りました。(StoryBoard上、MyDishTabControllerからNavigationControllerへSegueが張ってあります。)
イメージ説明
イメージ説明

アプリでの実際の画面はこちらです。
イメージ説明

右上の+ボタンからTableViewの要素を追加するのですが、たくさん要素を追加した際に画面が
下にスクロールできないことに気づきました。そもそも要素0の時でもテーブルがスクロールしません。
テーブルのScrorringEnableがtrueなのは確認済みです。

右上の「編集」ボタンを押して、テーブルを編集状態にするとタブが下に隠れ、スクロールできるようになりますが、解除するとまたスクロールできなくなってしまいます。
イメージ説明

画面の作り方の問題なのかも知れません(コード上では画面描画を操作せず、全てストーリーボード上で作っています)。

どうすれば編集状態でなくてもテーブルがスクロールするようになるでしょうか。

以上、よろしくお願い致します。

----2017/11/09追記----
(1)オブジェクトライブラリから「Tab Bar Controller」を選択、ストーリーボードに追加し、
そこからTabBarやTabBarItemを改造しながら作りました
(すみません、1年ほど前からこの部分を触っていないので自分でも正確に覚えていません)

(2)テーブルはTableViewControllerを使っています。
他の画面ではViewController+TableViewのところもあります。
(さらに追記)すみません、思い出しました。
TabBarControllerからつながるViewControllerは、オブジェクトライブラリから「Navigation Controller」を選択、
ストリーボードに追加し、繋いだ様な気がします。こうすると、ViewController+TableViewではなく
自動的にTableViewControllerになりますよね。この画面がTableViewControllerになっているのはこの操作を行ったためだと思います。

(3)タブを隠すのはコードで書いています。
タブで遷移するそれぞれのViewControllerで編集ボタンが押された際に、
self.tabBarController?.tabBar.isHidden = true
としています。

(4)これはちょっと試してみたいと思います。また報告させていただきます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2017/11/09 01:16

(1)「UITabBar、UITabBarItem、UITabBarController」とありますが、UITabBarとUITabBarItemは自分で追加したのではなく、自動で追加されたものでしょうか?(2)テーブルはTableViewControllerでしょうか?それともViewController+TableViewでしょうか?(3)編集時に「タブが下に隠れる」という動作はコードで書いているのでしょうか?(4)Storyboard上で、現在の主食ViewControllerを切り離し、新たに同様の主食ViewControllerを作っても同じ症状になるか試せるでしょうか?
bizkit.kit

2017/11/09 13:37

ありがとうございます!質問に追記させていただきました。
fuzzball

2017/11/09 15:21

昔は正しくスクロールしていたけど、最近になって(例えばXcodeのバージョンアップ後)、スクロールしなくなったということでしょうか?
bizkit.kit

2017/11/09 21:10

このアプリは昨年の12月頃リリースしたのですが、おそらく当初から存在していた(私のアプリの)バグだと思われます。私自身このアプリを使っていて、この機能をたくさん使って(要素をたくさん追加して)今回の現象に気づきました。個人的にはNavigation controllerを追加下部分が怪しいような気がしてきました。ひょっとすると最初は動作していてどこかのタイミングで動かなくなった可能性もあるのですが、今となっては分かりません。すみません。
guest

回答1

0

自己解決

メニュー画面を表示するために、「ECSLidingView」というライブラリを使っているのですが(画面を右にスワイプすると画面がズレて、左端にメニューが表示される)、そのライブラリのジェスチャを無効にするとスクロールするようになりました。

回答者様のご質問で、「タブを隠す処理は自分で書いているのか?」というのがありましたが、この処理のところにECSlidingViewを編集時に一時的に無効にする処理が書いてあり、編集時にスクロール可能になるのはこのせいでした。(てっきりタブを隠す処理をするとスクロールするようになると思い込んでいました)

この画面を表示する時に一時的にこのライブラリを無効にすることで解決しました。(右スワイプでメニューは出なくなってしまうのですが、メニューボタンでは表示可能なのでそういう仕様と言うことにします。格好悪いですが)

ありがとうございました。

投稿2017/12/19 14:54

bizkit.kit

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問