Tableviewの背景としてpng画像を設定しようとしています。次のコードではすべて問題ありません!ただし、iPhone Simulatorのみです。 iPhoneデバイスでアプリケーションを実行しようとすると、tableviewの背景は白(またはクリア)のままです。あなたが私が背景色を設定しようとした方法についての何かであるもの事ですか。以下まで多くの方法を試してきましたが、すべて同じ問題があります。
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
前もって感謝します!
次のコードを使用してください。
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
おかげで、
私はこのアプローチがよりきれいだと思います:
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
シンプルSwiftバージョンは
let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;
あなたの画像は実際にTableViewBackground.PNG
(大文字に注意)? iOSデバイスでは大文字と小文字を完全に一致させる必要がありますが、シミュレーターでは大文字と小文字を完全に一致させる必要はありません。
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
これは完璧に機能します。 JonaのRavinに感謝
インターフェイスビルダーから画像を添付できるIBDesignable tableviewサブクラス
import UIKit
@IBDesignable
class DesignableTableView: UITableView {
@IBInspectable var backgroundImage: UIImage? {
didSet {
if let image = backgroundImage {
let backgroundImage = UIImageView(image: image)
backgroundImage.contentMode = UIViewContentMode.ScaleToFill
backgroundImage.clipsToBounds = false
self.backgroundView = backgroundImage
}
}
}
}
[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Apple.png"]] ];
背景にパターン画像を使用したい場合にも、これは完璧に機能します。
UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
少し遅れましたが、おそらく解決策を探している他のすべての人にとっては。 viewDidLoad
のUITableViewController
メソッドで次のコードを使用することで、その機能を得ることができました。
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];
または背景色のみを使用して:
self.parentViewController.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
self.tableView.backgroundColor = [UIColor clearColor];
それを理解するのに時間がかかりましたが、今では魅力のように機能します。
Objective-cバージョン:
cell.backgroundColor = [UIColor clearColor];
こちらもご覧ください: 透明な背景を持つUITableViewCellの作成方法