3

我正在使用图像视图作为表格视图单元格背景视图。当我在 xcode 4.x 中编译我的源代码时,它工作正常,即在 iOS 6.x 和 7.0 中它工作正常。但是当我在 xcode 5.0 中编译我的源代码时,背景图像视图没有出现 iOS 7。

任何想法,为什么它不起作用?iOS 7 中的 uitableview 单元格背景视图是否有任何限制?

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:accountProfileTypeCell];
    UIImageView *cellBgView =[[UIImageView alloc]init];
    [cellBgView setImage:[UIImage imageNamed:@"cellBgView.png"]];
    [cell setBackgroundView:cellBgView];
}
4

5 回答 5

7

尝试添加: cell.backgroundColor = [UIColor clearColor];

于 2013-09-28T14:28:22.983 回答
2

您必须在 willDisplayCell 中设置背景。下面的代码与你的相同,唯一的是将它移动到 willDisplay 方法中

-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{

    if(cell.backgroundView==nil){
        UIImageView *cellBgView =[[UIImageView alloc]init];
        [cellBgView setImage:[UIImage imageNamed:@"cellBgView.png"]];
        [cell setBackgroundView:cellBgView];
    }
}
于 2013-09-28T07:15:35.127 回答
1

尝试这个。这对我有用

 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:accountProfileTypeCell];
UIView *cellBgView =[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [cell frame].size.width, [cell frame].size.height)];
[cellBgView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"cellBgView.png"]]];
[cell setBackgroundView:cellBgView];
于 2013-09-28T07:05:24.760 回答
0

唯一缺少的是将框架设置为 cellBgView。将图像设置为它不会调整 imageView 的大小。但是,如果您使用 initWithImage: 初始化 imageView,它将调整 imageView 的大小以适合图像。

于 2013-09-28T07:09:10.330 回答
0

您只需要在您的图像视图中应用自动调整大小。

如果您的图像视图应用于整个屏幕。将所有边距分配给它。

签出图片

设置自动调整视图大小以使其与 iOS6 和 iOS7 兼容

于 2013-09-28T07:10:22.613 回答