2012-04-03 16 views
1

私はテーブルセクション、セル、およびtableFooterViewを持つシンプルなテーブルを持っています。TableViewはTableFooterViewの代わりに最後のセルの下にスナップします

フッターは、単なる影のグラデーションのイメージです。私が下にスクロールすると、テーブルを最後のセルの一番下にスナップして、これをビーンでスクロールするだけでシャドウを表示し、最後のセルの一番下まで戻ってフッターを隠す必要があります再び。

私はこれを検索しようとしましたが、適切なキーワード(まだxcodeに新しく、すべての暗号/長い名前)が見つからないようです。バウンス、またはフッターにカスタムボタンを追加したい人。

誰かが正しい方向に向いていますか?

答えて

0

UIScrollViewのスーパークラスUITableViewは、悲惨な生き物になる可能性があります。紙に書かれているように簡単な命題があるように見えるものは、時には難しいものになるほど多くの行動がプログラムされています。それに加えて、このであるという事実を追加して、それは悪化します。

あなたは、これを達成するためにUITableViewtableFooterViewプロパティを使用すると判断された場合は、私が使用して制限された(非常に)成功を収めている:

これらはUIScrollViewDelegateメソッドで、あなたのビューコントローラは、テーブルビューのデリゲートすでにそうです。

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ 
    UIView *tableViewFooter = _tableView.tableFooterView; 
    CGFloat maxContentOffsetY = tableViewFooter.frame.origin.y - scrollView.frame.size.height; 
    if (scrollView.contentOffset.y > maxContentOffsetY){ 
    //if (targetPoint.y > maxContentOffsetY){ 
     [scrollView setContentOffset:CGPointMake(0, maxContentOffsetY) animated:YES]; 
    } 
} 
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ // called when scroll view grinds to a halt 
    // Check offset and correct if we landed below the correct offset 
    UIView *tableViewFooter = _tableView.tableFooterView; 
    CGFloat maxContentOffsetY = tableViewFooter.frame.origin.y - scrollView.frame.size.height; 
    if (scrollView.contentOffset.y > maxContentOffsetY){ 
     [scrollView setContentOffset:CGPointMake(0, maxContentOffsetY) animated:YES]; 
    } 
} 

単純に、ビューコントローラのビュープロパティにグラデーションを追加することをお勧めします。こうすると、テーブルが画面外にスクロールすると、その背後にグラデーションが表示されます。そうすれば、自由に欲しい行動のほとんどが得られます。

0

グラデーションを置く場所の高さが200px以上のUIImageViewサブビューの高さ0pxのフッタービューを使用できます。 次に、フッターをサブビューをクリップしないように設定します。

テーブルビューの内容をスクロールすると、フッターが上に移動してそのサブビューが表示されます。

関連する問題