2011-01-28 6 views
4

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

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

enter image description here

EDIT: Apple, делает это в своих контактов приложения, и я хотел создать что-то подобное.

ответ

3

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

ли вы построили свои собственные ячейки в Interface Builder или с помощью кода, он должен быть довольно тривиальная задачей перенести эти мнения в UITableViewCell в виде UIView для использования с tableView:viewForHeaderInSection:.

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

+0

Если вы измените ее как заголовок раздела, тогда она не будет прокручиваться, как это было ранее. то есть он будет находиться в верхней части экрана, в то время как раздел прокручивается под ним, что, вероятно, то, чего вы не хотели. – noRema

3

Если я понял ваш вопрос, в 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]; 
} 

shani

+0

Да, но все, что я могу найти, это установить его для всего стола: tableView.separatorColor = [UIColor clearColor]; \t \t tableView.separatorStyle = UITableViewCellSeparatorStyleNone; –

+0

Вы правы. Я добавил функцию, которую я использовал в одном из моих приложений, попробуйте this.shani – shannoga

4
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

if(indexPath.section == 0){ 

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

    } 
} 
+1

Спасибо! Я также получил это, чтобы работать непосредственно внутри cellForRowAtIndexPath! – geekinit

+1

Блестящий. Спасибо! – Zolt

+1

Спасибо !!!! Это сработало для меня! : D – Vladimir

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