2012-09-12 20 views
4

我試圖讓我的應用程序在按下按鈕時在屏幕中間顯示圖像(PNG),然後在幾秒鐘後使淡出。我將如何能夠做到這一點?它也是一個小PNG,所以我怎麼才能讓它顯示在原來的大小,而不是伸展出來,以適應整個屏幕? 任何提示,建議或答案非常感謝!如何讓圖像在iOS應用程序中出現或消失?

另外我是這個網站的新手,所以你可以給我打電話或者幫我改進這個問題因爲有些人認爲它不完整。謝謝大家的慷慨解答! :)

+1

好,使之顯示在屏幕中間,你可能* *一個UIImageView有位置。使其褪色可能會涉及使用動畫的東西,但我從來沒有嘗試過。 –

+2

(你有沒有考慮到實際上看UIImageView和UIView的文檔?) –

+0

我有,但它並沒有幫助我,讓我更困惑:( – iHackerMe

回答

10

與初始化一個UIImageView一個UIImage

// Assuming MyImage.png is part of the project's resources. 
UIImage *image = [UIImage imageNamed:@"MyImage.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
// Add imageView to a parent view here. 
[UIView animateWithDuration:0.2f delay:3.0f options:0 
       animations:^{imageView.alpha = 0.0;} 
       completion:^{[imageView removeFromSuperview];}]; 
+0

考慮下次只是給一些提示 –

+2

我會在這裏給出答案對於問題的第二部分(以正常大小顯示圖像),因爲這是最好的答案,您應該將UIImageView的* contentMode *屬性設置爲* UIViewContentModeCenter *。您可以通過在Interface Builder中選擇UIImageView (或在你的故事板),並設置屬性,或以編程方式:** imageView.contentMode = UIViewContentModeCenter; **。 – rdurand

+1

非常感謝大家快速和有益的答案!我真的很喜歡stackoverflow :) – iHackerMe

3
NSArray *animationArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"myImage.png"], nil]; 

    [NSTimer scheduledTimerWithTimeInterval:.75 target:self selector:@selector(crossfade) userInfo:nil repeats:YES]; 

    mainImageView.animationImages = animationArray;     
    mainImageView.animationDuration = 4.5; //mainImageView is instance of UIImageView 
    mainImageView.animationRepeatCount = 0; 
    [mainImageView startAnimating]; 

    CABasicAnimation *crossFade = [CABasicAnimation animationWithKeyPath:@"contents"]; 
    crossFade.autoreverses = YES; 
    crossFade.repeatCount = 1; 
    crossFade.duration = 1.0; 

和目標方法:

- (void) crossfade { 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; // user dependent transition acn be set here 
    mainImageView.alpha = !mainImageView.alpha; 
    [UIView commitAnimations]; 
} 
+2

考慮下一次只是給幾點提示。 –

+0

男人你們完全搖滾!非常感謝您的回答,是的,下次我會寫一個更詳細的問題:)對不起,我是新來的,學習發佈適當的問題。有關我如何能夠做得更好的建議? – iHackerMe

+0

嘿@AppleDelegate當我嘗試使用你的代碼進行編譯時,我得到這個'mainImageView'沒有在這個範圍內聲明 – iHackerMe

3

下面是示出用於在按鈕按下幾秒鐘圖像的代碼: 在您的按鈕動作中加入以下代碼:

imageView.image=yourImage; 
[self performSelector:@selector(waitAndGo) withObject:nil afterDelay:5]; 

這裏是爲waitAndGo實施:

-(void)waitAndGo 
{ 
    imageView.hidden=YES; 
} 
+0

這一個完美。 – Cybernetic

相關問題