Как выделить ярлык центра таблицы?

Центральная ячейка таблицы всегда выделяется как сборщик. Если я выберу центральную ячейку, это значение будет возвращено. Если я прокручиваю таблицу во временной точке, она должна подсвечивать значения, которые изменяются (например, действие выбора). Как это сделать? Любой пример кода для этой задачи. Заранее спасибо.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        UILabel     *modelLabel;
        UIButton    *modelButton;
        modelButton                 = [UIButton buttonWithType:UIButtonTypeCustom];
        modelButton.frame           = CGRectMake(0.0, 0.0, LABEL_WIDTH, LABEL_HEIGHT);
        modelButton.tag             = indexPath.row+100;
        [modelButton addTarget:nil action:@selector(modelButtonAction:) forControlEvents:UIControlEventTouchUpInside];
        [[cell contentView] addSubview:modelButton];
        modelLabel                  = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, LABEL_WIDTH, LABEL_HEIGHT)];
        modelLabel.text             = [NSString stringWithFormat:@"%@", [[modelArray objectAtIndex:indexPath.row] valueForKey:@"Model"]];
        modelLabel.tag              = indexPath.row+1000;
        modelLabel.backgroundColor  = [UIColor clearColor];
        modelLabel.textColor        = [UIColor grayColor];
        modelLabel.alpha            = 0.5;
        modelLabel.textAlignment    = UITextAlignmentCenter;
        modelLabel.font             = EUROSLITE_FONT(14);
        [[cell contentView] addSubview:modelLabel];
    }

    return cell;
}

Количество строк составляет 700, 800, вот так.

0
nl ja de
См. Мой отредактированный вопрос.
добавлено автор Mani, источник
Не могу понять, что именно вы пытаетесь достичь ...
добавлено автор Kanan Vora, источник
вставьте код ...
добавлено автор Aman Aggarwal, источник
поместите взгляд с прозрачным цветом в центре экрана.
добавлено автор Aman Aggarwal, источник

1 ответы

A UITableView расширяет UIScrollView . Таким образом, вы можете реализовать следующий делегат:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

Там вы можете проверить scrollView.contentOffset и установить выделенную ячейку. Обратите внимание, что это не центральная ячейка. Вам нужно добавить (int) (scrollView.frame.size.height/2) - (int) (cell.frame.size.height/2) в scrollView.contentOffset.y .

Пример (пожалуйста, выделите все остальные ячейки):

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    [[tableView visibleCells] makeObjectsPerformSelector:@selector(setHighlighted:) withObject:[NSNumber numberWithBool:NO]];

    CGPoint center = CGPointMake(0, scrollView.contentOffset.y+(int)(scrollView.frame.size.height/2));
    NSIndexPath *cellIndexPath = [tableView indexPathForRowAtPoint:center];
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:cellIndexPath];
    [cell setHighlighted:YES];
}
1
добавлено
Спасибо, Маттиас Нагель.
добавлено автор Mani, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.