Как показать пользовательское изображение в дополнительном представлении UITableView в Objective-C? - PullRequest
0 голосов
/ 12 июня 2018

Я делаю проект в Objective-C.Моя проблема сейчас,

Предположим, у меня есть UITableView, который я хочу, когда я выбираю строку, он может показывать изображение с текущей позицией пользователя и оставшиеся строки не нужно показывать одно и то же изображение.

Iпробовал с большим количеством примеров, но бесполезно.

кто-нибудь может мне помочь?пожалуйста ...

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Прежде всего поместите представление изображения в вашу ячейку и укажите его как imgView.hidden = YES.Когда вы выбираете ячейку, представление изображения этой ячейки будет скрыто.

// Пример кода

IndexSelected = 99999 // В viewdidload

- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {

IndexSelected = indexpath.row;

[tbl reloaddata];

}

- (ненулевой UITableViewCell *) tableView: (ненулевой UITableView *) tableView cellForRowAtIndexPath: (ненулевой NSIndexPath *) indexPath {

if (IndexSelected == indexpath.row) {

cell.imgView.hidden= НЕТ;

}

0 голосов
/ 12 июня 2018

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

UITableViewCell * cell = [self.tableView cellForRowAtIndexPath:indexPath];
BOOL bSelected = YES; 
[self createAccessoryView:cell :bSelected];

Обратите внимание, однако, что bSelected bool в идеале должно исходить из вашего модельного массива, массива, которыйсодержит ваши объекты просмотра таблицы.При выборе строки, он просто отрицает свое значение, например:

bSelected = !bSelected;

Ваш createAccessoryView будет выглядеть примерно так:

- (void) createAccessoryView : (UITableViewCell *) cell :(BOOL)bSelected
{
    UIImage * image = bSelected ? [UIImage imageNamed:@"check"] : [UIImage imageNamed:@"uncheck"];
    cell.accessoryType = UITableViewCellAccessoryNone;

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    CGRect frame = CGRectMake(0.0, 0.0, 40, 40);
    button.frame = frame;
    [button setBackgroundImage:image forState:UIControlStateNormal];

//Uncomment below line if necessary
//[button addTarget:self action:@selector(accessoryButtonTapped:event:)  forControlEvents:UIControlEventTouchUpInside];
    button.backgroundColor = [UIColor clearColor];
    cell.accessoryView = button;
}

Конечно, подставьте свои собственные имена изображенийвыше.

Если вам нужна дополнительная функциональность в табличном представлении с некоторыми готовыми настройками (поиск, выбор, удаление), взгляните на этот ViewController , разработанный мной на github.

...