我们经常都会看到一个工具栏在屏幕底部,然后会随着键盘出来上移,一直都是贴着键盘似的。比如下面这个,其实很多软件都有这种功能效果。
tixxh .gif
那我们怎么来实现呢,第一是编辑文本时候才需要弹出键盘,那么键盘有通知,那我们就使用通知来做这个功能。
第一步:添加通知,注意这里用UIKeyboardWillChangeFrameNotification的原因是因为键盘可能更换,比如英文键盘变成九宫格键盘,或者使用第三方键盘,这样高度就不能固定死
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keybardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
第二步:我们通过打印获取到我们需要的key
Snip20160930_18.png第三步:通知的那个方法中实现效果
- (void)keybardWillChangeFrame:(NSNotification *)note
{
NSLog(@"%@",note);
CGFloat keyboardH = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].origin.y;
CGFloat ScreenH = [UIScreen mainScreen].bounds.size.height;
self.bottomContrain.constant = ScreenH - keyboardH;
CGFloat duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
[UIView animateWithDuration:duration animations:^{
[self.view layoutIfNeeded];
}];
}
备注:
如果有不足或者错误的地方还望各位读者批评指正,可以评论留言,笔者收到后第一时间回复。
QQ/微信:2366889552 /lan2018yingwei。
简书号:凡尘一笑:[简书]
http://www.jianshu.com/users/0158007b8d17/latest_articles
感谢各位观众老爷的阅读,如果觉得笔者写的还凑合,可以关注或收藏一下,不定期分享一些好玩的实用的demo给大家。
文/凡尘一笑(简书作者)
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
网友评论