UITableView не показывает фоновое изображение - PullRequest
1 голос
/ 22 июня 2011

У меня есть uitableview с 2 ячейками (настраиваемые ячейки таблицы) и кнопкой для входа. Я сделал их программно. Теперь я хочу поместить фоновое изображение за 2 пользовательскими ячейками и кнопкой. Я вошел в IB и поместил изображение в верхнюю часть таблицы, а затем поместил на него картинку, которую я хочу использовать в качестве фона. Затем я вошел в viewDidLoad и вставил этот бит кода tblSimpleTable.backgroundColor = [UIColor clearColor];, чтобы очистить цвет фона таблиц.

Теперь это выглядит так:

enter image description here

Но фон не появляется. Кто-нибудь знает, как это исправить?

Спасибо.

viewDidLoad

  - (void)viewDidLoad {
 [super viewDidLoad];

self.dataSourceArray = [NSArray arrayWithObjects:
                        [NSDictionary dictionaryWithObjectsAndKeys:
                         @"UITextField", kSectionTitleKey,
                         @"TextFieldController.m: textFieldNormal", kSourceKey,
                         self.textFieldNormal, kViewKey,
                         nil],
                        nil];

UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
loginButton.frame = CGRectMake(60,140,200,38); // position in the cell and set the size of the button
[loginButton setTitle:@"Login" forState:UIControlStateNormal];
// add targets and actions
[loginButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
// add to a view
[self.view addSubview:loginButton];

tblSimpleTable.backgroundColor = [UIColor clearColor];
//tblSimpleTable.backgroundView = nil; 

//UIImageView *imageView = [[UIImageView alloc] initWithImage:@"Background-Red.png"];
//imageView.frame = tblSimpleTable.frame;
//tblSimpleTable.backgroundView = imageView;

self.title = NSLocalizedString(@"TextFieldTitle", @"");

// we aren't editing any fields yet, it will be in edit when the user touches an edit field
self.editing = NO;
 }

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Почему вы не используете backgroundView свойство объекта UITableView?

UIImageView * imageView = [[UIImageView alloc] initWithImage:yourBackgroundImage];
imageView.frame = tblSimpleTable.frame;
tblSimpleTable.backgroundView = imageView;

Конечно, backgroundView изменится, если вы не установите кадр, поэтому пропуск второй строки также не будет проблемой.

0 голосов
/ 22 июня 2011

То, что у вас есть, должно сработать. Еще попробуйте это:
Добавить

tblSimpleTable.backgroundView = nil;  

in viewDidLoad

...