热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

设置UIWebView内容时不显示键盘时移动-SetUIWebViewContentnottomovewhenkeyboardisshown

Ivedonelargeenoughresearchbutcouldntfindanswertomyquestion.我做了足够大的研究,但找不到我的问题的答案。Sup

I've done large enough research but couldn't find answer to my question.

我做了足够大的研究,但找不到我的问题的答案。

Suppose I have a webView in which I have some text fields, some of them are placed on the bottom of screen so that when keyboard appears it should hide that fields. After keyboard appears the content of webView slides up in order to make that fields visible. The problem is that I DON'T want the content to slide up.

假设我有一个webView,其中我有一些文本字段,其中一些放在屏幕的底部,这样当键盘出现时它应该隐藏那些字段。键盘出现后,webView的内容会向上滑动,以使这些字段可见。问题是我不希望内容向上滑动。

Question is: How can I disable that feature of webview , or somehow make the content not scroll up.???

问题是:如何禁用webview的该功能,或以某种方式使内容不向上滚动。???

Thanks, any help would be appreciated.

谢谢,任何帮助将不胜感激。

3 个解决方案

#1


17  

If you want to disable ALL scrolling, including the auto-scroll when you navigate between form fields, setting webView.scrollView.scrollEnabled=NO doesn't quite cover everything. That stops normal tap-and-drag scrolling, but not the automatic bring-field-into-view scrolling when you navigate around a web form.

如果要禁用所有滚动,包括在表单字段之间导航时自动滚动,则设置webView.scrollView.scrollEnabled = NO并不能完全覆盖所有内容。这样可以在浏览Web表单时停止正常的点击并拖动滚动,但不会停止自动带入场视图滚动。

Also, watching for UIKeyboardWillShowNotification will let you prevent scrolling when the keyboard appears, but that will do nothing if the keyboard is already up from editing a different form field.

此外,观看UIKeyboardWillShowNotification将阻止您在键盘出现时滚动,但如果键盘已经编辑不同的表单字段,则无法执行任何操作。

Here's how to prevent ALL scrolling in three simple steps:

以下是如何通过三个简单步骤来防止所有滚动:

1) After you create the UIWebView, disable normal scrolling:

1)创建UIWebView后,禁用正常滚动:

myWebView.scrollView.scrollEnabled = NO;

2) Then register your view controller as the scrollView's delegate:

2)然后将视图控制器注册为scrollView的委托:

myWebView.scrollView.delegate = self;

(And make sure to add to your class's @interface definition to prevent compiler warnings)

(并确保将 添加到类的@interface定义以防止编译器警告)

3) Capture and undo all scroll events:

3)捕获和撤消所有滚动事件:

// UIScrollViewDelegate method
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    scrollView.bounds = myWebView.bounds;
}

#2


0  

I think this class should help with your problem. It scrolls content up, so if u have textfield at the bottom of the screen, it will move it above the keyboard.

我认为这堂课应该有助于解决你的问题。它会向上滚动内容,因此如果您在屏幕底部有文本字段,它会将其移动到键盘上方。

#3


0  

I found the solution for me. I just scroll it down again after scrolling up. First I catch notification UIKeyboardWillShowNotification by adding observer to it [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; then implement method:

我找到了解决方案。我向上滚动后再向下滚动它。首先我通过添加观察者来捕获通知UIKeyboardWillShowNotification [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow :) name:UIKeyboardWillShowNotification object:nil];然后实现方法:

-(void)keyboardWillShow:(NSNotification*)aNotification{
NSDictionary* info = [aNotification userInfo];
float kbHeight = [[NSNumber numberWithFloat:[[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size.height]floatValue];
float kbWidth = [[NSNumber numberWithFloat:[[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size.width]floatValue];
BOOL keyboardIsVisible=[self UIKeyboardIsVisible];
//Check orientation and scroll down webview content by keyboard size
if(kbWidth==[UIScreen mainScreen].bounds.size.width){
    if (!keyboardIsVisible) {
        [[chatView scrollView] setContentOffset:CGPointMake(0, -kbHeight+10) animated:YES];
    } //If is landscape content scroll up is about 113 px so need to scroll down by 113
}else if (kbHeight==[UIScreen mainScreen].bounds.size.height){
    if (!keyboardIsVisible) {
        [[chatView scrollView] setContentOffset:CGPointMake(0, -113) animated:YES];
    }
}
}

This is not what exactly I asked but helped me to solve my problem.

这不是我要求的,但帮助我解决了我的问题。

Thanks.

谢谢。


推荐阅读
  • 本文探讨了如何通过WebBrowser控件在用户点击输入框时自动显示图片验证码。该过程可能涉及JavaScript事件的触发与响应。 ... [详细]
  • 本文详细介绍了如何在iOS5中创建和理解简单的Hello World应用,包括Interface Builder的使用、Objective-C源代码文件的结构以及事件处理机制。 ... [详细]
  • 本文旨在探讨Swift中的Closure与Objective-C中的Block之间的区别与联系,通过定义、使用方式以及外部变量捕获等方面的比较,帮助开发者更好地理解这两种机制的特点及应用场景。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 探讨了在 Spring MVC 框架下,JSP 页面使用 标签时遇到的数据无法正确显示的问题,并提供了可能的原因和解决方案。 ... [详细]
  • 本文详细介绍了Java的安装、配置、运行流程以及有效的学习方法,旨在帮助初学者快速上手Java编程。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
  • 纵向|发生_ListView和EditText使用解决方案 ... [详细]
  • 作为一名在大型手机游戏公司工作的程序员,尽管主要负责游戏逻辑和内容的开发,但对iOS底层开发接触较少。现在有了iPhone和可以虚拟MAC环境的电脑,希望能找到有效的iOS开发学习路径。 ... [详细]
  • 欢迎学习交流!!!持续更新中…文章目录页面生成过程渲染重排与重绘的比较重排(reflow)常见引起重排的属性和方法重排影响的范围尽可能减少 ... [详细]
  • 本文探讨了一个项目中遇到的挑战,即如何通过技术手段解决不同菜单项触发时,跨域IFrame页面的高度自适应问题。通过创建中介页面和利用JavaScript与Cookie机制,实现无缝的用户体验。 ... [详细]
  • 使用Objective-C实现苹果官方NSLayoutConstraint页面布局
    本文详细介绍了如何在iOS开发中使用Objective-C语言通过NSLayoutConstraint来实现页面布局。示例代码展示了如何创建和应用约束,以确保界面元素能够正确地响应不同屏幕尺寸的变化。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
author-avatar
国国国国涛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有