私はiOS 7が正式にリリースされていないことを理解しているので、それについては議論しないでください。iOS 6では、テーブルビューは透明で見栄えが良かった。初めてiOS 7を実行し、背景は白です。
テーブルのbackgroundColor、セルの色などをUIColorのclearColorにしてみましたが、変更はありません。
この問題を解決する方法は?
私はiOS 7が正式にリリースされていないことを理解しているので、それについては議論しないでください。iOS 6では、テーブルビューは透明で見栄えが良かった。初めてiOS 7を実行し、背景は白です。
テーブルのbackgroundColor、セルの色などをUIColorのclearColorにしてみましたが、変更はありません。
この問題を解決する方法は?
回答:
// Fix for iOS 7 to clear backgroundColor
cell.backgroundColor = [UIColor clearColor];
cell.backgroundView = [[UIView new] autorelease];
cell.selectedBackgroundView = [[UIView new] autorelease];
cellForRowAtIndexPath内
また、テーブルビューの背景が透明(ストーリーボード内)であることを確認してください。
これを入れてください:
cell.backgroundColor = [UIColor clearColor];
このセクションで:
cellForRowAtIndexPath
backgroundView
空のビューに、この追加のコードは、IOSの7のために必要とされる
最初にbackgroundViewをnilに設定してみてください。
[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundColor:[UIColor clearColor]];
これがiOS7でのドキュメントの変更なのか、それとも常にそこにあり、背景色に影響しなかったのかはわかりませんが、UITableViewクラスリファレンス@property backgroundView
「テーブルビューの背景色を設定するには、このプロパティをnilに設定する必要があります。」
編集:修正されたコード構文
これは答えられましたが、多くの点で間違っています。
以下のデリゲートメソッドを実装する必要があります。
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
[cell setBackgroundColor:[UIColor clearColor]];
}
cellForRowAtIndexPathに修正を入れることはできません。これは、セルがレンダリングされた後であり、背景がクリアに設定される前に(遅いデバイスで)白い背景が点滅します。
このデリゲートメソッドを使用すると、問題が解決します。
実際には、公式に正しいセルの背景色を変更する場所は、ドキュメント(UITableViewCell Class Reference)によって異なります。
定義済みのセルを使用してもカスタムのセルを使用しても、backgroundViewプロパティを使用するか、継承されたbackgroundColorプロパティを変更することにより、セルの背景を変更できます。iOS 7では、セルのデフォルトの背景は白です。以前のバージョンのiOSでは、セルは外側のテーブルビューの背景色を継承します。セルの背景色を変更する場合は、テーブルビューデリゲートのtableView:willDisplayCell:forRowAtIndexPath:メソッドで変更します。
これは非常にイライラする問題です。これが私の現在の解決策です:
これをUITableViewCell
サブクラスに追加します。
- (void)didMoveToSuperview {
[super didMoveToSuperview];
self.backgroundColor = [UIColor clearColor];
}
このコードスニペットを試してください
cell.contentView.backgroundColor = [UIColor clearColor];
cell.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.5];
これは、各セルのクリアな背景色とテーブル自体のクリアな色を編集したときにのみ機能しました。両方ともプログラム的に
テーブルのクリアカラーを設定するには:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
initMenu()
myTableView.backgroundColor = UIColor.clearColor()
}
セルの色を設定するには:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("tablecellid", forIndexPath: indexPath)
cell.backgroundColor = UIColor.clearColor()
return cell
}
素敵なこと。UITableのデフォルトの色は白のようです(理由はわかりません)
しかし、それを変更するほうがよい。
最初のセット
tableView.backgroundColor = [UIColor clearColor];
セカンドセット
tableCell.backgroundColor = [UIColor clearColor];
テーブルビュー用のIBアウトレットを作成します@IBOutlet弱い変数yourTable:UITableView!
ビューの負荷
override func viewDidLoad() {
yourTable.delegate = self
yourTable.dataSource = self
yourTable.backgroundColor = UIColor.clearColor()
}
セルの色をクリアしたい場合もこれを行います
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
cell.backgroundColor = UIColor.clearColor()
}
私のアプリでは、私が設定しなければならなかったbackgroundColor
私の上UITableViewCell
にクラスを[UIColor clearColor]
私が更新されたときに色iOS 7
。
私の場合、セルはxibを使用して作成されました。xcode5のインターフェイスビルダーで、clearColorをcell.backgroundColorに設定できないようです。
私がする必要があるすべては確かに設定することでした
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// get the cell from the nib
//then force the backgroundColor
cell.backgroundColor = [UIColor clearColor]
return cell;
}
テーブルとセルについても、[ビューの背景の色をクリア]を選択するだけです。
// Fix iOS 7 clear backgroundColor compatibility
// I Think this two lines only are enough
cell.backgroundColor = [UIColor clearColor];
cell.selectedBackgroundView = [[UIView new] autorelease];
迅速に3
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath)
cell.backgroundColor = .clear
cell.backgroundView = UIView()
cell.selectedBackgroundView = UIView()
return cell
}
backgroundView
をクリアなテーブルに設定してみましたか?