2013-09-25 4 views
18

IOS7では、style = groupedを使用するとUITableViewにインデントが表示されなくなりました。 UITableViewがリンゴの設定アプリのように動作するように、どのようにインデントを有効にすることができますか?IOS7 UITableViewは設定のようにグループ化されています。

+0

このリンクをご覧ください。それは、グループ化されたUITableViewを設定する方法を示しています。http://mobisoftinfotech.com/iphone-uitableview-tutorial-grouped-table/ – erdekhayser

+2

いいえ、私はこれがどのように動作するか知っています。しかし、IOS7では、彼らはインデントを削除しましたが、私はそれが必要です。 Appleは設定アプリでもそれを使用しています。 –

+0

正確な字下げは何ですか?セパレータまたはテキスト?あなたのサブビューをセルのcontentviewに置くと、すべてがうまく見えるはずです。 – Bms270

答えて

0

cellForRowAtIndexPathメソッド内で、これを試してください:セルの両側(左/右)に10ptの余白を追加します

CALayer *sublayer = [CALayer layer]; 
UIImage *img = [UIImage imageNamed:@"blue_box_6dbcef.png"]; 
sublayer.backgroundColor = [[UIColor alloc] initWithPatternImage:img].CGColor; 
sublayer.frame = CGRectMake(10,0,container.frame.size.width-20, 112); 
//sublayer.cornerRadius = 5; // For rounded corners 
UIView *bgview = [[UIView alloc] init]; 
bgview.backgroundColor = [UIColor clearColor]; 
[bgview.layer addSublayer:sublayer]; 
cell.backgroundView = bgview; 

を。

16

これを実現する方法ははるかに簡単です。

  1. UITableViewを側面から離して配置します。例:Autolayoutを使用すると、先頭と末尾に15px(または任意のもの)のスペースがあります。 これで、アップルがグループ化されたテーブルビューを無料で提供していた「インデント」を作成しています。

  2. コーナーと境界を追加するようにレイヤーを調整します。

    [[[self tableView] layer] setCornerRadius:5.0f];
    [[[self tableView] layer] setBorderWidth:0.5f];
    [[[self tableView] layer] setBorderColor:[[UIColor redColor] CGColor]];

あなたはまだ解決策を探しているならば、その答えがここに置かれ

関連する問題