5

私はソーシャルコンテンツのストリームを使用してアプリを構築しており、instagram がアプリでストリームを行う方法の動作を取得しようとしています。したがって、基本的には、画面からはみ出しますが、画面とコンテンツの間で跳ね返るトップ ヘッダーです。上部のヘッダーを画面からスクロールさせて、ビューをバウンスさせないようにすることはできますが、プルを使用して更新したいので、「偽の」ナビゲーション バーの上に移動してしまいますUIView。通常の Navbar がこれを生成することは知っていますが、スクロール オフするものは別の話です。

現在UITableview、 がUIViewより上にあり、 より上UITableViewCellでバウンスが発生することを除いて、すべてがうまく機能しUIViewます。UIView上記を取得する必要があると思いますが、 UITableViewController では、ストーリーボードでは を上UITableViewに配置できません。 UIViewUITableView

何か案は???

ありがとう

4

1 に答える 1

5

さて、私はついにこれをすべて機能させることができたので、すべての人に回答を投稿すると思いました。

基本的に、標準のナビゲーション バーを設定してscrollViewDidScrollから、スクロールのオフセットを取得し、それに基づいてフレームを変更します。これは完全に機能しているようです。私の scrollViewDidScroll メソッドについては以下を参照してください。

- (void)scrollViewDidScroll:(UIScrollView *)sender {

    //Initializing the views and the new frame sizes.
    UINavigationBar *navbar = self.navigationController.navigationBar;
    UIView *tableView = self.view;

    CGRect navBarFrame = self.navigationController.navigationBar.frame;
    CGRect tableFrame = self.view.frame;

    //changing the origin.y based on the current scroll view.
    //Adding +20 for the Status Bar since the offset is tied into that.
    navBarFrame.origin.y = MIN(0, (sender.contentOffset.y * -1)) +20;
    navbar.frame = navBarFrame;

    tableFrame.origin.y = MIN(0,MAX(-44,(sender.contentOffset.y * -1)));
    tableView.frame = tableFrame;

}

また、スクロールを補うために TableView を 44px の高さにする必要があります。そうしないと、フレームが十分に大きくなりません。これをviewWillAppearで行い、フレームを大きくしました。

于 2012-10-04T14:58:23.117 に答える