gpt4 book ai didi

ios - 如何更改 UITableView 部分颜色和文本颜色

转载 作者:可可西里 更新时间:2023-11-01 05:06:18 30 4
gpt4 key购买 nike

我有 UITableView 从 plist 中填充日期,甚至 Section 的标题是从 UITableView 中的 plist 中填充的。它给我默认的 blue 部分颜色和 White 文本颜色。像这样...

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {


NSString *key = nil;
if ([tableView isEqual:self.searchDisplayController.searchResultsTableView])
{
key = [self.searchResults objectAtIndex:section];
}
else{
key = [self.mySections objectAtIndex:section];
}

// NSString *key = [self.mySections objectAtIndex:section];
return [NSString stringWithFormat:@"%@", key];

}

.现在我需要更改此默认文本颜色和部分的颜色,为此我正在执行如下所示的代码。但它为我提供了自己的 UIView

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *tempView=[[UIView alloc]initWithFrame:CGRectMake(0,200,300,244)];
tempView.backgroundColor=[UIColor clearColor];

UILabel *tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(15,0,300,44)];
tempLabel.backgroundColor=[UIColor clearColor];
tempLabel.shadowColor = [UIColor blackColor];
tempLabel.shadowOffset = CGSizeMake(0,2);
tempLabel.textColor = [UIColor redColor]; //here you can change the text color of header.
tempLabel.font = [UIFont fontWithName:@"Helvetica" size:fontSizeForHeaders];
tempLabel.font = [UIFont boldSystemFontOfSize:fontSizeForHeaders];
tempLabel.text=@"Header Text";

[tempView addSubview:tempLabel];

[tempLabel release];
return tempView;
}

最佳答案

要最好地自定义表格部分标题的外观,您确实需要实现两种方法:第一种方法您已经有了,它应该可以工作,尽管结果不是很有用。

第二个方法是 tableView:heightForHeaderInSection:,它告诉 UITableView 新部分的高度是多少,它可以像这样简单:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 50.0f;
}

编辑:根据评论,这是您的代码和定义页眉高度的结果:

final header label look

编辑 2:如果您想要黑色背景的红色文本,请像这样更改 tableView:viewForHeaderInSection: 的代码:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *tempView=[[UIView alloc]initWithFrame:CGRectMake(0,200,300,244)];
tempView.backgroundColor=[UIColor blackColor];

UILabel *tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(15,0,300,44)];
tempLabel.backgroundColor=[UIColor clearColor];
tempLabel.textColor = [UIColor redColor]; //here you can change the text color of header.
tempLabel.font = [UIFont fontWithName:@"Helvetica" size:fontSizeForHeaders];
tempLabel.font = [UIFont boldSystemFontOfSize:fontSizeForHeaders];
tempLabel.text=@"Header Text";

[tempView addSubview:tempLabel];

[tempLabel release];
return tempView;
}

编辑 3:好的,所以我将尝试将第一种方法的代码与第二种方法合并。它看起来像这样:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *tempView=[[UIView alloc]initWithFrame:CGRectMake(0,200,300,244)];
tempView.backgroundColor=[UIColor blackColor];

UILabel *tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(15,0,300,44)];
tempLabel.backgroundColor=[UIColor clearColor];
tempLabel.textColor = [UIColor redColor]; //here you can change the text color of header.
tempLabel.font = [UIFont fontWithName:@"Helvetica" size:fontSizeForHeaders];
tempLabel.font = [UIFont boldSystemFontOfSize:fontSizeForHeaders];

NSString *key = nil;
if ([tableView isEqual:self.searchDisplayController.searchResultsTableView])
{
key = [self.searchResults objectAtIndex:section];
}
else{
key = [self.mySections objectAtIndex:section];
}

tempLabel.text=[NSString stringWithFormat:@"%@", key];
[tempView addSubview:tempLabel];

[tempLabel release];
return tempView;
}

这应该返回一个带有正确标签和正确外观的 TableView 部分标题。

编辑 4:请注意所有这些是如何工作的:如果您使用 tableView:viewForHeaderInSection:,无论您在 tableView:titleForHeaderInSection: 中放入什么代码,都会被忽略。因此,您需要完成节标题的整个设置,包括 tableView:viewForHeaderInSection 方法中的正确文本。

关于ios - 如何更改 UITableView 部分颜色和文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001194/

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