#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
в качестве отправной точки. Вы добавляете пользовательские виды в itscontentView
, рисуете градиент или устанавливаете ImageView в качестве подвида itsbackgroundView
. Просто оформите его так, как вы оформили бы любой другой вид.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. И да, он прокручивается вверх / вниз/