2013-09-14 5 views
1

Я пытаюсь найти лучший путь к настройке настраиваемого макета UITableViewCell. Это макет, который я пытаюсь достичь.Настройка отдельного макета UITableViewCell

enter image description here

Красочная часть представляет собой ImageView. Кажется, что UIImageView повесил края ячейки.

Но из того, что я могу собрать, на самом деле будет целая ячейка. Я понимаю, что ячейка имеет несколько разных представлений, таких как контент, фон, но не уверен, как реализовать это.

Я пробовал в IB, но я думаю, что это тоже обычай. Как создать такую ​​ячейку с навесом как таковым и пользовательский макет для ячейки.

+1

С какими трудностями вы сталкиваетесь с IB? - Это кажется простой задачей. – AMayes

+0

Ну, в IB, если я установил тип ячейки Custom и стиль таблицы plain. Я не могу перетащить изображение больше, чем ячейка. Также я не могу сделать ширину не шириной экрана. Так отступы, как и изображение выше – StuartM

+0

Итак, поставьте серое изображение в ячейке, и изображение будет нависать над границей. – AMayes

ответ

3

Вы не можете установить subViews из кадра UITableViewCell.

Вот простой способ сделать то, что вы хотите:

1) Изменение фона вашей пользовательской ячейке [UIColor clearColor]. Вы можете сделать это либо в построителе интерфейса в методе cellForRowAtIndexPath:.

Я предполагаю, что этот серый цвет - это цвет вашего UITableView.

Вот изображение ячейки с ясным цветом фона

enter image description here

2) Внутри пользовательской ячейке, поместите белый UIView с прокладкой к краям клетки, имитируя исходный Cell, как это:

enter image description here

3) Затем, просто добавьте остальную часть вашего подпанелей, как вы хотите. Вы можете добавить выше, но не внутри белого UIView, который имитирует исходную ячейку. Он будет выглядеть следующим образом:

enter image description here

EDIT

Отвечая на ваш последний вопрос. Ну, в этом случае вам придется создать свой собственный выбор. К счастью, это очень просто.

Прежде всего, я предполагаю, что у вас есть подкласс UITableViewCell. Итак, просто создайте IBOutlet, в вашем customCell, нашему белому UIView, который представляет нашу поддельную ячейку. Я называю это IBOutletcontainerView.

Затем переопределите метод 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] нормальное состояние цвет. Очевидно, вы можете изменить это для любых других цветов, которые вам нравятся.

+0

Спасибо, но как мне изменить выбор для ячейки. Мне нужен только белый вид, чтобы изменить цвет фона, а не всю ячейку при выборе? – StuartM

+0

Конечно, это легко. Я отредактировал свой ответ, объяснив, как это сделать. –

+1

Отличный ответ !!! Thanks – StuartM

Смежные вопросы