Единственный способ, которым я думаю сделать это, - это иметь собственный UIView
и установить его как вид по умолчанию для вашего самого верхнего UIViewController
. Внутри этого метода UIView's
drawRect()
вы можете рисовать любые фигуры (включая прозрачные). Например, если вы хотите нарисовать прозрачный круг в середине вашего контроллера, вы должны сделать это в drawRect()
вашего UIView:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor orangeColor] setFill]; //background Fill
CGContextFillRect(context, self.bounds);
[[UIColor clearColor] setFill]; //circle Fill.
CGContextFillEllipseInRect(context, (CGRect){self.center.x - 25.0f, self.center.y - 25.0f, 50.0f, 50.0f});
}
В initWithFrame: того же UIView добавьте следующее:
[self setBackgroundColor:[UIColor clearColor]];
PS: Как уже упоминалось @Lefteris, очевидно, установите для UIViewController
UIModalPresentationStyle
значение OverCurrentContext, чтобы оно отображалось над тем же контроллером.
Примечание: под прозрачным я имел в виду область верхнего контроллера, которая показывает содержимое нижнего контроллера, как вы хотели.
person
Sabir Ali
schedule
18.05.2015
UIModalPresentationStyle
наOverCurrentContext
, и предыдущее представление viewController будет видно. - person Lefteris   schedule 18.05.2015