UIPicker как Subview - PullRequest
       5

UIPicker как Subview

0 голосов
/ 12 июля 2010

Я пытаюсь добавить UIPicker в качестве подпредставления, но не могу понять это. Я добавил второй элемент управления UIView с UIPickerview к моему пиру (NewWorkoutViewController.xib). Мой код выглядит следующим образом:

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView
{
    return 1;
}


-(NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component
{
    return [list count];
}


-(NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [list objectAtIndex:row];
}


-(void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    NSLog(@"Selected item: %@ index of selected item: %i", [list objectAtIndex:row], row);
}

-(void)viewDidLoad 
{
    [super viewDidLoad];
    counterInt = 0;

    list = [[NSMutableArray alloc] init];
    [list addObject:@"red"];
    [list addObject:@"blue"];
    [list addObject:@"yellow"];
    [list addObject:@"pink"];
}   

-(IBAction)routePicker
{   
    UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 480, 320, 216)];
    UIPickerView *thePickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,0,320,216)];
    [myView addSubview:thePickerView];
    [self.view.superview addSubview:myView];  
}

Мое подпредставление не появляется, как ожидалось.

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

Непонятно, почему вы добавляете средство выбора в код, если вы уже добавили его в IB ... Что касается отправленного вами кода, попробуйте добавить средство выбора в представление контроллера, а не в суперпредставление (и не забывайте установить его делегата):

-(IBAction)routePicker
{   
    UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 480, 320, 216)];
    UIPickerView *thePickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,0,320,216)];
    thePickerView.delegate = self;
    [myView addSubview:thePickerView];
    [self.view addSubview:myView];  
}

Редактировать: Вы инициализируете свой экземпляр myView с рамкой, которая, вероятно, находится за пределами видимой области (координата y начала кадра равна 480), попробуйте установить его на 0:

// Bad
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 480, 320, 216)];
// Good?
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 216)]; 
0 голосов
/ 13 июля 2010

Проверьте этот пример от Apple

Date Cell Picker

...