2010-03-12 4 views
4

J'ai besoin d'utiliser un sélecteur de date dans ma demande. J'ai beaucoup de contrôles à mon avis que .. je ne peux pas ajouter le sélecteur de date avec la taille par défaut. Quelqu'un peut-il s'il vous plaît me suggérer comment puis-je réduire la taille du sélecteur? je l'ai essayé avec Ib, mais l'option de taille est désactivée dans IB?Comment changer la taille de Date Picker dans l'application iPhone?

Répondre

4

Vous pouvez changer la taille de votre datepicker en changeant le cadre de DatepIcker, mais cela coupera la plupart du datpicker et ce n'est pas une bonne idée. Essayez d'ajouter votre outil datepicker dans une vue modale à la place.

2

Au meilleur de ma connaissance, vous ne pouvez pas.

3

Si vous créez UIPickerView dans votre code, vous pouvez utiliser -initWithFrame pour définir son cadre explicitement (voir this question) - dans la réponse fournie, il a déclaré que certains « défauts visuels » peuvent apparaître avec cette approche.

En deuxième option, vous pouvez régler le châssis du sélecteur en appliquant CGAffineTransform approprié (je ne l'ai pas testé beaucoup, mais il semble fonctionner très bien):

picker.transform = CGAffineTransformMake(0.5, 0, 0, 0.5, -80, 0); 

Cette échelles code (un peu factice) UIPickerView à une demi-taille et applique la traduction pour placer le sélecteur sur le côté gauche de l'écran. Vous pouvez jouer avec différentes valeurs de transformation pour obtenir l'effet que vous voulez.

Modifier: Le code ci-dessus fonctionne pour UIDatePickerView ainsi (désolé n'a pas été attentif à une question). Mais comme d'autres ont déclaré qu'Apple n'avait pas rendu le cadre du sélecteur (facilement) personnalisable, cela pourrait signifier que vous devriez envisager de modifier votre conception pour essayer d'utiliser le sélecteur dans sa taille appropriée pour se conformer au HIG d'Apple.

1

Utiliser setFrame:(CGRect)inRect API de la vue sélecteur dans la méthode viewDidLoad. Mais je ne sais pas si vous pouvez redimensionner DatePicker !!!

1

Vous pouvez modifier la taille de la vue du sélecteur à l'aide de CGAffineTransform. Créez un nouvel UIView et appliquez la transformation. puis ajoutez la vue du sélecteur au nouvel UIView. Ensuite, ajoutez ceci à votre vue principale.

UIView* transformView = [[UIView alloc] initWithFrame:CGRectMake(75.0f, 344.0f, self.pickerView.frame.size.width, self.pickerView.frame.size.height)]; 
    transformView.transform = CGAffineTransformMakeScale(0.60f, 0.60f); 
    [transformView addSubview:self.pickerView]; 
    [self.view addSubview:transformView]; 

Mais aacording à la documentation d'Apple,

Un sélecteur est une version générique du sélecteur de date. Comme avec un sélecteur de date, les utilisateurs font tourner la roue (ou les roues) d'un sélecteur jusqu'à ce que la valeur souhaitée apparaisse. La taille globale d'un sélecteur, y compris son arrière-plan, est fixée à la même taille que le clavier sur l'iPhone.

Lien: https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556-CH13-SW1

Questions connexes