2012-05-24 2 views
2

그래서이 문제에 직면하고 있습니다. 표준 UIPicker가 내 프로토 (proto) 앱에서 잘 보이지 않아 정말 모양이 바뀝니다. 나는 이미 그것을 봤는데 유용 링크 http://aralbalkan.com/2985을 발견했습니다. 좋았지 만 더 쉬운 방법이 없는지 궁금합니다.UIPicker 모양 변경

스택 오버플로가이 스레드를 찾았습니다. Is it possible to 're-skin' the IOS Date Picker?, "미해결"이지만 첫 번째 기사를 가리 킵니다.

나는 또한 Apress Book "Beginning Iphone development"(제 7 장 생각)의 튜토리얼을 매우 유용하게 사용했지만, 전체 내용이 아니라 단지 내용 만 변경하고있었습니다.

enter image description here

누구나 목표 -C 신인에 대한 좋은 튜토리얼/링크/제안이있다 : 그냥 명확하게하기 위해 ,이 같은 것을 가지고 좋은 것? Thx in advice

EDIT : 그래서 아래의 두 가지 대답에 자세히 나와있는 방법을 구현했으며 매력적으로 작동합니다. 하지만 배경색이 여전히 붙어 있습니다.

답변

1

UIPickerViewDelegatepickerView:viewForRow:forComponent:reusingView:을 사용하여 숫자를 만들 수 있으며 쉼표는 addSubView:을 통해 추가 할 수 있습니다.

또는 다른 길을 가서 오픈 소스 대안을 사용, 즉 AFPickerView

당신은 계층 구조에서 TEH 뷰를 조작 할 수 있습니다 -하지만 아마 피커를 다시 쉽게 ...

-(void)viewDidAppear:(BOOL)animated 
{ 
    for (UIView *view in [self.pickerView subviews]) { 
     NSLog(@"%@", view); 
    } 
    [(UIView *)[[self.pickerView subviews] objectAtIndex:1] setBackgroundColor:[UIColor blueColor]]; 
    [(UIView *)[[self.pickerView subviews] objectAtIndex:0] setHidden:YES]; 
    [(UIView *)[[self.pickerView subviews] lastObject] setHidden:YES]; 

    for (UIView *view in [(UIView *)[[self.pickerView subviews] objectAtIndex:2] subviews]) { 
     NSLog(@"> %@", view); 
    } 

    [[[(UIView *)[[self.pickerView subviews] objectAtIndex:2] subviews] lastObject] setHidden:YES]; 
} 
+0

thx하지만 배경 크기와 색상은 어떻게됩니까? –

+0

나는 당신의 방법을 구현했고, 이제는 고르는 사람을위한 커스텀 뷰를 가지고있다. 고맙다. :) 배경색에 대해 고심하고있다. –

+0

내 편집 방법을 참조하십시오.하지만이 방법은 위험합니다. 이는 iOS의 새로운 실제와 겹칠 수 있기 때문입니다. – vikingosegundo

1

사용 UIPickerView의 위임자.

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 

이라는 메서드를 만듭니다.이 시점에서 UIView (또는 하위 클래스)를 만들 수 있습니다. 이 시점에서 뷰에 표시 할 내용을 완전히 제어 할 수 있습니다. 배경색과 알파를 변경할 수 있습니다. UIView를 하위 클래스로 만들면 고유 한 그리기 루틴을 가질 수 있습니다.

+0

thx,하지만 배경 크기 및 색상은 어떻습니까? –