类似iPhone键盘出现动画的达成
发布时间:2021-11-24 15:50:43 所属栏目:PHP教程 来源:互联网
导读:用显示键盘动画的方式来显示DatePicker 1.显示DatePicker [plain] - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *targetCell = [tableView cellForRowAtIndexPath:indexPath]; self.pic
用显示键盘动画的方式来显示DatePicker 1.显示DatePicker [plain] - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *targetCell = [tableView cellForRowAtIndexPath:indexPath]; self.pickerView.date = [self.dateFormatter dateFromString:targetCell.detailTextLabel.text]; // 查看DatePicker是否显示在屏幕上 if (self.pickerView.superview == nil) { [plain] // 添加选取器到屏幕上 [plain] [self.view.window addSubview: self.pickerView]; // size up the picker view to our screen and compute the start/end frame origin for our slide up animation // // 计算DatePicker初始的Frame CGRect screenRect = [[UIScreen mainScreen] applicationFrame]; CGSize pickerSize = [self.pickerView sizeThatFits:CGSizeZero]; CGRect startRect = CGRectMake(0.0, screenRect.origin.y + screenRect.size.height, pickerSize.width, pickerSize.height); self.pickerView.frame = startRect; // compute the end frame CGRect pickerRect = CGRectMake(0.0, screenRect.origin.y + screenRect.size.height - pickerSize.height, pickerSize.width, pickerSize.height); // start the slide up animation [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.3]; // we need to perform some post operations after the animation is complete [UIView setAnimationDelegate:self]; self.pickerView.frame = pickerRect; // shrink the table vertical size to make room for the date picker CGRect newFrame = self.tableView.frame; newFrame.size.height -= self.pickerView.frame.size.height; self.tableView.frame = newFrame; [UIView commitAnimations]; // add the "Done" button to the nav bar self.navigationItem.rightBarButtonItem = self.doneButton; } 2.消除DatePicker [plain] - (IBAction)doneAction:(id)sender { CGRect screenRect = [[UIScreen mainScreen] applicationFrame]; CGRect endFrame = self.pickerView.frame; endFrame.origin.y = screenRect.origin.y + screenRect.size.height; // start the slide down animation [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.3]; // we need to perform some post operations after the animation is complete [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(slideDownDidStop)]; self.pickerView.frame = endFrame; [UIView commitAnimations]; // grow the table back again in vertical size to make room for the date picker CGRect newFrame = self.tableView.frame; newFrame.size.height += self.pickerView.frame.size.height; self.tableView.frame = newFrame; // remove the "Done" button in the nav bar self.navigationItem.rightBarButtonItem = nil; // deselect the current table row NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; } 3.从父视图移除 [plain] - (void)slideDownDidStop { // the date picker has finished sliding downwards, so remove it [self.pickerView removeFromSuperview]; } ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |