Я знаю, что мы можем добавлять фоновые изображения / цвета в заголовки разделов в динамическом табличном представлении / ячейках, но может ли кто-нибудь помочь мне сделать то же самое в табличном представлении с использованием статических ячеек?
Я хочу использовать фоновое изображение для моего третьего раздел в TableView, который использует статические ячейки (всего 4 раздела)
Я хочу добавить фоновое изображение и изменить цвет текста, чтобы указать какое-то значение RGB для 3-го раздела
Фоновое изображение UITableView для статического раздела / ячеек
Ответы (3)
Вы можете использовать методы делегата 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;
}
UITableViewCells
имеют свойство backgroundView
, которое является UIView
. Вы можете изменить его, например, на UIImageView
или создать более сложный фон для ячеек табличного представления. Неважно, является ли ячейка статической или динамической.
Затем цвет текста для ячейки можно просто изменить, установив UITableViewCells
cell.textLabel.textColor
.
То же самое относится к UITableViewHeaderFooterView
, которые (как следует из названия) используются для верхнего и нижнего колонтитула разделов представления таблицы. В коде вы можете получить доступ к заголовку раздела, используя
- (UITableViewHeaderFooterView *)headerViewForSection:(NSInteger)section
Это избавляет вас от полного воссоздания заголовка с нуля, просто чтобы внести небольшие изменения. В качестве альтернативы переопределить
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
и создайте собственный UIView
, который станет вашим заголовком.
Вы должны назначить тег (скажем, 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];
}