键盘弹起与隐藏时高度的获取及动画 适配所有iOS系统

- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    //监听键盘事件

    if ([[[UIDevice currentDevice] systemVersion] compare:@"5.0"] < 0) {

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardChangeCallBack:) name:UIKeyboardWillShowNotification object:nil]; //键盘弹出事件

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardChangeCallBack:) name:UIKeyboardWillHideNotification object:nil]; //键盘收起事件

    } else { //5.0.X回应changeFrame事件,5.1.x回应willShow事件和changeFrame事件,

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardChangeCallBack:) name:UIKeyboardWillShowNotification object:nil]; //键盘弹出事件

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardChangeCallBack:) name:UIKeyboardWillChangeFrameNotification object:nil]; //键盘区域变更事件

    }

    if ([CustomView canBecomeFirstResponder] && ![CustomView isFirstResponder]) {

        [CustomView becomeFirstResponder];

    }

}


//键盘事件回调

- (void)keyboardChangeCallBack:(NSNotification *)notification {

    NSDictionary *userInfo = [notification userInfo];

    CGRect keyboardFrame = [[userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];

    CGFloat keyboardDuration = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];

    UIViewAnimationCurve keyboardCurve = [[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue];

    

    [UIView beginAnimations:@"keyboardAnimation" context:nil];

    [UIView setAnimationBeginsFromCurrentState:TRUE];

    [UIView setAnimationDuration:keyboardDuration];

    [UIView setAnimationCurve:keyboardCurve];

    CGRect textViewRect = CustomView.frame;

    textViewRect.size.height = CGRectGetMinY(keyboardFrame) - 40 - CGRectGetHeight(self.navigationController.navigationBar.frame);

    CustomView.frame = textViewRect;

    [UIView commitAnimations];

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
超签级签名系统是一种用于对iOS应用进行签名分发的系统,它的目标是在iOS 15.2系统上实现性。iOS 15.2签名分发系统是苹果公司推出的一种应用分发管理工具,为开发者和用户提供了更方便的应用下载和更新方式。 为了iOS 15.2签名分发系统,超签级签名系统需要进行以下方面的工作: 首先,超签级签名系统需要确保与iOS 15.2系统的应用签名机制兼容。在iOS 15.2系统中,苹果可能对签名相关的算法或规则进行了更新和修改,因此超签级签名系统需要相应地进行更新,以确保应用的签名有效性和安全性。 其次,超签级签名系统需要与iOS 15.2签名分发系统进行集成。这意味着超签级签名系统需要与iOS 15.2签名分发系统进行连接和通信,以便于应用的分发和更新工作。这需要在系统级别进行和调整,确保两个系统之间的数据交互和功能兼容性。 此外,超签级签名系统还需要iOS 15.2系统的用户界面和用户体验。随着iOS系统的版本升级,用户界面的设计和交互方式可能会发生变化,因此超签级签名系统需要根据iOS 15.2系统的设计准则进行相应调整,保证用户在使用过程中的良好体验。 最后,超签级签名系统还应该跟随iOS 15.2系统的更新进行持续的和优化工作。随着iOS系统的升级,苹果可能会引入新的功能和特性,超签级签名系统需要及进行更新和调整,以保持与iOS系统高度兼容性。 总之,为了iOS 15.2签名分发系统,超签级签名系统需要进行各个方面的调整和工作,包括与iOS系统的签名机制兼容、与iOS 15.2签名分发系统集成、用户界面和用户体验的设计、以及持续跟随系统更新进行优化等。这样可以保证超签级签名系统iOS 15.2系统上的正常运作和应用分发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值