2013-01-10 1 views
3

을 사용하지 UIPickerView 구성 요소에 의해 나는 열을 의미합니다.아이폰 OS 내가 그런 일을 동적 <code>UIPickerView</code>이 구성 요소

마지막으로 추가 한 구성 요소 만 활성화하고 싶습니다. 다른 하나는 완전히 비활성화되어 있어야하며 스크롤하거나 행을 선택할 수 없어야합니다.

저는 동적으로 구성 요소를 추가하는 방법을 이미 알고 있지만 사용하지 않도록 설정할 생각이 없습니다.

그렇게 할 방법이 있습니까?

답변

3

전적으로 혼자서 구현하지 않고 구성 요소를 비활성화하는 방법을 모르지만 한 번에 하나의 구성 요소 만 표시하고 "뒤로"버튼이있는 액세서리보기를 추가하는 등의 작업을 수행 할 수 있습니다 위치를 선택하는 경우 상태가있는 구성 요소를 표시하고 사용자가 상태를 선택하면 해당 상태의 도시 이름이있는 구성 요소로 대체하고 필요할 경우 뒤로 이동하기위한 "뒤로"단추를 추가합니다 . 그것은 내가하고 싶은 일에 대해 내가 아는 가장 깨끗한 해결책입니다.

구성 요소를 완전히 "해제"해야하는 경우 UIPickerView를 서브 클래스 화하고 touchesBegan : withEvent 및 이와 유사한 메서드를 재정 의하여 선택하여 다른 구성 요소에 대한 기본적인 접근을 무시할 수 있습니다. "비활성화"하려면 비활성화 된 구성 요소 위에 알파 < 1.0이있는 회색 레이어를 배치 할 수 있습니다. 나는 이것이 추악해질 수 있고, 제대로 구현되지 않으면 예상치 못한 결과를 낳을 수 있음을 경고해야합니다. 행운을 빕니다.

+0

나는이 솔루션에 대해 이미 생각했지만 불행히도 이것은 내게 달려 있지 않다. 나의 상사는 이런 방식으로 구현하고 싶다. ( – Yaman

+0

구성 요소를 "비활성화"할 수있는 방법을 설명하기 위해 내 대답을 편집했다. 하지만 가능합니다. 행운을 빈다. – HackyStack

1

두 개의 UIView를 만들었습니다. 하나는 선택기를 포함하고 다른 하나는 하위 뷰로 사용자 입력을 사용하여 캡처를 활성화했습니다. 이것을 컴포넌트 위에 놓고 필요에 따라 userInputEnabled를 토글 할 수 있습니다.