Вот что попробовать. Я никогда не использовал UIRectFillUsingBlendMode.
-(void) drawRect:(CGRect)inDirty {
[[UIColor colorWithWhite:0.0 alpha:0.5] setFill];
UIRectFillUsingBlendMode( inDirty , kCGBlendModeDarken );
}
Представление, реализующее это, должно быть настроено как составное с только теми представлениями, на которые вы хотите повлиять. Это, вероятно, означает, что одно родительское представление содержит это представление и все другие представления, которые вы хотите затемнить.
Вы также можете заглянуть в CGContextSetBlendMode.