2014-09-03 2 views
0

사용자 정의 tableview 셀에 labelA가 있습니다. 레이블을 클릭하면 사용 가능한 옵션을 선택하기 위해 화면 맨 아래에 피커보기가 표시됩니다.기본 입력 방법으로 iOS 선택기보기

제 질문은 : 실제로 스토리 보드에서 내보기에 PickerView을 드래그 앤 드롭해야합니까, 아니면 기본 입력 방법으로 호출 할 수 있습니까? (텍스트 필드의 키보드와 동일)

예, 그렇다면 어떻게해야합니까? - 레이블을 클릭하면 선택기가 나타나고 선택이 끝나면 숨길 수 있습니다. 몇 가지 예를 들어 주시겠습니까?

나는 신속하게 개발 중이지만 iOS 예제도 괜찮습니다.

도움 주셔서 감사합니다.

편집 : 우물 레이블은 원칙이 아니며 셀에서 직접 입력 트리거를 사용할 수 있습니다. 클릭 후 아이디어는 피커보기를 표시하고 선택 후에 숨 깁니다.

+0

레이블의 입력을 지원하지 않습니다. 라벨에 탭 제스처를 처리하고 직접 피커 뷰를 표시하는 코드를 모두 추가해야합니다. – rmaddy

+0

@rmaddy 음 레이블은 원칙이 아니므로 셀에서 입력 트리거를 직접 사용할 수 있습니다. 클릭 후 아이디어는 피커보기를 표시하고 선택 후에 숨 깁니다. –

답변

1

tableView : didSelectRowAtIndexPath 메서드에서 코드로 UIPickerView를 모두 인스턴스화 할 수 있습니다. self.view addSubView를 사용하여 뷰 컨트롤러에 추가 할 수 있습니다. 테이블 뷰를 사용하여 코드를 화면에 올바르게 배치하는 코드를 작성해야합니다. 테이블 뷰의 크기를 조정하여 축소되도록하고 피커 뷰가 뷰의 맨 아래에 표시되도록 할 수 있습니다.

쉬운 방법은 이미 설정된 UIPickerView와 함께 모달 대화 상자를 표시하는 것입니다.

업데이트 UIViewController 유형의 새 컨트롤러를 만듭니다. UIViewController를 스토리 보드로 드래그하고 위 컨트롤러의 유형과 스토리 보드 ID를 지정하십시오. 내가 만든 UIViewController의 이름을 사용합니다. 피커 뷰를 추가하고 데이터 소스를 구성하십시오. 선택한 옵션에 대한 대리자를 만들고 선택한 항목을 반환하도록합니다. - (void) selectionMade : (NSString *) selectedValue;

테이블보기 컨트롤러에서 위의 위임 메서드를 구현하십시오. tableView : didSelectRowAtIndexPath에서 해당보기 컨트롤러를로드하고 표시하십시오. [self.storyboard instantiateViewControllerWithIdentifier : @ ""] 대리자 메서드는 해당 값을 가져오고 tableView.indexPathForSelectedRow를 사용하여 셀을 검색 할 수 있습니다. 그에 따라 셀을 업데이트하십시오.

+0

감사합니다. 나는 그것이 매우 복잡하고 내 견해로는 필자 조정을 필요로하고 그것이 자동으로 처리되지 않는다는 것에 놀랐다. 네가 묘사 한 가장 쉬운 방법에 대한 정보를 좀 더 알려주시겠습니까? 감사! –

+0

내 대답이 업데이트되었습니다. –

3

내가 주로하는 일은 UITextField를 사용하고 inputAccessoryView 속성을 UIPickerView의 인스턴스로 설정하는 것입니다. 기본 키보드 대신 UITextField를 누르면 UIPickerView가 표시됩니다.