2010-03-23 1 views
3

Я помещаю изображение в IKImageView и сразу же определяю его размер. Всякий раз, когда я это делаю, изображение изначально появляется с размером 1-1 (огромным), а затем уменьшает размер, что было бы неплохо, если бы анимация была гладкой. Однако анимация выглядит ... fluttery? Существуют большие блоки, такие как квадрат 2 дюйма, изображения, которые появляются и сжимаются независимо друг от друга. Эффект немного раздражает и почти до уровня, где он может вызвать эпилептический приступ ... (Я немного преувеличиваю).IKImageView resize is blocky

Это ошибка в IKImageView? Это ошибка в анимации? Будет ли это уходить, если я отключу анимацию (Как это сделать? SetAnimates: NO ничего не делает, и перегрузка аниматов не возвращает NO в моем подклассе ...

EDIT: добавленный код:

NSImage* image = [doc currentImage]; 
[imageView setImage: image]; 
[imageView zoomImageToFit: self]; 

Это в контроллере приложения, поэтому само это приложение (или плагин, в зависимости от того, какую версию я смотрю)

+0

Можете ли вы разместить код, который вы используете, чтобы добавить изображение и размер его? –

+0

Обратите внимание, что метод setImage: IKImageView на самом деле является ЧАСТНЫМ. В настоящее время я использую его в приложении для магазина mac app и не был отклонен для него, но я удаляю его в следующей версии, потому что я только сейчас понял, что он закрыт. Используйте 'CGImageRef refImg = [img CGImageForProposedRect: NULL context: NULL hints: NULL]; [imageView setImage: refImg imageProperties: nil]; 'вместо этого. –

ответ

2

Если вы скажете IKImageView в AUTORESIZE, то он не будет анимировать новое изображение с новым размером и артефактами не будет проблемой. Изображение будет соответствующим образом подогнано к изображению.

imageView.autoresizes = YES; 
+0

отличное спасибо! –