Я собираюсь немного обмануть здесь и предложить использовать слой, так как он легкий.
CALayer *blackLayer = [CALayer layer];
blackLayer.backgroundColor = [UIColor blackColor];
blackLayer.frame = imageView.bounds;
[imageView.layer addSublayer:blackLayer];
Для второй части вы можете рассмотреть использование сетки слоев (черный). Когда пользователь касается представления изображения, вы можете выбрать слои из области, к которой он прикоснулся, и удалить их из суперслоя, то есть корневого слоя представления изображения.