Затемнение областей UIImageView или отображение части вида - PullRequest
2 голосов
/ 19 мая 2011

Есть ли способ затемнить область (определенную рамкой) UIImageView без создания наложенного экземпляра UIView (с этим кадром) и затемнения этого?

Есть ли аналогичноспособ показать часть UIImageView без использования экземпляров UIView, чтобы затемнить остальную часть изображения?

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Я собираюсь немного обмануть здесь и предложить использовать слой, так как он легкий.

CALayer *blackLayer = [CALayer layer];
blackLayer.backgroundColor = [UIColor blackColor];
blackLayer.frame = imageView.bounds;
[imageView.layer addSublayer:blackLayer];

Для второй части вы можете рассмотреть использование сетки слоев (черный). Когда пользователь касается представления изображения, вы можете выбрать слои из области, к которой он прикоснулся, и удалить их из суперслоя, то есть корневого слоя представления изображения.

0 голосов
/ 19 мая 2011

вы можете создать подкласс UIIMageView и рисовать в соответствии с вашими потребностями в drawRectMethod.

  1. Вы можете создать подкласс UIIMageView и получить там свое определение drawRectMethod.
  2. ВыВы также можете вызвать drawRectMethod по вашему желанию, вызвав метод setNeedsLayout для представления. (setNeedsDisplay - вызывает вызывание drawRect. - Только contentMode = UIViewContentModeRedraw будет вызывать вызов setNeedsDisplay при изменении границ представления).

ОБНОВЛЕНИЕ:

http://developer.apple.com/library/ios/#documentation/CoreGraphics/Reference/CoreGraphics_Framework/_index.html

...