2017-08-05 37 views
0

我創建了一個簡單的函數來檢查某個條件。如果是這樣的話,它會調用另一個函數,該函數以編程方式創建一個按鈕,隨機顯示一個圖像(加上其他東西)。Swift - 如何刪除在函數中創建的按鈕?

在創建按鈕之前,我想檢查按鈕是否已經存在並刪除它,以便創建一個新的隨機按鈕。 另一個使用過的例子可能是檢查第一個函數,如果按鈕已經存在並且只是刪除它。

不管我做什麼Xcode說我試圖在聲明它之前使用該變量(這是邏輯的,但我不知道如何改變這一點)。

func check() { 
    if condition is met { 
     createButton() 
    } 
} 

funk createButton() 
    let number = arc4random_uniform(3) 

     let multiButton = SKSpriteNode(imageNamed: "multi\(number)") 
     multiButton.size = CGSize(width: frame.size.width/5, height: frame.size.width/5) 
     multiButton.position = CGPoint(x: frame.midX, y: frame.minY + colorSwitch.size.height) 
     multiButton.name = "multiButton" 
     multiButton.isUserInteractionEnabled = false 
     addChild(multiButton) 
} 

現在,當我寫的,我想在第一個功能createButton檢查()如果鍵已經存在,如果是這樣只是在第二個函數刪除或代替之前如果它已經存在創建按鈕並再次刪除它,以便可以創建一個新的。

我試着使用:

multiButton.removeFromParent() 

但是,這並不工作,因爲我嘗試創建之前它來訪問變量。

感謝您的任何幫助。

回答

0

爲您的班級添加button(或任何您想要調用它的)屬性。創建按鈕時,將其分配給屬性,並在下次需要創建一個按鈕時,首先調用button.removeFromSuperview(),然後爲其重新分配一個新按鈕。

這是如何解決這個問題,但爲什麼你這樣做是這種方式並沒有解決。爲什麼不只有一個屬性只指向單個按鈕實例,而不是刪除和創建按鈕,只需更改按鈕的標題,操作和/或其他按鈕屬性即可。

+0

你能給我多一點信息,或者根據什麼關鍵字我可以準確地搜索這個?我仍在學習,有時很難。 – RjC

相關問題