Вы можете создать подкласс UIView
и переопределить - (void)drawRect:(CGRect)rect
И сделать что-то из следующего (не проверено, но использовал что-то подобное сам);
- (void)drawRect:(CGRect)rect {
// fill the whole UIView with a color
[[UIColor colorWithRed:1 green:1 blue:1 0.9] setFill];
UIRectFill( rect );
// draw a rect
CGRect rectIntersection = CGRectIntersection(theRectIWantToDrawIn, rect);
[[UIColor clearColor] setFill];
UIRectFill( rectIntersection );
}
Приведенный выше код рисуетчерный вид с имитированным отверстием clearColor в нем в определенной позиции.Конечно, вы можете изменить это поведение по своему вкусу.
Это довольно быстро.
ОБНОВЛЕНИЕ: Обратите внимание, что я установил UIView, на котором я хочу нарисовать прямоугольник, в цвет UIClear(Я добавил его в xib и установил там эти свойства) и снял флажок «Непрозрачный».Это должно сделать дыру прозрачной.
ОБНОВЛЕНИЕ 2: Мой ответ был основан на этом ответе (кредит, где кредит должен): iPhone - Нарисуйте прозрачный прямоугольник на UIView, чтобы показать вид под