グループ化されたスタイルで初期化され、複数のセクションを持つUITableViewControllerがあります。これらのセクションの1つについては、その構成セルが完全に透明で、境界線がないことを望みます。このセクションのすべての行にカスタムビューを割り当てる予定ですが、グループ化されたテーブルセルに囲まれたカスタムビューがあると悪いようです:(
以下は、セルの背景色を透明ではなく黒にします...そして、まだ境界線を取り除く方法がわかりません。
cell.backgroundColor = [UIColor clearColor];
ポインタはありますか?ありがとう!
注:これはiOS7以降では動作していないようです。 iOS7の場合は、 this answerを試してください。
IOS6以前の場合、グループ化されたテーブルビューセルのセルからグループ化された背景を削除するには:
これは機能しませんでした
cell.backgroundView = nil; // Did Not Work
これでした
cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
ARCに移動した場合(この作品を聞いたことがありますが、テストしていません)
cell.backgroundView = [UIView new];
実際に設定する必要があります
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
セルの境界線を削除します。
次のハックは、現時点ではiOS 7で機能します。 :)
UITableViewCell
をサブクラス化し、セパレーターを使用しないセクションにこのセルを使用します。
セルサブクラスのaddSubview
メソッドをオーバーライドします。
-(void)addSubview:(UIView *)view
{
// The separator has a height of 0.5pt on a retina display and 1pt on non-retina.
// Prevent subviews with this height from being added.
if (CGRectGetHeight(view.frame)*[UIScreen mainScreen].scale == 1)
{
return;
}
[super addSubview:view];
}
これは、グループ化されたスタイルテーブルを持つために働いたものです
[tableView setSeparatorColor:[UIColor clearColor]];
このコードは私のために働いた:)
[self.tableView setSeparatorColor:[UIColor clearColor]];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
セルのbackgroundViewをnilに設定します。グループ化されたテーブルの場合、セル画像はそのビューの一部です。
cell.backgroundColor = [UIColor clearColor];
cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
IOS 8以降、セパレーター属性をnoneに設定しても同様に機能します。
tableView.separatorColor = [UIColor clearColor];
を使用してみてください
また、tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
を使用しないでください
私は両方でテストしました。スタイルがなしの場合、セクションの境界線を非表示にすることは機能しませんが、代わりに色を変更するだけで、セクションの境界線はなしに見えます。
iOSは、オブジェクトを何も作成せず、オブジェクトを透明にすることを差別化しているようです
cell.backgroundView = [UIView new];
チャームのように機能します!テスト済み! iOS6
コンテンツビューを設定すると、境界線も削除されます。カスタムビューをcell.contentViewに設定します。
コメントを@Intentssに変換して答えにしたいと思ったのです。彼のソリューションを使用することで、それらに役立つかもしれないからです。
ARCを使用してグループ化されたUITabelViewでiOS6.1を使用
[tableView setSeparatorColor:[UIColor clearColor]];
動作しない
cell.backgroundView = [[UIView alloc] initWithFrame:CGRectZero];
動作します
UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
backView.backgroundColor = [UIColor clearColor];
cell.backgroundView = backView;
cell.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:imageView];
グループ化されたスタイルのUITableViewのセクションからセルの境界線を削除する最も簡単な方法:
[tableViewOutlet setBackgroundView:nil];
viewDidLoadメソッドで。
カスタムUITableCellViewがある場合、次のメソッドをビューに追加して背景ビューを削除できます。
- (void)setBackgroundView:(UIView *)backgroundView
{
// We don't want background views for this cell.
[super setBackgroundView:nil];
}