第11月第31天 keyboardwillshow CGAffineTransformMakeTranslation
2017-08-31 11:30
441 查看
1.
- (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)registerNotification { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showKeyboard:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideKeyboard:) name:UIKeyboardWillHideNotification object:nil]; } #pragma mark - keyboard - (void)showKeyboard:(NSNotification *)noti { NSDictionary *info=[noti userInfo]; NSTimeInterval duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; UIViewAnimationOptions options = [info[UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue] << 16; CGRect keyboardRect = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue]; CGFloat keyboardHeight = MIN(CGRectGetWidth(keyboardRect), CGRectGetHeight(keyboardRect)); [UIView animateWithDuration:duration delay:0 options:options animations:^{ CGFloat compareH = self.tableView.contentSize.height -(self.view.height - 45 - 64 - keyboardHeight); if (compareH > 0) { if (compareH < keyboardHeight) { self.tableView.transform = CGAffineTransformMakeTranslation(0, -compareH); } else { self.tableView.transform = CGAffineTransformMakeTranslation(0, -keyboardHeight); } } self.bottomView.transform = CGAffineTransformMakeTranslation(0, -keyboardHeight); } completion:nil]; } - (void)hideKeyboard:(NSNotification *)noti { NSDictionary *info=[noti userInfo]; NSTimeInterval duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; UIViewAnimationOptions options = [info[UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue] << 16; [UIView animateWithDuration:duration delay:0 options:options animations:^{ self.tableView.transform = CGAffineTransformIdentity; self.bottomView.transform = CGAffineTransformIdentity; } completion:nil]; }
相关文章推荐
- CGAffineTransformMakeTranslation和CGAffineTransformTranslate
- CGAffineTransformMakeTranslation的使用问题
- [原]CGAffineTransformMakeTranslation和CGAffineTransformTranslate、CGAffineTransformScale和CGAffineTransf
- CGAffineTransformMakeTranslation, CGAffineTransformTranslate, CGAffineTransformIdentity
- CGAffineTransformMakeTranslation, CGAffineTransformTranslate, CGAffineTransformIdentity
- CGAffineTransformMakeTranslation和CGAffineTransformTranslate、CGAffineTransformScale和CGAffineTransform
- CGAffineTransformMakeTranslation和CGAffineTransformTranslate
- IOS-相对移动(CGAffineTransformMakeTranslation()),动画UIViewAnimationOptions
- UIView 用法展示 CGAffineTransformIdentity CGAffineTransformMakeTranslation CGAffineTransformMakeScale
- CGAffineTransformMakeTranslation, CGAffineTransformTranslate, CGAffineTransformIdentity
- CGAffineTransformMakeTranslation和CGAffineTransformTranslate
- CGAffineTransformMakeTranslation、CGAffineTransformMakeScale和CGAffineTransformMakeRotation的使用
- CGAffineTransformMakeTranslation和CGAffineTransformTranslate
- CGAffineTransformMakeTranslation和CGAffineTransform
- CGAffineTransformMakeTranslation/CGAffineTransformTranslate的区别
- CGAffineTransformMake(a,b,c,d,tx,ty) 矩阵运算的原理
- CGAffineTransformMake(a,b,c,d,tx,ty) 矩阵运算的原理
- CGAffineTransformMakeRotation 实现旋转
- CGAffineTransformMake(a,b,c,d,tx,ty) 矩阵运算的原理
- 图片旋转的角度问题 CGAffineTransformMakeRotation