2013-05-07 1 views
0

У меня есть этот UIImageview с изображением. Это небольшое изображение, которое выложено плиткой с помощьюМасштабирование изображения при использовании CGAffineTransformMakeScale

resizableImageWithCapInsets 

способ. Очень полезно делать независимые от размера экрана изображения, и это работает хорошо: если я программно изменяю размер кадра UIImageview, изображение внутри не растягивается, а повторяется, поэтому пиксели остаются пикселями.

Теперь, когда я делаю

self.myImageView.transform=CGAffineTransformMakeScale(5.0, 5.0); 

в UIImageView, содержащий/вывода, что изображение, я заметил, что изображение теперь фактически растягивается.

Я попытался перезагрузить изображение в представлении, но это, похоже, не помогает.

UIImageView находится в режиме «Масштаб для заполнения».

Вкратце вопрос: как я могу убедиться, что изображение не растянуто, но черепично после преобразования?

ОБНОВЛЕНИЕ: причина использования CGAffineTransformMakeScale заключается в том, что я хочу вырастить/сжать изображение (просмотр) относительно его центра.

ответ

0

Вместо применения преобразования непосредственно к представлению используйте CGRectApplyAffineTransform и преобразуйте рамку изображения. Это не будет работать для всех возможных преобразований, хотя это ограничивает перевод и масштабирование.

+0

Это хорошо работает, но причина, по которой я использовал CGAffineTransformMakeScale в первую очередь, заключалась в том, чтобы сделать масштабирование из центра: увеличение/уменьшение изображения (просмотра), сохраняя при этом центр обзора. Я отредактирую свой оригинальный вопрос. – Sjakelien

+0

В этом случае лучше всего использовать CGRectInset. – Wain

+0

Блестящий, спасибо! – Sjakelien

 Смежные вопросы

  • Нет связанных вопросов^_^