2017-03-01 9 views
1

저는 UIPickerView와 UILabel을 가지고 있습니다. 서로 분리되어 있습니다. 첫 번째 (맨 뒤로 이동하는 UIPickerView을 레이블의 텍스트가 변경 어떤 이유로 그러나UIPickerView 지터

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

: 사용자가 UIPickerView의 행을 선택

, 나는 위임 기능을 사용하여 UILabel의 텍스트를 변경 열).

줄을 제거하면 "label.text = String (row);" UIPickerView는 전혀 점프하지 않습니다.

이것은 매우 이상하며 두 요소간에 상관 관계를 찾을 수 없습니다. 어떤 대답이

+0

레이블 텍스트가 점프 백하기 전에 올바르게 설정 되나요? 아니면 매번 0이됩니까? –

+0

예 텍스트가 올바르게 설정되면 UIPicker가 뒤로 이동합니다 –

+0

레이블 텍스트를 설정하는 대신 String (행) 만 인쇄하면 어떻게됩니까? 아직도 뛰는가? 나는 이것을 본 적이 없으며 답을 갖고 있지 않아 디버그를 도우려고 노력 중이다 –

답변

0

이 "이상한 마법의 버그는"나는 때문에 다른 버그() viewDidLayoutSubviews에 UIPickerViews의 기본 값을 설정하는 것이 사실 때문이라고 밝혀 :)에 대한

은 사전에 감사합니다.

따라서 요소가 변경 될 때마다 viewDidLayoutSubviews()가 호출되고 UIPickerView의 값이 다시 설정되어 점프하게됩니다.