2017-03-01 45 views
1

我有一個UIPickerView和一個UILabel,彼此分開。UIPickerView抖動

當用戶在UIPickerView選擇一排,我改變使用委託函數的UILabel文本:

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
{ 
    label.text = String(row); 
} 

但出於某種原因,改變標籤的文本導致UIPickerView跳回頂部(第一行)。

當我刪除行「label.text = String(row);」 UIPickerView根本不跳。

這很奇怪,我找不到這兩個元素之間的任何關聯。

預先感謝您的任何答覆:)

+0

標籤文本在跳回之前是否正確設置或每次都變爲0? –

+0

是的文本得到正確設置,然後UIPicker跳回 –

+0

如果不是設置標籤文本,而只是打印字符串(行)?它仍然跳?我從來沒有見過這個,也沒有答案,所以我試圖幫助你調試 –

回答

0

事實證明,這種「怪神奇蟲」,是由於這樣的事實,我在viewDidLayoutSubviews設置UIPickerViews的默認值()由於另一個bug。

因此,每當元素髮生變化時,都會調用viewDidLayoutSubviews(),並重新設置UIPickerView的值,導致它跳轉。