2016-02-20 3 views
0

Я хочу добавить UIImageView под UITableView, используя следующий код в viewDidLoad:UIImageView под UITableView не показывает

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 и это не то, что я ожидаю. Кто-нибудь знает, как справиться с этой проблемой?

Извините, что из иерархии зрения я вижу часть водяного знака, а не целое. И когда я запускаю приложение, я ничего не вижу.

+0

try waterMarkImage.alpha = 0.6; –

+0

@ KishoreKumar, я не думаю, что ваше предложение поможет (хотя я могу ошибаться), потому что проблема OP - это не прозрачность изображения, а прозрачность того, что * покрывает изображение (I.e. TableView). – Dopapp

+0

Это не работает :(Только часть водяной метки показывает в иерархии зрения, и ничего не отображается, когда я запускаю приложение – Caesar

ответ

0

Вы не видите изображениеПросмотреть, потому что это позади tableView. Это имеет смысл, когда вы добавили tableView после imageView. Чтобы исправить это, просто установите цвет фона ячеек clearColor(). Это сделает их прозрачными, чтобы вы могли видеть изображение, которое находится за ними.

Смежные вопросы