UITableView фоновое изображение - PullRequest
59 голосов
/ 29 апреля 2011

Я пытаюсь установить изображение png в качестве фона для таблицы. Со следующим кодом все в порядке! Но только на iPhone Simulator. Если я пытаюсь запустить приложение на устройстве iPhone, фон таблицы остается белым (или прозрачным). Вы считаете, что я пытался установить цвет фона? Я пробовал много способов до следующего, но у всех одна и та же проблема.

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];

Заранее спасибо!

Ответы [ 11 ]

171 голосов
/ 29 апреля 2011

Пожалуйста, используйте следующий код.

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

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

Спасибо,

17 голосов
/ 03 января 2012

мне кажется такой подход чище:

UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
10 голосов
/ 28 февраля 2016

Простая быстрая версия будет

let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;
7 голосов
/ 29 апреля 2011

Ваше изображение на самом деле называется TableViewBackground.PNG (обратите внимание на заглавные буквы)?Вам нужно, чтобы регистр совпадал точно на устройстве iOS, тогда как он не обязательно должен совпадать в симуляторе.

5 голосов
/ 26 марта 2013
 UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame]; 

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

Это прекрасно работает.Спасибо Равину от Jona

4 голосов
/ 26 августа 2015

Подкласс 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
            }
        }
    }

}
2 голосов
/ 12 августа 2014
[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ];
1 голос
/ 23 июня 2013

Это прекрасно работает, даже если вы хотите использовать изображение шаблона для фона.

UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
0 голосов
/ 21 декабря 2016

Objective-c версия:

cell.backgroundColor = [UIColor clearColor];

Также посмотрите это: Как создать UITableViewCell с прозрачным фоном

0 голосов
/ 04 августа 2016
UIImageView *imageviewTemp = [[UIImageView alloc] init];
[(UIImageView *)imageviewTemp sd_setImageWithURL:[NSURL URLWithString:self.stringOfPassedImage]];
[imageviewTemp setFrame:self.tableView.frame];
self.tableView.backgroundView = imageviewTemp;
...