2012-06-06 88 views
2

的問題同一個UIButton的多個實例?

我創建一個自定義的UIView,我需要一個UIButton的多個實例。我希望通過創建每個按鈕的一個實例來節省內存(和代碼!),然後使用標籤來標識哪個按鈕是哪個按鈕。我可以創建新的「向上」和「向下」按鈕,但是我想看看我能否更聰明地做到這一點。

我設置它的方式是3(應該適用於任何數字,但是)UILabels,分別在每個按鈕的下方或上方具有「上」和「下」按鈕。我還使用每個按鈕的CGPoint位置的計數來匹配相應的UILabel。

我在做什麼

那麼,我做的是設置XCOUNT爲默認值,創造了第一個標籤,然後創建了第一個「向上」和「向下」按鈕添加之前標籤和按鈕作爲子視圖。

接下來我增加xCount,並更改標籤併爲每個標籤和兩個按鈕設置框架。但是,這會將第一個按鈕(一個或多個)移到新框架(如預期的那樣)。

我已經試過什麼:

我試過設置每個按鈕是本身在每次使用後的副本(第1標籤後和按鈕添加到子視圖),但是這給錯誤跑步。

button = [button copy]; 

這更多的是格式問題,而不是問題的代碼,但是我正在尋找一些更聰明的洞察到問題:)。

該項目使用自動引用計數,如果這改變了任何東西。

在此先感謝!

回答

3

首先,你對記憶的擔憂是沒有根據的。只需創建你需要的按鈕數量。

其次,如果您更改按鈕(或任何視圖)的框架,則它會移動。你不能在兩個地方有一個按鈕。

第三,複製對象使用的內存量與從頭開始創建兩個對象時相同;新的內存必須分配給副本。

四,UIButton s不要conform to NSCopying,所以你不能複製它們。第五,你對記憶的擔憂是沒有根據的。只需創建你需要的按鈕數量。

+0

謝謝,記憶問題只是我愚蠢。 @stroughtonsmith reccomended我寫了一個方法來創建不同標籤的按鈕,並調用該方法3次。 –

相關問題