web-dev-qa-db-ja.com

UITableView背景画像

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"]];

前もって感謝します!

60
user730153

次のコードを使用してください。

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView;
[tempImageView release];

おかげで、

172
Ravin

私はこのアプローチがよりきれいだと思います:

UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
17

シンプルSwiftバージョンは

let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;
10
Avijit Nagare

あなたの画像は実際にTableViewBackground.PNG(大文字に注意)? iOSデバイスでは大文字と小文字を完全に一致させる必要がありますが、シミュレーターでは大文字と小文字を完全に一致させる必要はありません。

7
Nick Forge
 UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView;
 [tempImageView release];

これは完璧に機能します。 JonaのRavinに感謝

5
Jona

インターフェイスビルダーから画像を添付できる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
            }
        }
    }

}
4
Sig
[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Apple.png"]] ];
2
anand madhav

背景にパターン画像を使用したい場合にも、これは完璧に機能します。

UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
1
matsr

少し遅れましたが、おそらく解決策を探している他のすべての人にとっては。 viewDidLoadUITableViewControllerメソッドで次のコードを使用することで、その機能を得ることができました。

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];

それを理解するのに時間がかかりましたが、今では魅力のように機能します。

0
JFS

Objective-cバージョン:

cell.backgroundColor = [UIColor clearColor];

こちらもご覧ください: 透明な背景を持つUITableViewCellの作成方法

0
Leon Wang