2014年2月21日金曜日

TableViewの特定のセクションヘッダを表示させない方法

TableViewの特定のセクションヘッダを表示させない方法


StoryBoardでいくつかTableViewを置いて、特定のテーブルだけSectionを表示させない
方法です。


UiViewControllerに2つのTableViewを配置しました。


この2つを区別させる為にtagを設定しましょう!


attribute inspectorのViewのTagの項目に数字をいれます。
上のTableViewに対して0,下のtableViewに対して1を代入します。

これで、どのテーブルが呼ばれたか判定できるようになりました。


では、コードで上のTableViewのSectionが表示されないようにしましょう。

/*
 セクションヘッダのビューを返す
 */
-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    
    // 上部テーブル
    if(tableView.tag == 0)
    {
        // 無視したいので、nil
        return nil;
    }
    else
    {
        // オリジナルのviewを返す
        UIView* view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
        return view;
    }
}


返すビューの設定が終わりました。
次は、セクションヘッダの高さを返してあげましょう。


/*
 セクションの高さを指定する
 */
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    // 上部のテーブルのセクションヘッダはいらない
    if(tableView.tag == 0)
    {
        return 0;
    }
    else
    {
        return 54.0f;
    }
}


上記のメソッドはいずれもデリゲートメソッドです。
これで、テーブルごとに管理し、セクションを別でわけることができました。

セクションフッタに関しても同様に表示させなくすることができます。

1 件のコメント: