5

現在、view controllerで構成さNavigation barれた があり、その後にサブビューとしてUIView2 つUIButtons追加された があります。次にUITableView、コンテナの底から始まる下部がありUIViewます。

現時点では、ユーザーがスクロールするUITableViewと と の後ろに移動UIViewUIButtonsます。私が実際にやりたいことは、UIViewUIButtonsがテーブル ビューで上に移動することですが、この場合は 58 ピクセルの高さの値だけです。流れはこんな感じ…

1) テーブルがスクロールしUIView、最初の 58 ピクセルまで一緒に移動します。

2) ユーザーはテーブルをスクロールし続けますが、UIView「ピン」自体が の下に表示されなくなりnavigation barます。

3) ユーザーがテーブルを下にスクロールすると、テーブルUIViewが選択されてビューにドラッグされます。新しい Facebook アプリは、タイムラインで似たようなことをしていると思います。

UIViewをテーブルのように設定したくありませんTableHeaderView。プル ツー リフレッシュもあり、ボタンの上に座ってひどく見えるからです。contentOffsetテーブルの基礎となるプロパティをいじってみましscrollviewたが、レンガの壁にぶつかりました。

どこから始めればよいかについてのアドバイスをいただければ幸いです。

ありがとう

編集:私はもう少し進んで、このコードを使用して UIView のフレームを移動します。

-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog (@"Content Offset: %f", self.tableView.contentOffset.y);
    NSLog (@"Button Frame: %f", self.btnBackground.frame.origin.y);

        if (self.tableView.contentOffset.y > 0)
        {
            CGRect newFrame = self.btnBackground.frame;
            newFrame.origin.x = 0;
            newFrame.origin.y = -self.tableView.contentOffset.y;
            [self.btnBackground setFrame: newFrame];
        }  

}

ここでの問題は、テーブル ビューが高速にスクロールされると、scrollViewDidScroll デリゲート メソッドが十分に速く起動されないことです。その結果、すばやくスクロールすると、UIView が元の位置に完全に戻るわけではありません。

4

2 に答える 2

1

スクロール コンテンツのオフセットは良い考えです。また、テーブルビューにセクションが 1 つしかない場合、トップ レベルのウィジェットを表すカスタム ヘッダー ビューを作成するのが 1 つの方法です。複数のセクションがある場合は、カスタム ヘッダーを返す追加の空のセクションを作成します。

このスタック オーバーフローの投稿を参照できます。 UITableview ヘッダー セクションのカスタマイズ

于 2013-08-11T17:18:59.300 に答える
0

よくある質問 (y) まあ、私にとっては最初に: UIScrollViewtopView とその下の tableView の両方を含み、トップUIViewと同じ幅を持つメインを使用し、UITableViewその高さを height(tableView) + height(上面図)。2番目:デリゲートを使用してテーブルビューが上下にスクロールされているかどうかを知ることができるUITableViewサブクラスであるため。このケースでは、次の 2 つのケースがあります。UISCrollViewscrollViewDidScroll

1) tableview が上にスクロール = > メイン scrollView のコンテンツ オフセットを

[scrollView setContentOffset:CGPointMake(0, 58) animated:YES];

2) テーブル ビューを下にスクロールすると、コンテンツ オフセットを再度リセットできます。

 [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
于 2013-05-06T10:49:59.900 に答える