获取TableView可见区域的矩形框

3
我有一个表视图,想要添加一个灰色视图作为子视图,并在其中再添加一个视图以模拟弹出框。问题是灰色视图没有覆盖整个表视图,如果表视图底部可见,则按钮所在的子视图不完全可见。
以下是我的代码:
- (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];

}

有没有一种方法可以获取电视的可见矩形,并将我的灰色视图插入其中?

可能是获取UIView可见矩形的重复问题。 - Shamas S
谢谢@iosDev82,这完全没有解决我的问题。 - Stefan Olaru
你想让这个 grayViewtableView 上面,对吧?试着将其作为 tableView.parent 的子视图添加(它将是 self.view),然后执行 [self.view bringSubviewToFront:_grayView] - aramusss
如果您希望greyView覆盖整个UITableView,则应将greyView的frame设置为[greyView setFrame:tableView.bounds]。如果您只希望其覆盖tableView显示的区域,则应使用CGRectIntersection(self.frame, superview.bounds)。那么您需要哪一个呢? - Shamas S
1
它起作用了。你能在答案中编辑它以便接受吗? - Stefan Olaru
1
@iosDev82 两个答案都有效。谢谢! - Stefan Olaru
1个回答

2
如果你想要greyView覆盖整个UITableView,你应该将greyView的frame设置为[greyView setFrame:tableView.bounds]
如果你只想要它覆盖tableView显示的区域,你应该使用CGRectIntersection(self.frame, superview.bounds)并将其作为frame来设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接