4

情報を表示する NSImage を含むメニューがあり、更新されたときに新しい (更新された) イメージをフェードインさせたいと思います。iPhone では簡単ですが、OS X でこれは可能ですか?

4

3 に答える 3

5

これを使ってみることができます。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
于 2019-01-22T21:05:24.240 に答える
4

最も価値のある例の1つはImageTransitionだと思います。少なくとも私にとっては、iOSの世界から来ているので理解するのは簡単です。 http://developer.apple.com/library/mac/samplecode/ImageTransition/ImageTransition.zip

お役に立てば幸い、パオロ

于 2011-09-14T08:32:41.060 に答える
3

メニューがどのように画像を表示しているかによって異なります。それがメニュー項目自体である場合、これは多くのハッカーなしでは不可能です。メニューでカスタム NSView を使用している場合は、2 つの NSImageView を使用し、ビューの -animator を使用してそれらを切り替えることができます。

imageViewB のフレームを imageViewA に一致させます (まだ一致していない場合)。次に、アニメーターを介してサブビューを置き換えます。

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

... または b から a に戻ります。

残念ながら、NSImageView の -animator プロキシは -setImage: をアニメートしません (明確な理由はありません) ため、2 つのビューを使用してスワップをアニメートする必要があります。

于 2011-02-28T14:42:09.653 に答える