[英]How do I release/delete a UIImageView class?
我是 iPhone 編程的新手,所以我什至可能沒有使用正確的方法......無論如何,我正在嘗試制作游戲,當我想創建一個敵人時,我制作了一個新的 UIImageView,如下所示:
enemyBird *asdf = [[enemyBird alloc] initWithFrame:CGRectMake(30, -20, 45, 30)];
[self.view addSubview:asdf];
當enemyBird 初始化時,會創建一個NSTimer,這樣它就可以飛來飛去,做自己的事情。 現在,我想在它離開屏幕后擺脫它,在這段代碼中:
if (self.center.y > 500)
{ //[self dealloc]; //doesn't work
//[self release]; //doesn't work
//[self removeFromSuperview]; //this makes it disappear, but the NSTimer is still running
}
但我不知道該怎么做。 我這樣做正確嗎? 還是有完全不同的方式我應該這樣做? 提前致謝。
游戲開發更好地使用 cocos2d 框架:這很容易
您必須將removeFromSuperview
發送到您的圖像視圖,以將其置於主視圖之外。 同時,您使計時器無效,您可能會沒事。
同樣在分配/初始化圖像視圖並將其添加到主視圖之后,您應該釋放它。
由於視圖保留其所有子視圖,您可以在將 imageView 添加到控制器視圖后立即釋放它:
enemyBird *asdf = [[enemyBird alloc] initWithFrame:CGRectMake(30, -20, 45, 30)]; [self.view addSubview:asdf]; [enemyBird release];
在您的計時器處理程序中,當鳥離開屏幕時將其從超級視圖中刪除,設置對 nil 的引用(以確保您不會訪問已釋放的實例)並使計時器無效,以便它不會再次觸發:
if (self.center.y > 500) { [enemyBird removeFromSuperview]; enemyBird = nil; [timer invalidate]; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.