具有图像背景的iOS 7中的UITableViewCell问题

时间:2014-02-09 17:39:28

标签: ios iphone cocoa-touch uitableview

当我将其背景设置为模式时,我在iOS7中遇到UITableViewCell的问题,即:

tableViewCell.backgroundView = 
     [[UIImageView alloc] initWithImage:self.cellBackgroundImage];

当我这样做,并且我关闭了表视图单元格分隔符时,我仍然得到这个:

Bug example

每隔一行出现一条白线。即使我没有关闭分隔符,我仍然在普通分隔符的顶部获得这个额外的行。这没有发生< IOS 7。有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

-(void)viewDidLoad
{
   self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
   self.tableView.rowHeight = self.cellBackgroundImage.size.height;
}

如果您仍然遇到问题,可能在某个地方的tableView中存在边界问题。您可以尝试剪切到边界,看看是否仍有相同的问题:

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = 
          [tableView dequeueReusableCellWithIdentifier:CellIdentifier
                                          forIndexPath:indexPath];
    // Is our layout bleeding into other cells? Let's see.
    cell.clipsToBounds = YES;

    cell.backgroundView = 
          [[UIImageView alloc] initWithImage:self.cellBackgroundImage];
    // rest of code ...

    return cell;
}

如果您的问题在裁剪后消失,您需要弄清楚布局中的哪个位置会流入其他单元格。

答案 1 :(得分:1)

我通过将以上代码行替换为:

来解决问题
tableView.backgroundColor = [UIColor colorWithPatternImage:self.cellBackgroundImage];