2012-04-08 3 views
8

Как установить изображение для UITableViewController?UITableViewController Фоновое изображение

Я использовал много вещей, но это не поможет мне установить изображение в качестве фона

UIImageView* bgView = [[[UIImageView alloc] initWithImage: 
[UIImage imageNamed:@"Default.png"]] autorelease]; 

[tableView.backgroundView addSubview:bgView]; 

И это

[[self view] setAutoresizesSubviews:NO]; 

UIView *backgroundView = [[UIView alloc] initWithFrame:self.view.frame]; 
backgroundView.backgroundColor = 
    [UIColor colorWithPatternImage: 
    [UIImage imageNamed:@"Default.png"]]; 

self.tableView.backgroundView = backgroundView; 
self.tableView.backgroundColor = [UIColor clearColor]; 

[backgroundView release]; 

И

self.navigationController.view.backgroundColor = 
    [UIColor colorWithPatternImage: 
    [UIImage imageNamed:@"myImage.png"]]; 
self.tableView.backgroundColor = [UIColor clearColor]; 

Без этого работал для меня.

ответ

24

устанавливает режим background заполнить

[youTable setBackgroundView: 
    [[UIImageView alloc] initWithImage: 
    [UIImage imageNamed:@"bg.png"]]]; 

устанавливает режим background плитке

[youTable setBackgroundColor: 
    [UIColor colorWithPatternImage: 
    [UIImage imageNamed:@"bg.png"]]]; 
+0

меня проверить это в моем проекте, и это, к сожалению, не работает – Youstanzr

+0

я сомневаюсь, что вы поместили цвет фона в ячейки, и они покрывают фон. – WhiteTiger

+0

Мои ячейки по умолчанию я не изменил цвет, я должен изменить его, чтобы очистить цвет, или по умолчанию ясно? – Youstanzr

4
UIImage *image = [UIImage imageNamed:@"image.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 

UITableView *tableView = (UITableView*)tableViewController.view; 
tableView.backgroundView = imageView; 
[imageView release]; 
0

Вы можете установить tableviews фоновый вид на экземпляр UIImageView (свойство backgroundView из UITableView).

1

Если все вышеупомянутые предложения не работают, просто сделать это таким образом (подход I всегда использование):

  1. Создать подкласс UIViewController.
  2. В представлении ViewDidLoad добавьте UIImageView и UITableView в качестве подзонов.
  3. Конфигурируйте таблицуView и реализуйте методы делегата. Установите фоновое изображение в imageView.

Я думаю, что установка backgroundView для таблицыView может вызвать графические ошибки (повторяющиеся изображения для каждой ячейки), поэтому я использую описанный здесь подход.

0

Следующий код подходит для меня. Вы можете попробовать следующий код: -

UIImageView *bgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]]; 
bgView.frame = self.view.frame; 
self.tableView.backgroundColor = [UIColor clearColor]; 
self.tableView.backgroundView = bgView; 
[bgView release]; 
0

я тоже был не в состоянии установить backgroundColor из UITableView, потому что это UITableViewController, моя проблема решается этим

[self.tableView setBackgroundView: 
    [[UIImageView alloc] initWithImage: 
    [UIImage imageNamed:@"bg.png"]]]; 

Как было предложено «WhiteTiger» ,

+0

вы разрабатываете для iPad? iPad setBackgroundColor не работает, вам нужно обязательно использовать setBackgroundView – WhiteTiger

+0

Я не использую setBackgroundColor здесь, и я работаю для iphone – SAHIL

0

Это работает для меня:

self.tableView.backgroundView = nil; 
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg2.png"]]; 

или

[self.tableView setBackgroundView:nil]; 
[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg2.png"]]]; 
3

Это работает для меня:

tableView.backgroundView = 
    [[UIImageView alloc]initWithImage: 
    [[UIImage imageNamed:@"background.png"] stretchableImageWithLeftCapWidth:0.0 
              topCapHeight:5.0]]; 
+1

Хорошо, но объясните это для лучшего понимания пользователей. – Shivaay

Смежные вопросы