amasok's blog

【iOS】上にスクロールした時だけバーを表示する

2014/03/19 19:20 tags: Objective-C, iOS, このエントリーをはてなブックマークに追加

1.上にスクロールした時だけバーを表示する
2.下にスクロールした際はバーを非表示にする
3.一番下までスクロールした際のバウンス時はバーを非表示にする

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
32
33
//scrollしている間呼び出され続ける - (void)scrollViewDidScroll:(UIScrollView *)scrollView { //scrollした位置を取得する CGPoint currentPoint = [scrollView contentOffset]; //上にスクロールした場合にバー(_tabBar)を表示する _tabBar.hidden = scrollBeginingPoint.y < currentPoint.y ? YES : NO; //バウンスした際にhiddenが解除されてしまうので、 //scrollViewの一番下までスクロールした際にバーを削除する //scrollView.bounds.size.height=画面サイズ //scrollView.contentOffset.y=スクロールした位置 int viewSize = scrollView.bounds.size.height + scrollView.contentOffset.y; //scrollView.contentSize.height=scrollView全体のサイズ int contentSize = scrollView.contentSize.height; if (viewSize >= contentSize) { _tabBar.hidden = YES; } } //scrollを開始した時点で一度だけ呼ばれる - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { //scrollを開始した値を取得する scrollBeginingPoint = [scrollView contentOffset]; }

これでできた。