ios – 如何更改UITableView节颜色和文本颜色
我有UITableView从plist填充日期和Even Section的标题已经从UITableView中的plist填充.它给我默认的蓝色部分颜色和白色文本颜色.像这样……
-(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 *)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,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; } 编辑:根据评论,这是您的代码和定义标题高度的结果: 编辑2:如果你想要带有黑色背景的红色文本,请更改tableView的代码:viewForHeaderInSection:像这样: -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIView *tempView=[[UIView alloc]initWithFrame:CGRectMake(0,244)]; tempView.backgroundColor=[UIColor blackColor]; UILabel *tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(15,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,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; } 这应该返回一个具有正确标签和正确外观的表视图节标题. 编辑4:只是关于所有这些如何工作的说明:如果你使用tableView:viewForHeaderInSection:你在tableView中放置的代码:titleForHeaderInSection:将被忽略.因此,您需要对section header进行整个设置,包括tableView:viewForHeaderInSection方法中的正确文本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |