У меня возникли трудности с настройкой selectedBackgroundView для UITableViewCell в методе cellForRowAtIndexPath. Я попробовал несколько вариантов кода ...UITableViewCell setSelectedBackground не правильно отображает фрейм
CGRect customFrame = CGRectMake(cell.frame.origin.x + 1.0f, cell.frame.origin.y,
cell.frame.size.width - 22.0f, cell.frame.size.height);
UIView *cellBackground = [[[UIView alloc] initWithFrame:customFrame] autorelease];
cellBackground.backgroundColor = [UIColor colorWith8BitRed:0 green:0 blue:0 alpha:0.1f];
cell.selectedBackgroundView = cellBackground;
С помощью этого фрагмента кода, ячейка имеет правильное изменение цвета, но размеры рамы не то, что я указал (они, кажется, размеры cell.frame даже хотя я указал представление для инициализации с помощью моего customFrame)
Я пробовал еще один подход: создание родительского представления с дочерним подвью. Рамка родительского представления - это те же размеры, что и ячейка, а кадр дочернего поднабора содержит мои собственные размеры рамки. Когда я устанавливаю родительское представление как backgroundView, меняются размеры рамки рамки. Однако, когда я пытаюсь установить родительское представление как selectedBackgroundView, я не вижу представления при выборе ячейки.
CGRect customFrame = CGRectMake(cell.frame.origin.x + 1.0f, cell.frame.origin.y,
cell.frame.size.width - 22.0f, cell.frame.size.height);
UIView *parentView = [[[UIView alloc] initWithFrame:cell.frame] autorelease];
UIView *childView = [[[UIView alloc] initWithFrame: customFrame] autorelease];
[parentView addSubview:childView];
childView.backgroundColor = [UIColor colorWith8BitRed:0 green:0 blue:0 alpha:0.1f];
cell.selectedBackgroundView = parentView;
Кажется довольно сложным настроить размеры рамки selectedBackgroundView. Любая помощь будет оценена по достоинству. Благодаря!
действительно хорошая работа! –
Спасибо, много. Я часами царапаю голову, пытаясь это исправить. – Henning