Вы не можете установить subViews из кадра UITableViewCell
.
Вот простой способ сделать то, что вы хотите:
1) Изменение фона вашей пользовательской ячейке [UIColor clearColor]
. Вы можете сделать это либо в построителе интерфейса в методе cellForRowAtIndexPath:
.
Я предполагаю, что этот серый цвет - это цвет вашего UITableView
.
Вот изображение ячейки с ясным цветом фона
2) Внутри пользовательской ячейке, поместите белый UIView
с прокладкой к краям клетки, имитируя исходный Cell, как это:
3) Затем, просто добавьте остальную часть вашего подпанелей, как вы хотите. Вы можете добавить выше, но не внутри белого UIView, который имитирует исходную ячейку. Он будет выглядеть следующим образом:
EDIT
Отвечая на ваш последний вопрос. Ну, в этом случае вам придется создать свой собственный выбор. К счастью, это очень просто.
Прежде всего, я предполагаю, что у вас есть подкласс UITableViewCell
. Итак, просто создайте IBOutlet
, в вашем customCell, нашему белому UIView
, который представляет нашу поддельную ячейку. Я называю это IBOutlet
containerView
.
Затем переопределите метод setSelected:animated:
внутри вашей пользовательской ячейки и выполните все необходимые действия по выбору.Простой пример будет выглядеть так:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.containerView.backgroundColor = selected ? [UIColor blueColor] : [UIColor whiteColor];
}
В моем примере [UIColor blueColor]
цвет при выборе ячейки, и [UIColor whiteColor]
нормальное состояние цвет. Очевидно, вы можете изменить это для любых других цветов, которые вам нравятся.
С какими трудностями вы сталкиваетесь с IB? - Это кажется простой задачей. – AMayes
Ну, в IB, если я установил тип ячейки Custom и стиль таблицы plain. Я не могу перетащить изображение больше, чем ячейка. Также я не могу сделать ширину не шириной экрана. Так отступы, как и изображение выше – StuartM
Итак, поставьте серое изображение в ячейке, и изображение будет нависать над границей. – AMayes