2010-08-19 144 views
1

我在我的代碼中有一個NSArray設置來顯示兩個PNG的交替閃爍,我試圖設置一段代碼,將其設置爲隱藏狀態,將其移出屏幕,任何事物都不能看到用戶。隱藏NSArray - 我該怎麼做?

的代碼爲我的數組是

NSArray *imageArray = [[NSArray alloc] initWithObjects: 
[UIImage imageNamed:@"CONNECTED dark yellow FF CC 00.png"], 
[UIImage imageNamed:@"CONNECTEDR dark yellow FF CC 00.png"], nil]; 

UIImageView *animation = [[UIImageView alloc] initWithFrame: CGRectMake(20, 10, 300, 80)]; 
animation.animationImages = imageArray; 
animation.animationDuration = .8; 
animation.contentMode = UIViewContentModeBottomLeft; 
[self.view addSubview:animation]; 
[animation startAnimating]; 
[animation release]; 
[view release]; 

但是,如果我嘗試使用setHidden或.hidden:是的,它似乎並沒有隱瞞,喊道該動畫沒有聲明。任何人都可以提出這個答案嗎?當然,它盯着我打了一巴掌,但經過幾個小時的嘗試?現在我承認失敗了。

+0

什麼時候你想讓它消失?用戶交互(手勢,按鈕,..)?時間?重複? – vikingosegundo 2010-08-19 19:38:41

+0

基於用戶通過按鈕進行交互或基於nsuserdefault設置作爲viewdidload的一部分調用方法。 – David26th 2010-08-19 19:52:10

回答

1

你必須保持到animation視圖的引用(成員/屬性添加到您的視圖控制器和右釋放前添加像_animationView = animation代碼;然後使用_animationView而不是animation當試圖隱藏它)。

或者你可以標記設置爲這一觀點後來被標籤找到它...

我希望我明白你的問題所在 - 讓我知道,否則。

編輯(後你的第一反應):

在MyViewController.h文件:

class MyViewController : UIViewController { 
    UIImageView *_animationView; 
} 

在MyViewController.m文件:

NSArray *imageArray = [[NSArray alloc] initWithObjects: 
[UIImage imageNamed:@"CONNECTED dark yellow FF CC 00.png"], 
[UIImage imageNamed:@"CONNECTEDR dark yellow FF CC 00.png"], nil]; 

UIImageView *animation = [[UIImageView alloc] initWithFrame: CGRectMake(20, 10, 300, 80)]; 
animation.animationImages = imageArray; 
animation.animationDuration = .8; 
animation.contentMode = UIViewContentModeBottomLeft; 
[self.view addSubview:animation]; 
[animation startAnimating]; 

// Add the next line 
_animationView = animation; 

[animation release]; 
[view release]; 




// Use this method to hide the animation view... 
- (void)hideAnimationView { 
    _animationView.hidden = YES; 
    [_animationView stopAnimating]; 
} 

編輯2
更改.h文件中的聲明行(UIImageView *_animationView;

+0

好的,我想我在這裏得到你的一般意義,但是你有什麼機會可以給我一些代碼來更準確地表示你的意思嗎?我認爲你對自己想要的東西有正確的想法,但是我不會經常以編程的方式建立自己的觀點,所以我現在對此感到困惑。 – David26th 2010-08-19 19:03:55

+0

我編輯了我的答案。看看它是否有幫助... – 2010-08-19 19:28:36

+0

錯誤:Objective-C類'UIView'的靜態分配實例 接收.h中的那個.h – David26th 2010-08-19 19:48:52

1

hidden不具有動畫效果,因爲在YESNO之間沒有可能的動畫。在布爾邏輯中沒有辦法表達「有點是,有點不」。

嘗試使用字母代替

[aView setAlpha:1.0] // fully opaque 
[aView setAlpha:0.0] // fully transparent 
+0

對此,Cannonade的答案 - 不是Alpha只是改變透明度?如果是這樣,我不能使用這個不幸的,因爲我實際上需要從屏幕上刪除這一點,因爲它覆蓋了按鈕將出現的地方。 – David26th 2010-08-19 19:04:36

+0

alpha大約低於0.1的視圖默認情況下不會接收觸摸事件。 – 2010-08-19 19:44:12

+0

謝謝。已經嘗試過這一點,並懷疑它的工作,但我仍然有一個動畫未被宣佈的問題。 – David26th 2010-08-19 19:54:15