Как я могу воссоздать этот вид UITableView?

#iphone #objective-c #cocoa-touch

#iPhone #objective-c #cocoa-touch

Вопрос:

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

Я заметил, что это приложение запускается без ячеек и является пустым (как будто вы не видите строк), но в моем стандартном представлении всегда есть строки, похожие на стандартное табличное представление.

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

У кого-нибудь есть какие-нибудь идеи?

введите описание изображения здесь

Ответ №1:

Строки между ячейками контролируются separatorStyle свойством вашего TableView. Чтобы удалить строки, просто установите:

 tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  

Другие ваши варианты — UITableViewCellSeparatorStyleSingleLine и UITableViewCellSeparatorStyleSingleLineEtched .

Ответ №2:

Вы можете скрыть разделительные линии, установив их цвет в тот же цвет, что и ваш фон, например

 tableView.separatorColor = [myApp theColorOfMyBackground]; // A UIColor object
  

Имеет смысл?

Ячейки на вашем изображении, скорее всего, являются пользовательскими ячейками, но вы на самом деле не спрашивали об этом. 🙂

РЕДАКТИРОВАТЬ: Как отмечено в другом ответе, seperatorStyle может использоваться для простого «отключения» строк. Это лучший способ сделать это.

Комментарии:

1. Хорошо, спасибо. Если вы не возражаете, не могли бы вы подробнее рассказать о том, как воспроизвести пользовательский стиль ячейки?

2. Настройка separatorColor может сработать, если (а) фон за вашим TableView имеет один неизменяемый цвет и (б) вы не возражаете против разрыва замаскированной линии. separatorStyle Свойство может полностью устранить их (я добавил ответ на этот счет).

3. Подкласс UITableViewCell в качестве отправной точки. Вы добавляете пользовательские виды в its contentView , рисуете градиент или устанавливаете ImageView в качестве подвида its backgroundView . Просто оформите его так, как вы оформили бы любой другой вид.

4. Это длинная тема для ответа здесь. 🙂 По сути, вы создаете подкласс UITableViewCell и соответствующий файл nib с нужным вам макетом, вложенными представлениями, выходами и т.д. В вашей реализации cellForRowAtIndexPath: вместо создания универсального UITableViewCell вы создаете экземпляр вашего пользовательского объекта table cell. (Существует множество способов сделать это, а также загрузить ваш объект nib. Посмотрите на метод loadNibNamed: в NSBundle.) Вы также можете поискать больше здесь, на SO.

Ответ №3:

Это хороший вопрос. 1 Что это за приложение? Действительно ли вид, который вы показываете выше, «прокручивается», хотя отображаются только 2 строки? Мне интересно, действительно ли это табличное представление. Это может быть серия UIViews, добавленных к UIScrollView с темным фоном.

Предполагая, что программист знает, какой высоты «строки», тогда они могут добавить их с интервалом в пиксели над угольным фоном. С помощью UIScrollView программист может определить contentSize .

Если бы было добавлено больше видов, выходящих за пределы экрана, и contentSize был бы соответствующим образом определен, USScrollView в этот момент автоматически разрешилась бы прокрутка.

Выбор «строки» может быть легко обработан элементами управления UIGesture в каждом UIView.

* РЕДАКТИРОВАТЬ

После просмотра приложения, отправленного JuneCload, оно определенно использует UITableView с пользовательскими представлениями ячеек. Как ответили Марк и Мэтт.

Комментарии:

1. Это называется «Доставка» с помощью JuneCload. И да, он прокручивается вверх / вниз/