我已经使用下面的代码设置了标题,但是当我点击标题上添加为子视图的按钮时,我想在运行时再次更改标题的颜色。 请提供代码,提前谢谢:)
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
header = [[UIView alloc]initWithFrame:CGRectMake(0, 0, _tableView.bounds.size.width, 50)];
header.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"homeCellHeaderBackGround.png"]];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 100, 30)];
label.text = _array[section][@"name"];
label.textColor = [UIColor whiteColor];
[header addSubview:label];
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(230, 10, 70, 35)];
[button addTarget:self action:@selector(onExpandButton:) forControlEvents:UIControlEventTouchUpInside];
//[button setTitle:@"Expand" forState:UIControlStateNormal];
[button setTag:section];
[header addSubview:button];
return header;
}
答案 0 :(得分:1)
您可以在运行时修改它:
<强>第一强>
你可以声明一个全局变量/如:
@property (nonatomic) UIView *tableHeader;
并将其设置在-(void)viewDidLoad
喜欢
self.tableView.tableHeaderView = self.tableHeader;
或使用delagate:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
return self.tableHeader;
}
并随意修改,但不要忘记重新加载表格标题,可能会[tableView reloadSections:NSIndexSet withRowAnimation:UITableViewRowAnimation];
。
<强>但是强>
在您的情况下,您可以检索/获取在委托中创建的tableHeader:
-(UIView *)tableView:tableView viewForHeaderInSection:section
通过
UIView *tableHeaderView = [self tableView:yourTableView viewForHeaderInSection:yourSection];
然后修改tableHeaderView
..
或简单地通过以下方式重新分配tableHeader:
yourTableView.tableHeaderView = tableHeaderView;
你单独使用header
,因为我可以看到它是一个全局变量..
直接更改/更新,如:
header.backgroundColor = [UIColor yourNewColor];
希望我帮助过你......快乐的编码,干杯......
答案 1 :(得分:0)
-(IBAction)onExpandButton:(UIButton *)sender { UIView *tmpView = [self.YourTableViewName headerViewForSection:sender.tag]; tmpView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"homeCellHeaderBackGround.png"]]; }
- 您从表格视图标题中获取了section方法的视图。在视图上设置图像视图后。
答案 2 :(得分:0)
您可以通过以下代码更改节标题的背景颜色:
- (IBAction)onExpandButton:(id)sender {
UIView *header = ((UIButton *)sender).superView;
header.backgroundColor = <Whatever UIColor you like>;
...
}