我想在UITableViewCells之间保持透明。细胞之间的空间。
我使用自定义创建的单元格并设置背景我使用此代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CustomCell = @"CustomBookingCell";
currentBooking = [arrayBookings objectAtIndex:indexPath.row];
CustomBookingCell *cell = (CustomBookingCell *)[tableView dequeueReusableCellWithIdentifier:CustomCell];
if (cell == nil) {
UIViewController *c = [[UIViewController alloc] initWithNibName:@"CustomBookingCell" bundle:nil];
cell = (CustomBookingCell *)c.view;
[ c release ];
}
bookingImage = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:currentBooking.imageSource]];
[cell.imageForBooking addSubview:bookingImage];
cell.selectionStyle = UITableViewCellSelectionStyleGray;
cell.contentView.backgroundColor = [UIColor clearColor];
UIView* backgroundView = [[UIView alloc] initWithFrame:CGRectZero];
UIImage* bgImage = [UIImage imageNamed:@"Background_300_82.png"];
UIColor *bgColor = [[UIColor alloc] initWithPatternImage: bgImage];
backgroundView.backgroundColor = bgColor;
cell.backgroundView = backgroundView;
cell.label.text = currentBooking.title;
[bookingImage release];
[bgColor release];
[backgroundView release];
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 90;
}
单元格的高度比tableCellBg.png高10个像素。 我的背景视图也有一个图像作为背景(当然,这个背景应该在单元格之间显示)。
所以我尝试在底部的tableCellBg.png中添加10个带透明度的像素来修复此问题。但是细胞之间的空间是黑色的。我无法看到我的单元格之间的视图背景。
我该怎么办?我是否必须使用tableCellBg.png的高度在cellForRowAtIndexPath中创建UIView,然后将Custom UITableViewCell作为子视图添加到创建的UIView中,其高度更低?
或者有更简单的方法来实现这个目标吗?
答案 0 :(得分:5)
您的表格视图需要清晰的背景颜色。例如
myTableView.backgroundColor = [UIColor clearColor];
答案 1 :(得分:1)
我通过使用另一种方法将背景图像添加到UITableViewCell来解决它:
UIImage *image = [UIImage imageNamed:@"ny_bg_event.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(0, 0, 300, 84);
cell.backgroundView = imageView;
cell.backgroundColor = [UIColor clearColor];
[imageView release];
[cell setFrame:CGRectMake(0, 0, 300, 84)];
cell.contentView.backgroundColor = [UIColor clearColor];
而不是创建UIView,而是使用了UIImageView。