0

我有两个UIViews,显然CGRects每个都有。一个UIView填满屏幕,而另一个只填满屏幕中间的一部分。我有CGRect较小的UIView,但我怎样才能得到CGRect它外面的那个 - 不包括较小的大小,以便背景可以变暗,而不是内部的内容UIView

这就是我的UIViewController样子,因此您可以更好地了解我正在尝试做的事情:

在此处输入图像描述

我想调暗外部 UIView,而不是内部 - 但我没有外部的 CGRect不包括内部UIView,所以我现在不得不用另一种方式来做。

4

2 回答 2

4

CGRect 是正方形大小。如果你想知道外部咏叹调,你需要计算 4 个 CGRects。顶部、左侧、右侧和底部空间。

于 2012-10-24T06:33:57.040 回答
0

所以,在我看来,外部视图负责绘制您的内容,而内部视图是您的选择矩形,对吧?

如果是这样,那么我认为当您激活此选择模式时,您会想要绘制两次内容。你会:

  1. 绘制一个变暗的通道 - 自己调整颜色(您可以绘制整个区域或使用此处的代码剪掉内部区域)
  2. 使用剪辑矩形设置绘制第二个内部通道,因此仅绘制矩形内用于选择矩形的内容

或者

  1. 像平常一样绘制所有内容
  2. 设置您的剪贴蒙版(使用此处的代码,以便仅渲染外部区域),然后在整个场景中绘制一个具有一定透明度的黑色矩形
于 2012-10-24T07:13:06.143 回答