Я получаю хорошие результаты, используя метод, который вы уже попробовали. возможно, возиться с альфой - это хорошая идея?
mask = [[UIView alloc] initWithFrame:window.frame];
[mask setBackgroundColor:[UIColor colorWithWhite:0.0 alpha:0.78]];
[self.view addSubview:mask];
Затем в вашем коде вы можете удалить его:
[mask removeFromSuperview];
or
[mask setHidden:YES];
Если вы хотите сделать его еще лучше, я полагаю, вы могли бы попытаться использовать градиент, либо программно, либо в качестве изображения, и использовать его для затемнения краев экрана таким образом, чтобы содержимое, отображаемое на переднем плане, выглядело как источник света.