2013-11-16 3 views
0

Я знаю, что мы можем добавлять фоновые изображения/цвета в заголовки разделов в динамическом представлении таблицы/ячейках, но может ли кто-нибудь помочь мне сделать то же самое в виде таблицы с помощью статических ячеек?
Что я хочу сделать, это использовать фоновое изображение для моего третьего раздела в TableView, которое использует статические ячейки (всего 4 его раздела)
Я хочу добавить фоновое изображение и изменить цвет текста, чтобы сказать некоторое значение RGB на 3-й секцииUITableView Фоновое изображение для статической секции/ячеек

That Description section text color and BG is what I wanna change

ответ

1

Вы можете использовать методы делегата от UITableView установить высоту и вид для заголовка раздела. Это должно делать то, что вы хотите:

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return (section == 2)? 100:30; 
} 


- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 100)]; 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 100)]; 
    label.text = @"Description"; 
    label.textColor = [UIColor whiteColor]; 
    [imageView addSubview:label]; 
    imageView.image = [UIImage imageNamed:@"House.tiff"]; 
    return (section == 2)? imageView:nil; 
} 
+0

Я думал об этом, как, используя тот же способ в динамической таблице, но вы можете сказать мне это , так как мой раздел находится на 3-й позиции, вы используете «2» в качестве номера индекса, чтобы проверить, является ли его этот раздел? Кроме того, возвращается сейф? Верните нуль для раздела 0 1 3, чтобы использовать раздел, как он разработан в раскадровке (с использованием IB) – vongolashu

+0

@ user2897064, да, индекс третьего раздела равен 2, поэтому я его тестирую таким образом. Возвращение nil для других разделов оставило этот раздел с заголовками, которые были установлены в IB - они были идентичны тому, что я получил, если я вообще не реализовал viewForHeaderInSection. – rdelmar

+0

Cheers, проверено и обработано. Конечный результат не был тем, что я имел в виду для пользовательского интерфейса, поэтому мне пришлось вместо этого вырезать разделы и увеличивать строки в 1 разделе, добавляя метки пользовательского интерфейса с изображением BG, чтобы действовать как раздел. Но да, который ответил на мой вопрос и помог мне в будущем. Спасибо – vongolashu

0

UITableViewCells имеют backgroundView свойство, которое является UIView. Вы можете изменить это, например, на UIImageView или создать более сложный фон для ваших ячеек таблицы. Не имеет значения, является ли ячейка статичной или динамической.

Цвет текста для ячейки можно просто изменить, установив UITableViewCellscell.textLabel.textColor.

То же самое относится к UITableViewHeaderFooterView, которые (как сказано в названии) используются для верхнего и нижнего колонтитулов разделов таблицы. В коде, вы можете получить доступ к заголовку для секции с помощью

- (UITableViewHeaderFooterView *)headerViewForSection:(NSInteger)section 

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

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

и построить обычай UIView, который станет вашим заголовком.

0

Вы должны присвоить метку (скажем, 15) в статической ячейке в

tableview:didSelectRowForIndexPath 

, а затем

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(cell.tag==15) 
    cell.backgroundColor = [UIColor colorWithRed:255/255.0 green:250/255.0 blue:243/255.0 alpha:1.0]; 

} 
+0

err ... пожалуйста, перечитайте то, что я спросил, это не ячейка, ее раздел, над чем мне нужно работать. Даже включил изображение, чтобы объяснить это – vongolashu

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