Quelqu'un a posté ce code dans une autre question de mettre un UIDatePicker dans un UIAlertSheet:UIDatePicker dans UIActionSheet problème superposant
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:nil];
// Add the picker
UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeDate;
[menu addSubview:pickerView];
[menu showInView:self.view];
[menu setBounds:CGRectMake(0,0,320, 500)];
CGRect pickerRect = pickerView.bounds;
pickerRect.origin.y = -100;
pickerView.bounds = pickerRect;
[pickerView release];
[menu release];
J'ai modifié à ceci:
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:nil
delegate:nil
cancelButtonTitle:@"Done"
destructiveButtonTitle:nil
otherButtonTitles:nil];
// Add the picker
UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeCountDownTimer;
[menu addSubview:pickerView];
[menu showInView:self.navigationController.tabBarController.view];
[menu setBounds:CGRectMake(0,0,320, 516)];
[pickerView setFrame:CGRectMake(0, 85, 320, 216)];
Cela donne correctement une feuille d'alerte positionné (ignorer le délégué nil, ceci est juste à des fins d'affichage). Le problème est ici:
alt text http://hosting-wizards.com/actionsheet.jpg
Comme vous pouvez le voir, au-dessus de la barre de défilement de minutes, il y a un problème de stratification. Je n'ai pas confirmé si cela se produit sur l'appareil. Des idées sur la raison pour laquelle cela se produit?
Une autre question: Pourquoi le sélecteur setBounds de la feuille UIActionSheet a-t-il la valeur Y définie à une valeur si élevée pour un affichage correct? Définir la taille Y à 480 devrait créer un affichage en plein écran, n'est-ce pas? Mettre cette valeur à zéro la rend presque invisible. CÔTÉ NOTE: Le code collé ci-dessus ne positionne pas le UIDatePicker au même endroit que dans l'image, mais le problème de superposition se produit quel que soit l'emplacement de UIDatePicker. Le problème de stratification est uniquement en haut, pas en bas.
inputView est disponible dans iOS 4.0 et versions ultérieures. Vous ne pouvez pas l'utiliser si vous voulez soutenir 3.1 –