UITextField klaviaturasını aktivləşdirərkən görünüşü hərəkət etdirin

Növbəti problem mənim UITextField ı aktivləşdirdiyində baş verir (daha yaxşı bir mənbə kimi which is nested within my UITableViewController which is nested within my tryUIView-dən daha bir neçə şəkilləri göstərsəm yaxşı olar.

Yikes bu məsələni sadəcə silə bilər. lənət olsun

-11
01 авг. Apollo 01 Avqustda. 2013-08-01 03:16 '13 'da 3:16' də 2013-08-01 03:16
@ 3 cavab

Anladığım qədər, UITextField ilk cavabverici olduğunda (yəni, görünüşü klaviatura əlavə edərkən) bütün görünüşü hərəkət etməyə çalışırsınız? Əgər belədirsə, kodunu UITextField nümayəndə üsuluna əlavə edərdim:

 #define VIEW_TAG 12345 #define kKeyboardOffsetY 80.0f - (void)textFieldDidBeginEditing:(UITextField *)textField { // get a reference to the view you want to move when editing begins // which can be done by setting the tag of the container view to VIEW_TAG UIView *containerView = (UIView *)[self.view viewWithTag:VIEW_TAG]; [UIView animateWithDuration:0.3 animations:^{ containerView.frame = CGRectMake(0.0f, -kKeyboardOffsetY, containerView.frame.size.width, containerView.frame.size.height); }]; } - (void)textFieldDidEndEditing:(UITextField *)textField { UIView *containerView = (UIView *)[self.view viewWithTag:VIEW_TAG]; [UIView animateWithDuration:0.3 animations:^{ containerView.frame = CGRectMake(0.0f, self.view.frame.origin.y, containerView.frame.size.width, containerView.frame.size.height); }]; } 

GörünüşWithTag metodundan istifadə etməli deyilsiniz, ancaq kontraktı görünüşünə istinad etməlisiniz, bu da subviews vasitəsilə yineleyerek edilə bilər.

1
01 авг. Cavab verilir manderson 01 aug. 2013-08-01 03:42 '13 at 3:42 2013-08-01 03:42

Mən bunu yaxşı görünmək üçün cizgi etdi.

Klaviatura hündürlüyü 216 pikseldir və onu dayandırmaq lazımdır .25s.

Burada kodumun bir hissəsi:

border=0
 -(void)textFieldDidBeginEditing:(UITextField *)textField { if (textField.tag == 2) { void (^a)(void) = ^(void){ [UIView animateWithDuration:.25 animations:^{ RegNrView.frame = CGRectMake(0, -216, 320, 460); } completion:nil]; }; [[NSOperationQueue mainQueue] addOperationWithBlock:a]; } 

}

Bu UIView və klaviatura eyni zamanda hərəkət etməyə imkan verir.

0
01 авг. cavab verildi Arbitur 01 av . 2013-08-01 03:31 '13 saat 03:31 'da 2013-08-01 03:31

Klaviatura göründüyü zaman, masanın hündürlüyünü tənzimləyin.

Layihəmdən bir nümunə.

Birincisi: klaviatura hadisələrini dinləmək:

 -(void) viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; //Be informed of keyboard [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardDidHideNotification object:nil]; } #pragma mark keyboard - (void)keyboardDidShow:(NSNotification *)notification { NSDictionary *userInfo = [notification userInfo]; CGSize size = [[userInfo objectForKey: UIKeyboardFrameEndUserInfoKey] CGRectValue].size; CGRect frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width, self.tableView.frame.size.height - size.height); self.tableView.frame = frame; } - (void)keyboardWillHide:(NSNotification *)notification { NSDictionary *userInfo = [notification userInfo]; CGSize size = [[userInfo objectForKey: UIKeyboardFrameEndUserInfoKey] CGRectValue].size; self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width, self.tableView.frame.size.height + size.height); } 
0
01 авг. Mitchell Currie tərəfindən verilmiş cavab Aug 01 2013-08-01 03:21 '13 at 3:21 2013-08-01 03:21

bağlı digər suallar və ya bir sual