2010-08-24 2 views
0

itune 매장 계정의 국가 선택 필드처럼 보이고 작동하는 피커를 만들고 싶습니다. 여기 내가 말하고자하는 바가 있습니다.국가 선택 기능처럼 보이는 아이폰 용 피커 뷰

http://i38.tinypic.com/5p0w91.jpg

이 선택기는 행을 강조하지 않습니다. 선택한 행 앞에 "올바른"표시가 있습니다. 사용자는이 선택 도구를 스크롤 한 다음 행을 선택하여 "올바른"기호가 새로 선택된 행 앞에 표시됩니다. 누군가 도와 드릴 수 있습니까?

답변

0

나는 응용 프로그램을 코딩에 익숙하지 해요,하지만 브라우저 기반 UI (사파리)을 위해, 당신은 간단한 드롭 다운 메뉴를 사용합니다 : 아이폰에 상응하는 무엇이든 추측

<select> 
<option>Country 1</option> 
<option>Country 2</option> 
... 
<option>Country N</option> 
</select> 

을 SDK도 똑같이 작동해야합니다.

2

사용자 정의 구성 요소보기가있는 선택기를 사용하면 비교적 쉽게 수행 할 수 있습니다. 인스턴스 변수를 사용하여 선택한 행을 추적하고 이에 따라 레이블의 색상을 변경하십시오. 체크 표시를 포함 시키려면 간단한 UILabel이 아닌 UIView의 사용자 정의 하위 클래스를 사용하십시오.

 

@interface ViewContainingPicker 
{ 
    NSUInteger mySelectedRow; 
} 
@end 

@implementation ViewContainingPicker 

// Init, Picker setup, etc 
- (UIPickerView *)myPickerView 
{ 
    // Create picker, set mySelectedRow to NSNotFound 
    mySelectedRow = NSNotFound; 
    return myPickerView; 
} 

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 
{ 
    UILabel *label = (UILabel *)view; 

    if (nil == label) { 
     UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, PICKER_WIDTH, PICKER_ROW_HEIGHT)] autorelease]; 
    } 

    label.text = @"Label for this row"; 

    // Selected Row will be blue 
    if (row == mySelectedRow) { 
     label.textColor = [UIColor blueColor]; 
    } else { 
     label.textColor = [UIColor blackColor]; 
    } 

    return label; 
} 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    // Just set selected component and reload, color will change in dataSource pickerView:viewForRow:forComponent:reusingView: 
    mySelectedRow = row; 
    [pickerView reloadComponent:component]; 
} 
 
관련 문제