2012-09-25 12 views
5

UITableViewの上にUIViewを追加しようとしています。 UITableViewの背景が表示されているのではなく、ユーザーがコンテンツをプルダウンすると(通常はプル・ツー・リフレッシュのように)、表の上にあるUIViewは、スライディングしている最上位のUITableViewCellに固執し続ける必要があります。ユーザーが別の方法(コンテンツが上に行く)をスクロールすると、UIViewはあたかも一番上のUITableViewCellのように消えてしまいます。ユーザーが引き出したときにUITableViewのヘッダーが伸びる

パス(プルダウンタイムラインとトッププロフィール画像の拡大、example at 0:15)と新しいFacebookアプリのチェックイン(地図が近くの場所のリストの上に広がります)でこの実装を見ることができます。

これについては、最も適切な方法はありません。私はあなたが最初のセルとしてUIViewを持っていると同じような効果を達成すると思います。しかし、this questionは、セルの高さのサイズを変更しようとすると少し気になっています。理論的には、サイズ変更が一番上のUITableViewCellであれば、プッシュアップするのではなく、プルダウンするだけでサイズ変更を行う必要があります。

編集:現在のコード - rummadからの提案を使用して、私はcontentOffset用テーブルビュー上のキーパスオブザーバを追加し、それに基づいてセルの高さをリサイズ、それはあらゆる場所にジャンプしていますよ。あなたのviewDidScroll:デリゲートメソッドで

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ 
    if (self.tableView == (UITableView*)object) { 
     if ([keyPath isEqualToString:@"contentOffset"]) { 
      CGPoint scrollLoc = self.tableView.contentOffset; 
      if (scrollLoc.y < 0) { 
       NSLog(@"offset:%@", NSStringFromCGPoint(scrollLoc)); 
       headerSize = 100 - scrollLoc.y; 
       [self.tableView beginUpdates]; 
       [self.tableView endUpdates]; 
      } 
     } 
    } 
} 
+0

ヘッダの内側に別のビューを入れて、それを伸ばしてみます。私はヘッダーのビューの矩形を変更しようとしたときに同じジャンプ問題を抱えていました。 – Stuart

答えて

12

は、実際にそこにいくつかのライブラリがあるように見える、と最初のテーブルセルを使用して移動するための方法ではありません。 「パララックス」は魔法のグーグル用語だったようだ。

http://rowboatrevolution.com/2012/02/uitableview-parallax-background-a-la-path/ https://github.com/Rheeseyb/RBParallaxTableViewController

+0

OPは魔法のGoogle用語「視差」を要求しませんが、一番上に張り付いて成長するヘッダーのために、tableViewをドラッグ(下) –

4

UITableViewためcontentOffsetを追跡します。それに応じてUIViewのフレームを設定することができます。

+0

ここにいくつかのサンプルコードを投稿しますか –

関連する問題