Изменение цвета заголовка раздела в UITableview - PullRequest
10 голосов
/ 06 марта 2010

У меня довольно простой простой вопрос (я надеюсь на это).Как изменить цвет заголовка раздела в UITableview с синего на черный прозрачный?Заранее спасибо.

Ответы [ 3 ]

21 голосов
/ 04 октября 2013

Это старый вопрос, но я думаю, что ответ должен быть обновлен.

Этот метод не предполагает определения ваших собственных пользовательских представлений.
В iOS 6 и выше вы можете легко изменить цвет фона и цвет текста, определив

- (void)tableView:(UITableView *)tableView 
        willDisplayHeaderView:(UIView *)view 
        forSection:(NSInteger)section
метод делегата.

Например:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    // Background color
    view.tintColor = [UIColor blackColor];

    // Text Color
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
    [header.textLabel setTextColor:[UIColor whiteColor]];

    // Another way to set the background color
    // Note: does not preserve gradient effect of original header
    // header.contentView.backgroundColor = [UIColor blackColor];
}

Взято из моего поста здесь: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/

18 голосов
/ 06 марта 2010

вам нужно реализовать этот метод в протоколе UITableViewDelegate:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

Вот ссылка на документацию

... и сделать что-то подобное(подпункт в вашем собственном цвете):

UIView *sectionView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 22)] autorelease];
[sectionView setBackgroundColor:[UIColor blackColor]];
return sectionView;

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

0 голосов
/ 23 июля 2013
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
   {
     UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,tableView.bounds.size.width, 30)];
     if (section == 0)
     [headerView setBackgroundColor:[UIColor redColor]];
     else 
     [headerView setBackgroundColor:[UIColor clearColor]];
     return headerView;
   }
...