2012-05-20 4 views
0

Я попытался следующий код, но клетка не меняется вообще:Как установить фоновое изображение в статическом UITableViewCell?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    //Set background image of cells 
    UITableViewCell *cell; 

    cell = [CalculatorTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; 
    cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Spots.png"]]; 

} 

ответ

0

Две вещи. Прежде всего, ячейки должны быть созданы в методе cellForRowAtIndexPath. Во-вторых, вы должны сделать фоновое представление, а затем добавить его в представление содержимого ячейки.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    cell = [CalculatorTableView alloc] initWithStyle:UITableViewStyleDefault reuseIdentifier:nil]; //This wil obviously depend on your subclass 
    UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Spots.png"]]; 
    [cell.contentView addSubview:backgroundView]; 
} 
0
cell.backgroundView = [ [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"Spots.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ]autorelease]; 

Это может быть лучшим способом сделать это.

ИЛИ, вы можете попробовать это:

Вы можете попробовать этот код, который поможет вам.

Поместите этот код в cellForRowAtIndexPath метод

UIImageView *av = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 277, 58)]; 
    av.backgroundColor = [UIColor clearColor]; 
    av.opaque = NO; 
    av.image = [UIImage imageNamed:@"Spots.png"]; 
    cell.backgroundView = av; 

Вы кладете ячейку инициализации кода в viewDidLoad? Это очень неправильно, это должно быть в:

cellForRowAtIndexPath: 

Вы можете проверить эту ссылку:

TableView programming

+0

Я использую iOS5, и мои ячейки создаются статически непосредственно из раскадровки, поэтому я не использую метод cellForRowAtIndexPath и, к сожалению, вышеприведенные решения не применимо ... – Pupillam

+0

Я нашел его для статических ячеек, просто нужно установить фон в «Очистить цвет» в инспекторе атрибутов. Cheers – Pupillam

0

Клетки, созданные с использованием статических представлений таблиц не существует, пока после viewWillAppear: было называется. Переместите свой код выше в этот метод (и убедитесь, что вы сначала вызвали реализацию super.

+0

Привет, jrurton, вы правы, я не пробовал, но я буду тестировать. Другой вариант, который я нашел, - это управлять перетаскиванием ячеек в файл реализации и управлять поведением статической ячейки, как я хочу. Большое спасибо за помощь. – Pupillam

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