Настройте цвет границы раздела UITableView для каждого раздела - PullRequest
4 голосов
/ 28 января 2011

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

Для моей первой ячейки я хотел бы установить стиль границы / разделителя [UIColor clearColor].

enter image description here

РЕДАКТИРОВАТЬ: Apple делает это в своем приложении контактов, и я хотел создать нечто подобное.

Ответы [ 3 ]

4 голосов
/ 21 февраля 2012
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

if(indexPath.section == 0){

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];

  }
}
3 голосов
/ 29 января 2011

Я полагаю, что Apple использует для своего контактного заголовка tableView:viewForHeaderInSection: для раздела 0 вместо ячейки в первом разделе. Вы все еще можете указать прозрачный фон, и полоска будет отображаться за ним. Границы там не будет, поскольку заголовки разделов сгруппированных табличных представлений не имеют границ.

Независимо от того, построили ли вы пользовательскую ячейку в Интерфейсном Разработчике или использовали код, перенос этих представлений из UITableViewCell в UIView для использования с tableView:viewForHeaderInSection:.

должен быть довольно тривиальной

Я не знаю, сможете ли вы сохранить заголовок Подробности , скажем, для раздела 1, если только вы не сделаете ярлык, содержащий это слово, и не добавите его в раздел 0 Вид заголовка вручную.

3 голосов
/ 28 января 2011

Если я понял ваш вопрос, в cellForRawIndexPath вы должны добавить-

if(indexPath.section==0){

//set the style you wish to add only to the first section

}

удачи

EDIT

Я использую эту функцию для этого -

+(void)setTransparentBgToCell:(UITableViewCell*)cell{
        UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];
        backgroundView.backgroundColor = [UIColor clearColor];
        cell.backgroundView = backgroundView;
        [backgroundView release];
        cell.selectionStyle=UITableViewCellSelectionStyleNone;
        cell.textLabel.backgroundColor = [UIColor clearColor];
        cell.detailTextLabel.backgroundColor = [UIColor clearColor];
}

Шани

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