2011-07-04 15 views
0

ボタンを押したときに画面にUIImageフェードがある必要があります。ボタンのコードは完成していますが、IOS開発の初心者ですから、これを達成するためのUIImageの属性は不明です。UIImage不透明属性を特定できません

答えて

0

おそらくCoreAnimationを使いたいと思うでしょう。 UIImageは表示ロジックを持たないので、不透明度プロパティはありませんが、UIViewのサブクラスであるため、UIImageViewがあり、持っています。

別の言い方をすれば、UIImageは単なる画像です。描画される不透明度を変更したい場合は、描画を行うアクタ(通常はUIImageView)と話をしたいと思います。

です。

// set the current alpha to 0.0f 
someImageView.alpha = 0.0f; 

// use the UIView convenience methods to create a CoreAnimation block. Have the 
// animation just be to move the alpha up to 1.0f. Because we don't specify any 
// other adjustments, we'll get the default 0.2 seconds and ease in/ease out 
// curve for alpha against time 
[UIView beginAnimations:nil context:nil]; 
    someImageview.alpha = 1.0f; 
[UIView commitAnimations]; 

// the animation will now run autonomously 

あなたはボタンの押しに応じて、そのような何かを行うことができ、あなたがしようとしているものを達成すべきです。 CoreAnimationは、アルファだけでなく、自動的にプロパティの全体を変更することができ、固定状態から別の固定状態への移行よりもはるかに複雑な作業を行うことができますが、UIViewは包括的に使用され、何をしたい

0

これは、不透明性の問題を修正し、イメージを表示する方法です。それ以上のことがありますが(ボタンをクリックしてSELメソッドをクリックします)、それほど表示したくありませんでした。

-(IBAction) seeImage 
{ 
CGContextRef imageContext = UIGraphicsGetCurrentContext(); 
wisdomView.alpha = 0.0; 

[UIView beginAnimations:nil context:imageContext]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
[UIView setAnimationDuration:4]; 
[UIView setAnimationDelegate:self]; 
wisdomView.alpha = 1; 
[UIView commitAnimations]; 

SEL methodSelector = @selector(hideImage); 
[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:methodSelector  userInfo:nil repeats:NO]; 

} 

////This is the method that hides the graphic choosen by randNum and make it disappear at the top of the screen 
-(IBAction) hideImage 
{ 

CGContextRef imageContext = UIGraphicsGetCurrentContext(); 
wisdomView.alpha = 1; 

[UIView beginAnimations:nil context:imageContext]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
[UIView setAnimationDuration:6]; 
[UIView setAnimationDelegate:self]; 
wisdomView.alpha = 0.0; 
[UIView commitAnimations]; 

} 

誰かがそれをより良くするためのアイデアを持っているなら...私に教えてください!皆さんありがとう!

関連する問題