Подтвердить что ты не робот

Изображение UITableView

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

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

Заранее благодарю вас!

4b9b3361

Ответ 1

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

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

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

Спасибо,

Ответ 2

Я думаю, что этот подход чище:

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

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

Это работает отлично. Благодаря Равину от Jona

Ответ 6

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

}

Ответ 7

[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ];

Ответ 8

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

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

Ответ 9

Немного поздно, но, возможно, для всех остальных, ищущих решение. Я мог бы получить эту работу, используя следующий код в 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];

Мне потребовалось некоторое время, чтобы понять это, но теперь это работает как шарм.

Ответ 11

UIImageView *imageviewTemp = [[UIImageView alloc] init];
[(UIImageView *)imageviewTemp sd_setImageWithURL:[NSURL URLWithString:self.stringOfPassedImage]];
[imageviewTemp setFrame:self.tableView.frame];
self.tableView.backgroundView = imageviewTemp;