ステータスバーをタップ時に UITableView をトップに戻す : Objective-C プログラミング

PROGRAM


ステータスバーをタップ時に UITableView をトップに戻す

iPhone や iPad では、一番上のステータスバーをタップすると、表示されている UITableView をいちばん上まで自動的にスクロールしてくれる機能が備わっています。

既定ではこの機能が ON になっているので、意図的に無効にしているアプリでなければ利用できます。

 

この機能の有効・無効を切り替えたい場合には、UITableView の "scrollsToTop" プロパティを調整します。

// ステータスバーをタップした時の自動スクロールを無効にしています。

self.tableView.scrollsToTop = NO;

"scrollsToTop" プロパティに NO を設定すると、ステータスバーがタップされても、その UITableView が自動的にスクロールされることはなくなります。

 

ちなみに View 上に複数の UITableView が配置されている場合、どうやらタップしたその下にある UITableView がスクロールされる対象になるようでした。

インターネット上には、複数の UITableView がある場合には、そのうちの一つだけが scrollsToTop = YES になっている場合にのみ、ステータスバーのタップでそれが自動スクロールされるようになるとの情報もありましたけど、少なくとも自分が試した感じでは、複数の UITableView の scrollsToTop が YES になっていても動作するような感じです。

たとえば実際に、複数の UITableView を縦一列に並べてまでは試していないのですけど、とりあえず iPad で UITableView を横 1 列に 3 つ並べて試してみたところ、ステータスバーをタップすると、その下に位置する UITableView がトップまで自動スクロールされました。

[ もどる ]