UITableView下的UIImageView不显示

时间:2016-02-20 05:12:52

标签: ios objective-c uitableview uiimageview

我想在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的一部分,这不是我所期望的。任何人都知道如何处理这个问题?

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

1 个答案:

答案 0 :(得分:0)

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