搜索功能页面底部内容被遮挡了吗?不用怕

问题:有时我们在做APP的搜索功能时,搜索主页大概是这个样式的?底部的热门搜索部分在SE的机型里,会出现被遮挡的情况。这时我们就不能通过IQKeyboardManager来解决了。因为我用的是UISearchBar, 所以刚开始以为不是直接的UITextField,IQKeyboardManager会不起作用。然后我在顶部加上了一个textField作为测试,还是没有效果。于是我只能自己通过监听的方式,当键盘弹起或者消失的时候,去改变我的滚动视图的contentInset。
image
关键代码
- (void)keyboardWillShow:(NSNotification *)aNotification
{
    //获取键盘的高度
    NSDictionary *userInfo = [aNotification userInfo];
    NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [aValue CGRectValue];
    self.keyboardHeight = keyboardRect.size.height;
    
    //解决SE机型还有键盘遮挡问题
    self.scrollview.contentInset = UIEdgeInsetsMake(0, 0, self.keyboardHeight, 0);
}

//当键退出时调用
- (void)keyboardWillHide:(NSNotification *)aNotification
{
    self.keyboardHeight = 0;
    
    //解决SE机型还有键盘遮挡问题
    self.scrollview.contentInset = UIEdgeInsetsMake(0, 0, self.keyboardHeight, 0);
}
最终效果
根据键盘高度设置后的效果
键盘退出后效果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容