Obtenga el rectángulo visible de tableview

Tengo una vista de tabla y quiero agregar como una subvista una vista gris con otra vista para imitar una window emergente. El problema es que la vista gris no cubre todo el televisor y la subvista donde tengo mis botones no está visible si se muestra la parte inferior de la televisión.

Aquí está mi código:

- (IBAction)orderButtonAction:(id)sender { _grayView = [[UIView alloc]init]; _grayView.frame = [[UIScreen mainScreen]bounds]; _grayView.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.7]; _grayView.hidden = NO; _profileOrderView.hidden = NO; _tableView.scrollEnabled = NO; _orderButtonOutlet.hidden = YES; _profileOrderView.center = self.view.center; [_grayView addSubview:_profileOrderView]; [_tableView addSubview:_grayView]; } 

¿Hay alguna manera de get el rectángulo visible de tv e insert mi vista gris allí?

Si desea que greyView cubra todo UITableView, debe establecer el marco de greyView como [greyView setFrame:tableView.bounds] .

Si desea que solo cubra el área de tableView que se muestra, debe usar CGRectIntersection(self.frame, superview.bounds); y configurarlo como el marco.