加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

类似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];  
}  

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读