2012-04-21 12 views
1

私はグループスタイルのUITableViewを持っています。 tableView内では、セクションには可変数の行があるため、セクションに整列された行があります。しかし、私は複数の(展開可能な)行を持つ1つの大きなセクションのように見えるように、すべてのセクションを(UIの理由で)一緒に押し込むことを選択しました。UITableViewCell Selection Area - グループ化されたUITableViewセクションの上部/下部セルのセル全体を埋める方法は?

私が抱えている問題は、各セクションの上部と下部の行の選択領域がセル全体を埋めるようにしたいということです。つまり、丸い角を持たないようにします。

私は無地のテーブルビューは、細胞のための完全な選択をしていることを知っているが、それは他の不要な影響を持っているので、私は無地のテーブルビューにグループ化されたテーブルビューから変更することはできません。

セルのselectedBackgroundをマスクして角が丸くなるようにする方法を理解していますが、セルの頂点と底面のセルのコーナーを '折り返す'方法を見つけることができませんでしたセクション。私は各セクションの下の行にダミー行を作成しましたが、これはうまくいくようですが、面倒です。私は上の行のためのダミーの行を行うことはできません。

グループ化されたUITableViewのトップ/ボトムセクションの行の選択領域を「取り消す」ことはできますか?

EDIT ANSWERを追加するには: 次のコードは、私のカスタム背景景色と協力:カスタム背景ビューによって決定されるように、

cell.selectedBackgroundView.bounds = cell.bounds; 

各セクションの上部または下部の細胞のどのような「形状」、選択スタイルは上記のコードを使用して「シェイプ」と一致します。これは、必ずしもそれ自体が丸みを帯びた角を取り除くしませんが、私は「ミドル・スタイル」セルの背景ビュー(角のない)にセクションの上部または下部のセルを設定している場合、これは必要に応じて、セル全体を選択しません。

答えて

0

は少し遅くなるが、ここで私がやったことである可能性があり:

まず

(セルの背景のと同じ境界に)必要に応じて、あなたのセルの背景ビューを設定して、セルの選択した背景ビューを設定します

必要に応じて、あなたがコーナーの丸めを設定することができるようにあなたは、cornerRadiusプロパティを指定することができ、私は私の場合には、このプロパティを省略している。ここ

は両方のコードです:

 UIView *bg = [[UIView alloc] initWithFrame:cell.bounds]; 
     bg.backgroundColor = [UIColor colorWithRed:0.980 green:0.988 blue:0.984 alpha:1]; 
     bg.layer.borderColor = [UIColor colorWithRed:0.827 green:0.827 blue:0.835 alpha:1].CGColor; 
     bg.layer.borderWidth = kCellBorderWidth; 
//  bg.layer.cornerRadius= kCellBorderRadius; 
     cell.backgroundView = bg; 

     // to make cell selection square and not round (which is by default) 
     UIView *bg_selected = [[UIView alloc] initWithFrame:cell.bounds]; 
     bg_selected.backgroundColor = [UIColor lightGrayColor]; 
     bg_selected.layer.borderColor = [UIColor colorWithRed:0.827 green:0.827 blue:0.835 alpha:1].CGColor; 
     bg_selected.layer.borderWidth = kCellBorderWidth; 
     cell.selectedBackgroundView = bg_selected; 
1

プロジェクトにQuartzCoreフレームワークをインポートします。あなたのtableViewControllerと次のコードを使用する の#import ...

>>>編集した..

myTableView.layer.cornerRadius=0.0; 

//またはあなたのtableViewを使用:cellForRowAtIndexPath:

cell.backgroundView = [[[UIView alloc] initWithFrame:cell.bounds] autorelease]; 

Square corner tableview

Sample code and tutorial for Square corner in grouped tableview

これはあなたを助ける

ホープ...

+1

あなたの答えをありがとうが、それは選択肢まで何も変更されませんでした。しかし、答えを感謝します。 – SAHM

+0

私は自分のansを編集しました。それがあなたを助けてくれるかどうかを見てください... – Nit

+0

編集した答えを試しましたが、それはセルのselectedBackground領域を変更しませんでした。また、私はリンクをチェックアウトし、彼はそれらを削除する代わりに丸い角を追加しているようだ。私はマスクで丸みのあるコーナーを削除できますが、欠けているコーナーをどのように追加するか分かりません。 – SAHM

0

あなたが「するsetSelected:アニメーション」、カスタムのUITableViewCellを作成することがサブビューをクリップしないように設定し、上書きすることができるかもしれない示すために、セルの方法をあなた自身の選択領域。これは私が考えることができる唯一のものです。なぜあなたはプレーンなUITableViewを使用できませんか?

+0

@Michael_Frederick私は単純なテーブルビューを使用することができないという理由をいくつか持っていましたが、私が今考えることのできる主なものは、セパレータラインがグループ化されたテーブルビューの領域を越えて延び、 separatorStyleをnoneに設定する必要があります。実際にはセパレータスタイルが必要です。私はカスタム描画を使用することができることを知っているselectedBackgroundView - 私はカスタム描画selectedBackgroundを使用しています - しかしパフォーマンスと限りでは、標準の選択スタイルを維持しようとして、私は可能な限り、セル全体を埋めることを望んでいた。 – SAHM

関連する問題