Лучший (любой) способ наложения заголовка раздела табличного представления на вершину сгруппированного табличного представления - PullRequest
0 голосов
/ 19 июня 2009

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

Любой способ указать, когда indexPath.row = 0, что UITableViewCell должен использовать стиль строки "middle" или что-то в этом роде?

Если нет, то какие у меня варианты? Я думаю, я мог бы поцарапать заголовок раздела и использовать строку 0 в качестве квази-заголовка, а затем отправить данные массива +1, чтобы заполнить остальную часть таблицы? Я бы предпочел не катать свои с нуля ... если возможно.

Таблица образцов http://img35.imageshack.us/img35/8181/sampletable.png

Edit:

«Дерьмо» выглядит так:

альтернативный текст http://img25.imageshack.us/img25/9748/crapsection.png

Ответы [ 3 ]

1 голос
/ 20 июня 2009

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

1 голос
/ 19 июня 2009
  1. Не делай то, что делаешь, это против HIG

  2. Хорошо, хорошо, я скажу вам, как это сделать:

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

Когда табличное представление запрашивает ячейку, задайте для ее backgroundView и selectedBackgroundView что-то, что выглядит подходящим для ее места в табличном представлении.

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

Так что в вашем случае вы бы сделали

if (indexPath.row > sectionRowCount - 1) {
    //Not the last row
    //Put in the middle background
} else {
    //Put in the end background
}

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

В вашем случае вам, вероятно, не придется беспокоиться о том, когда есть только один ряд, так что это еще проще.

0 голосов
/ 06 августа 2012

Вы также не можете использовать заголовок раздела, но вместо этого использовать пользовательскую ячейку в качестве первой ячейки раздела. Поэтому когда ([indexPath row] == 0), верните пользовательскую ячейку, которая является «заголовком», а затем верните «обычные» ячейки (смещенные на одну строку) для остальных. Вы также должны будете внести коррективы в функцию numberOfRowsInSection, чтобы получить + 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...