2016-02-17 2 views
1

J'ai utilisé le sélecteur de date à la place du clavier. Et barre d'interface utilisateur Bouton Avec ok, annuler et espace flexible. Mais il ne répond pas lorsque je passe du mode Portrait au mode LandScape.Barre d'outils redimensionnable avec bouton de barre sur UIDate Picker

Barre d'outils: -

UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)]; 
    toolbar.barStyle=UIBarStyleBlackTranslucent; 


    cancelBtn=[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:nil]; 
    flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 
    doneBtn = [[UIBarButtonItem alloc]initWithTitle:@"OK"style:UIBarButtonItemStyleDone target:self action:nil]; 

    [toolbar setItems:[NSArray arrayWithObjects:cancelBtn,flexible,doneBtn,nil]]; 


    [toolbar sizeToFit]; 
    _txt_dob.inputAccessoryView=datePicker; 

UIDate Picker: -

datePicker = [[UIDatePicker alloc] init]; 
    datePicker.datePickerMode = UIDatePickerModeDate; 
    [_txt_dob setInputView:datePicker]; 
    [datePicker addSubview:toolbar]; 

Portrait Mode

PAYSAGE Mode de simulateur. LandScape Mode

+0

Utilisez-vous l'autolayout? –

+0

Définir le cadre de la barre d'outils dans la vue 'viewWillLayoutSubviews()' –

+0

@ Er.ShreyanshShah La largeur de la barre d'outils est self.view.frame.size.width. –

Répondre

1

N'initialisez pas votre UIToolBar avec le cadre. Au lieu de cela, utilisez NSLayoutConstraint entre votre UIToolBar et sa vue parente pour l'étirer complètement. De cette façon, il répondra bien aux changements d'orientation.