我使用以下方法在UITableView的部分标题中设置标题,工作正常。
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSString *sectionHeader = nil;
if (section == 0)
{
sectionHeader = nil;
}
if(section == 1)
{
sectionHeader = @"Categories";
}
if (section == 2) {
sectionHeader = @"General";
}
return sectionHeader;
}
使用以下方法,我在截面中设置标题的高度,工作正常。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 20;
}
但是,只要我使用以下方法在节标题中设置背景图像,节标题中的标题就会消失并变为空白,但当然还有图像位置。
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 20)];
UIImageView *headerImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"section_background.png"]];
headerImage.frame = CGRectMake(0, 0, tableView.bounds.size.width, 20);
[headerView addSubview:headerImage];
return headerView;
}
如何在节标题中设置标题而不删除其中的背景图像。有人可以指出它。提前谢谢。
答案 0 :(得分:3)
之所以发生这种情况,是因为您headerView
重叠标题标题。所以最好的方法是......还要UILabel
添加到headerView
。并在标题中将标签文本作为标题os标题。
我尝试使用以下代码..以您的方式使用它,在您的情况下可能会有所帮助。
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 20)];
UIImageView *headerImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.png"]]; //set your image/
UILabel *headerLbl = [[UILabel alloc] initWithFrame:CGRectMake(15, 0, 205, 15)];//set as you need
headerLbl.backgroundColor = [UIColor clearColor];
headerLbl.text = [self.listOfHeader objectAtIndex:section];
[headerImage addSubview:headerLbl];
headerImage.frame = CGRectMake(0, 0, tableView.bounds.size.width, 20);
[headerView addSubview:headerImage];
return headerView;
}
答案 1 :(得分:2)
通过直接从图像H,W,
设置CGRect的尺寸的另一种方法 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIImage *myImage = [UIImage imageNamed:@"header.png"];
UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, myImage.size.width, myImage.size.height)];
UIImageView *imageView = [[UIImageView alloc] initWithImage:myImage];
imageView.frame = CGRectMake(0,0,myImage.size.width, myImage.size.height);
headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 5, 300, 25)];
headerLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:15.0];
headerLabel.backgroundColor = [UIColor clearColor];
NSString *myString = [NSString stringWithFormat:@"This is Header ;)"];
NSLog(@" headerLabel.text: %@", myString);
headerLabel.text = myString;
[imageView addSubview:headerLabel];
[tempView addSubview:imageView];
return tempView ;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 50;
}