2010-10-14 8 views
1

Je rencontre un comportement étrange avec un UIPickerView:UIPickerView avec date de rotation dans une seule direction

Je suis en train de montrer une date Allez dans une feuille d'action. Tout fonctionne bien, sauf que les roues ne tournent que dans un sens dans un premier temps!

Si vous commencez à tourner et à changer de direction, cela fonctionne. Mais lorsque vous essayez de commencer à tourner, le sélecteur ne bouge pas.

Voici mon code:

UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker" 
                delegate:self 
             cancelButtonTitle:@"Abbrechen" 
            destructiveButtonTitle:nil 
             otherButtonTitles:@"Auswählen",nil];  
    // Add the picker 
    UIDatePicker *tmpPickerView = [[UIDatePicker alloc] init]; 
    tmpPickerView.datePickerMode = UIDatePickerModeDate; 

    [tmpPickerView addTarget:self 
    action:@selector(pickerChanged:) 
    forControlEvents:UIControlEventValueChanged]; 

    [menu addSubview:tmpPickerView];    
    [menu showInView:self];   

    CGRect menuRect = menu.frame; 
    menuRect.origin.y -= 214; 
    menuRect.size.height = 300; 
    menu.frame = menuRect; 

    CGRect pickerRect = pickerView.frame; 
    pickerRect.origin.y = 174; 
    pickerView.frame = pickerRect; 

    [tmpPickerView release];  
    [menu release]; 

Répondre

0

Le problème est que le UIDatePicker prolonge au-delà des limites de la UIActionSheet, que vous pouvez voir si vous définissez

menu.clipsToBounds = YES;

Pour redimensionner les éléments de manière appropriée, modifiez le code de redimensionnement de l'image en

CGRect pickerRect = tmpPickerView.frame; 
CGRect menuRect = menu.frame; 

pickerRect.origin.y = menuRect.size.height; 
menuRect.size.height = menuRect.size.height + pickerRect.size.height; 
menuRect.origin.y = menuRect.origin.y - pickerRect.size.height; 

menu.frame = menuRect;  
tmpPickerView.frame = pickerRect;