Swift 2
UIViews
имеет свойство с именем maskView
.
maskView
всегда будет поверх UIView кто владеет им.
поэтому ваш подход должен выглядеть примерно так (это для Swift, но его легко конвертировать в Obj-c):
self.view.maskView = UIView(frame: self.view.frame)
self.view.maskView?.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5)
//Do your work here, block UI, anything you need to, and then...
self.view.maskView = nil
Swift 3
Имя свойства было изменено на mask
.
self.view.mask = UIView(frame: self.frame)
self.view.mask?.backgroundColor = UIColor.black.withAlphaComponent(0.5)
//Do your work here, block UI, anything you need to, and then...
self.view.mask = nil