UITableViewCell фоновое изображение и проблема выбора - PullRequest
1 голос
/ 25 августа 2010

Это мое первое приложение для iphone, и у меня проблемы со стилем моего tableView.

У меня есть два изображения (png), одно для стандартного состояния ячейки и одно для выбранного состояния.

В своей подклассной камере я попробовал следующее:

1) настройка фона backgroundView и выделенного фона BackView

UIImage *ib = [UIImage imageNamed:@"tab.png"];
UIImageView *back = [[UIImageView alloc] initWithImage:ib];
self.backgroundView = back;
[back release];

UIImage *is = [UIImage imageNamed:@"selected_tab.png"];
UIImageView *selected = [[UIImageView alloc] initWithImage:is]; 
self.selectedBackgroundView = selected;
[selected release];

Стандартная ячейка в порядке, но при выборе отображаются два изображения.

2) просто игра с фоновым видом на выделение:

// storing the 2 uiviews in class attributes
UIImage *ib = [UIImage imageNamed:@"tab.png"];
UIImageView *back = [[UIImageView alloc] initWithImage:ib];
self.storedStandard = back;
[back release];
UIImage *is = [UIImage imageNamed:@"selected_tab.png"];
UIImageView *selected = [[UIImageView alloc] initWithImage:is]; 
self.storedSelected = selected;
[selected release];

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    if (selected) {
        self.backgroundView = self.storedSelected;
    }
    else {
        self.backgroundView = self.storedStandard;
    }

}

Это почти работает, но изображения не соответствуют ячейке, я не знаю, растянуть их до размера ячейки.

Для меня первым решением должно было стать решение, основанное на именах свойств, а второе решение выглядит как хак (например, 90% уроков, которые я видел между прочим), поэтому я немного разочарован.

Подводя итог: почему первый не работает, и как я могу заставить изображения занимать все пространство ячейки?

Большое спасибо:)

1 Ответ

0 голосов
/ 25 августа 2010

если у вас есть UITableViewDelegate, вы сможете просто изменить изображение backgroundView в willSelectRowAtIndexPath: метод, а затем изменить его обратно в didSelectRowAtIndexPath: метод.Это, однако, немного хакерство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...