我有一个我自定义的表视图,但是当我选择它时,它只选择一半... 看:
没有亮点:
突出显示:
我控制tableview的类中的代码:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
// create the parent view that will hold header Label
UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(10,0,300,60)];
// create image object
UIImage *myImage = [UIImage imageNamed:@"trolley.png"];;
// create the label objects
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectZero];
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.font = [UIFont boldSystemFontOfSize:15];
headerLabel.frame = CGRectMake(70,22,200,20);
headerLabel.text = @"Object";
headerLabel.textColor = [UIColor darkGrayColor];
UILabel *detailLabel = [[UILabel alloc] initWithFrame:CGRectZero];
detailLabel.backgroundColor = [UIColor clearColor];
detailLabel.textColor = [UIColor redColor];
detailLabel.text = @"Quantity";
detailLabel.font = [UIFont systemFontOfSize:15];
detailLabel.frame = CGRectMake(230,20,230,25);
// create the imageView with the image in it
UIImageView *imageView = [[UIImageView alloc] initWithImage:myImage];
imageView.frame = CGRectMake(10,10,50,50);
[customView addSubview:imageView];
[customView addSubview:headerLabel];
[customView addSubview:detailLabel];
return customView;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [lista count];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
return 60;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
return cell;
}
我希望你能理解我!
答案 0 :(得分:2)
来自tableView:viewForHeaderInSection:
...此方法仅在以下情况下正常工作 tableView:heightForHeaderInSection:也已实现。
因此,您定义了一个自定义标题视图,但表视图控制器不知道它是60点高。因此,表头与第一个单元格重叠。
添加
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
return 60.;
}
应该有帮助。