UITableView下的UIImageView不显示

Posted

技术标签:

【中文标题】UITableView下的UIImageView不显示【英文标题】:UIImageView under UITableView does not show 【发布时间】:2016-02-20 05:12:52 【问题描述】:

我想在一个UITableView下添加一个UIImageView,使用viewDidLoad中的如下代码:

self.tableView = (
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
tableView.translatesAutoresizingMaskIntoConstraints = NO;
tableView.scrollEnabled = NO;
tableView.allowsSelection = NO;
tableView.dataSource = self;
tableView.delegate = self;
tableView.backgroundColor = [UIColor clearColor];
tableView;
);


self.waterMarkImageView = (
        UIImageView *imageView = [UIImageView new];
        imageView.translatesAutoresizingMaskIntoConstraints = NO;
        imageView.contentMode = UIViewContentModeScaleToFill;
        imageView.alpha = 1.0;
        imageView.image = [UIImage imageNamed:@"waterMark"];
        imageView;
);

[self.view addSubview:self.waterMarkImageView];
[self.view addSubview:self.tableView];
[self.waterMarkImageView mas_makeConstraints:^(MASConstraintMaker *make)
       make.right.equalTo(self.view.mas_right);
       make.bottom.equalTo(self.view.mas_bottom);
       make.width.equalTo(self.view.mas_width);
       make.height.equalTo(self.view.mas_height);
   ];

[self.tableView mas_makeConstraints:^(MASConstraintMaker *make)
       make.top.equalTo(self.view.mas_top).offset(statusBarHeight + navigationBarHeight + labelHeight);
       make.left.equalTo(self.view.mas_left);
       make.bottom.equalTo(self.view.mas_bottom);
       make.right.equalTo(self.view.mas_right);
   ];

但是没有 waterMarkImageView 显示。 但是如果我将添加waterMarkImageView和tableView的顺序交换到self.view的子视图中,那就是:

[self.view addSubview:self.tableView];
[self.view addSubview:self.waterMarkImageView];

然后 waterMarkImageView 将显示,但在 tableview 上方,它将覆盖 tableview 的一部分,这不是我所期望的。有谁知道如何处理这个问题?

抱歉,实际上从视图层次结构中我可以看到水印的一部分,而不是全部。当我运行应用程序时,我什么也看不到。

【问题讨论】:

试试 waterMarkImage.alpha=0.6; @KishoreKumar,我认为您的建议不会有帮助(尽管我可能错了),因为 OP 的问题不是图像的透明度,而是 覆盖的透明度 图像(即 tableView)。 它不起作用 :( 只有一部分水印显示在视图层次结构中,当我运行应用程序时没有任何显示 @Dopapp 哦,当我设置单元格本身的背景颜色时,它可以工作。谢谢! 【参考方案1】:

你看不到 imageView,因为它在 tableView 后面。这是有道理的,因为您在 imageView 之后添加了 tableView。要解决此问题,只需将单元格的背景颜色设置为 clearColor()。这将使它们透明,以便您可以看到它们后面的 imageView。

【讨论】:

以上是关于UITableView下的UIImageView不显示的主要内容,如果未能解决你的问题,请参考以下文章

iOS UITableViewCell UIImageView 在不同条件下的设置

一些不需要的 UIImageView 在尝试将它们设置为 UITableView 的边框时消失了

使用 UIImageView 为人工制品中的 UITableView 结果绘制背景图像

使用 UITableView 在 UITableView 上自动滚动 UIImageView

UIView 与 UITableview 和 UIImageview,使用 reloadData 访问 UITableview

使用UITableView自动在UITableView上滚动UIImageView