获取tableview的可见矩形

Get the tableview's visible rect

我有一个表视图,我想添加一个带有另一个视图的灰色视图作为子视图,以模仿弹出窗口。问题是灰色视图没有覆盖整个电视,如果显示电视底部,我的按钮所在的子视图也不是全部可见。

这是我的代码:

- (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];

}

有没有办法获取电视的可见矩形并在那里插入我的灰色视图?

如果想让greyView覆盖整个UITableView,应该将greyView的frame设置为 [greyView setFrame:tableView.bounds]

如果你想让它只覆盖显示的tableView区域,你应该使用CGRectIntersection(self.frame, superview.bounds);并将它设置为框架。