2011-09-02 1 views

답변

0

당신은 UIPickerViewDelegate ProtocolUIPickerViewDataSource Protocol을 구현해야합니다.

방법에서 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 그냥 필요한 제목을 반환합니다.

또한 UIPickerViewvalueChanged 이벤트에 위임자를 추가 할 수 있습니다. 값이 변경 될 때마다 모든 보이는 행을 다시로드하고 레이블 분과 초를 올바른 위치에 설정할 수 있습니다.

Oooor 당신은 검은 선을 통해 2 개 UILabel들과 하위 뷰를 추가 할 수 있습니다. 당신 Oooor

레이블 minssecs 검은 색 그라데이션 라인과 하위 뷰를 추가 할 수 있습니다.

그런 다음 방법 : - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component을 사용하여 적절한 열 너비를 설정할 수 있습니다.

+0

이것은 작동하지 않습니다 .... 선택한 행에만 '분'을 추가하고 싶습니다 ... – DShah

+0

내 대답이 업데이트되었습니다. 시도해 봐. – Nekto

+0

우리가 UITableView에서 셀을 생성 할 때 UILabels을 추가하는 것을 생각해 보았습니다 ... 그러나이 경우 어떻게 달성 할 수 있습니까? – DShah

4

먼저 "012"를 반환하려면 데이터 소스 메서드 pickerView:viewForRow:inComponent:reusingView:을 사용합니다. pickerview는이 뷰의 프레임을 변경하여 행을 채우기 때문에 실제로는 약간 까다 롭습니다. 즉, 제대로 배치 된 뷰를 다른 뷰에 포함시킨 다음 해당 컨테이너 뷰를 반환해야합니다.

는 레이블로서, 그 올바르게 위치되고 pickerview 자체의 파단으로 추가되어 단순히 UILabel 개체.

그리고 그들을 제대로 업데이트 갈 수있는, 그냥 pickerView:didSelectRow:inComponent: 방법으로 자신의 제목을 변경합니다.

이것은 정확히 UIDatePicker의 작업입니다.

+0

이 두 가지 방법을 따라야 할 단계를 줄 수 있습니까? 실제로 didSelectRow ..에서 이름을 변경하려고 시도했지만 성공하지 못했습니다. – DShah

+1

@DShah 대답에 단계를 줬습니다 ... –

+0

'pickerView : viewForRow : inComponent : reusingView :'메소드에 UILabel을 추가하면 같은 문제가 발생합니다. 즉 선택한 행 대신 모든 값에 레이블을 만듭니다. – DShah