Какао - исчезают между двумя NSImage? - PullRequest
3 голосов
/ 28 февраля 2011

У меня есть меню с NSImage, показывающее некоторую информацию, и когда оно обновляется, я бы хотел, чтобы новое (обновленное) изображение исчезло. Я знаю, что это легко на iPhone, но возможно ли это в OS X?

Ответы [ 3 ]

3 голосов
/ 14 сентября 2011

Я думаю, что одним из наиболее ценных примеров является ImageTransition. Это легко понять, по крайней мере, для меня, пришедшего из мира iOS. http://developer.apple.com/library/mac/samplecode/ImageTransition/ImageTransition.zip

Надеюсь, это поможет, Paolo

3 голосов
/ 28 февраля 2011

Это зависит от того, как ваше меню показывает изображение. Если это сам пункт меню, это невозможно без большого количества взлома. Если вы используете собственный NSView в меню, то вы можете использовать два NSImageViews и переключаться между ними, используя -animator представления.

Вы бы сопоставили кадр imageViewB с imageViewA, если это еще не сделано, затем замените подпредставление через аниматор:

[[parentView animator] replaceSubview:imageViewA with:imageViewB];

... или обратно с b на a.

К сожалению, прокси -animator NSImageView не будет анимировать -setImage: (без видимой причины), поэтому вам нужно использовать два представления и анимировать своп.

1 голос
/ 23 января 2019

Вы можете попробовать использовать это.Это было написано в Swift 4

 let transition = CATransition() //create transition
 transition.duration = 4 //set duration time in seconds
 transition.type = .fade //animation type
 transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
 self.imageView.layer?.add(transition, forKey: nil) //add animation to your imageView's layer
 self.imageView.image = NSImage(named: "test_image") //set the image
...