gpt4 book ai didi

ios - 在运行时自定义 UITableView Header Section

转载 作者:行者123 更新时间:2023-11-29 12:21:21 29 4
gpt4 key购买 nike

我已经使用下面的代码设置了标题背景,但是当我单击作为 subview 添加到标题上的按钮时,我想在运行时再次更改标题的颜色。请提供代码,提前致谢:)

-(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;
}

最佳答案

您可以通过以下方式在运行时修改它:

首先:

你可以像这样声明一个全局变量/属性:

@property (nonatomic) UIView *tableHeader;

并在-(void)viewDidLoad下设置

喜欢

self.tableView.tableHeaderView = self.tableHeader;

或使用委托(delegate):

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
return self.tableHeader;
}

并在任何你喜欢的地方修改它,但不要忘记重新加载你的表部分标题,可能 [tableView reloadSections:NSIndexSet withRowAnimation:UITableViewRowAnimation]; 会做。

但是

在您的情况下,您可以检索/获取委托(delegate)内部制作的 tableHeader:

-(UIView *)tableView:tableView viewForHeaderInSection:section

通过

UIView *tableHeaderView = [self tableView:yourTableView viewForHeaderInSection:yourSection];

然后修改tableHeaderView..

或者通过以下方式简单地重新分配 tableHeader:

yourTableView.tableHeaderView = tableHeaderView;

你单独使用header,因为我可以看到它是一个全局变量..直接更改/更新它:

header.backgroundColor = [UIColor yourNewColor];

希望我帮助了你..快乐的编码,干杯..

关于ios - 在运行时自定义 UITableView Header Section,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30545291/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com