ios首次加载web_IOS_IOS中UIWebView的使用详解,一、初始化与三种加载方式 UI - phpStudy...
IOS中UIWebView的使用详解
一、初始化与三种加载方式
UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种:
第一种:
- (void)loadRequest:(NSURLRequest *)request;
这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如我加载百度的主页:
UIWebView * view = [[UIWebView alloc]initWithFrame:self.view.frame];
[view loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
[self.view addSubview:view];
会得到如下的效果:
第二种:
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
这个方法需要将httml文件读取为字符串,其中baseURL是我们自己设置的一个路径,用于寻找html文件中引用的图片等素材。
第三种:
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
这个方式使用的比较少,但也更加自由,其中data是文件数据,MIMEType是文件类型,textEncodingName是编码类型,baseURL是素材资源路径。
二、一些常用的属性和变量
@property (nonatomic, assign) id delegate;
设置webView的代理
@property (nonatomic, readonly, retain) UIScrollView *scrollView;
内置的scrollView
@property (nonatomic, readonly, retain) NSURLRequest *request;
URL请求
- (void)reload;
重新加载数据
- (void)stopLoading;
停止加载数据
- (void)goBack;
返回上一级
- (void)goForward;
跳转下一级
@property (nonatomic, readonly, getter=canGoBack) BOOL canGoBack;
获取能否返回上一级
@property (nonatomic, readonly, getter=canGoForward) BOOL canGoForward;
获取能否跳转下一级
@property (nonatomic, readonly, getter=isLoading) BOOL loading;
获取是否正在加载数据
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
通过javaScript操作web数据
@property (nonatomic) BOOL scalesPageToFit;
设置是否缩放到适合屏幕大小
@property (nonatomic) UIDataDetectorTypes dataDetectorTypes NS_AVAILABLE_IOS(3_0);
设置某些数据变为链接形式,这个枚举可以设置如电话号,地址,邮箱等转化为链接
@property (nonatomic) BOOL allowsInlineMediaPlayback NS_AVAILABLE_IOS(4_0);
设置是否使用内联播放器播放视频
@property (nonatomic) BOOL mediaPlaybackRequiresUserAction NS_AVAILABLE_IOS(4_0);
设置视频是否自动播放
@property (nonatomic) BOOL mediaPlaybackAllowsAirPlay NS_AVAILABLE_IOS(5_0);
设置音频播放是否支持ari play功能
@property (nonatomic) BOOL suppressesIncrementalRendering NS_AVAILABLE_IOS(6_0);
设置是否将数据加载如内存后渲染界面
@property (nonatomic) BOOL keyboardDisplayRequiresUserAction NS_AVAILABLE_IOS(6_0);
设置用户交互模式
三、iOS7中的一些新特性
下面这些属性是iOS7之后才有的,通过他们可以设置更加有趣的web体验
@property (nonatomic) UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);
这个属性用来设置一种模式,当网页的大小超出view时,将网页以翻页的效果展示,枚举如下:
typedef NS_ENUM(NSInteger, UIWebPaginationMode) {
UIWebPaginationModeUnpaginated,//不使用翻页效果
UIWebPaginationModeLeftToRight,//将网页超出部分分页,从左向右进行翻页
UIWebPaginationModeTopToBottom,//将网页超出部分分页,从上向下进行翻页
UIWebPaginationModeBottomToTop,//将网页超出部分分页,从下向上进行翻页
UIWebPaginationModeRightToLeft//将网页超出部分分页,从右向左进行翻页
};
@property (nonatomic) CGFloat pageLength NS_AVAILABLE_IOS(7_0);
设置每一页的长度
@property (nonatomic) CGFloat gapBetweenPages NS_AVAILABLE_IOS(7_0);
设置每一页的间距
@property (nonatomic, readonly) NSUInteger pageCount NS_AVAILABLE_IOS(7_0);
获取分页数
四、webView协议中的方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
准备加载内容时调用的方法,通过返回值来进行是否加载的设置
- (void)webViewDidStartLoad:(UIWebView *)webView;
开始加载时调用的方法
- (void)webViewDidFinishLoad:(UIWebView *)webView;
结束加载时调用的方法
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
加载失败时调用的方法相关阅读:
C#实现简单的Http请求实例
Windows 10 Build 10147有哪些变化?改进UI与应用体验
.Net 项目代码风格要求小结
php读取csv文件并输出的方法
php中sql注入漏洞示例 sql注入漏洞修复
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
javascript事件模型介绍
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
C#实现Datatable排序的方法
Win10双显示器怎么设置给显示屏设置不同的壁纸?
解读ASP.NET 5 & MVC6系列教程(3):项目发布与部署
深入Understanding Android ContentProvider详解
非常实用的小功能 Android应用版本的更新实例
CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享
ios首次加载web_IOS_IOS中UIWebView的使用详解,一、初始化与三种加载方式 UI - phpStudy...相关推荐
- WinDBG详解进程初始化dll是如何加载的
一:背景 1.讲故事 有朋友咨询个问题,他每次在调试 WinDbg 的时候,进程初始化断点之前都会有一些 dll 加载到进程中,比如下面这样: Microsoft (R) Windows Debugg ...
- iOS开发——加载、滑动翻阅大量图片解决方案详解
目录(?)[-] 常规思路流程 使用低分辨率图 多线程任务 优化快速翻阅体验 最后还一个砍儿 加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的 ...
- iOS开发——加载、滑动翻阅大量图片解决方案详解 .
加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏 ...
- iOS中MVC等设计模式详解
iOS中MVC等设计模式详解 在iOS编程,利用设计模式可以大大提高你的开发效率,虽然在编写代码之初你需要花费较大时间把各种业务逻辑封装起来.(事实证明这是值得的!) 模型-视图-控制器(MVC)设计 ...
- Entity Framework关联实体的三种加载方法
推荐文章 EF性能之关联加载 总结很好 一:介绍三种加载方式 Entity Framework作为一个优秀的ORM框架,它使得操作数据库就像操作内存中的数据一样,但是这种抽象是有性能代价的,故鱼和熊掌 ...
- 加载、滑动翻阅大量图片解决方案详解
加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏 ...
- html5代码转换为视频,HTML5中的视频代码详解
摘要 腾兴网为您分享:HTML5中的视频代码详解,智学网,云闪付,易推广,小红书等软件知识,以及360win10,流量魔盒,fitbit,上港商城,安卓2.3.7,全民惠,五年级下册英语单词表图片,t ...
- python中的super用法详解_【Python】【类】super用法详解
一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...
- JS ES6中export和import详解
1.Export 模块是独立的文件,该文件内部的所有的变量外部都无法获取.如果希望获取某个变量,必须通过export输出, // profile.js export var firstName = ' ...
最新文章
- bootstrap 时间日期日历控件(datetimepicker)附效果图
- c#用正则表达式获得指定开始和结束字符串中间的一段文本
- C++11与设计模式的交流
- ROS: Ubuntu16.04安装ROS-kinetic
- jboss url路径_在JBoss的服务器端正确解码URL参数
- 为什么人会摆高姿态_为什么感情相处中不要随意掏心掏肺?
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]50.什么是BLS基于对的签名方案?
- pytorch入门学习(三) 神经网络
- linux修改参数命令,linux chfn命令参数及用法详解(linux修改用户资料命令)
- Python题库编程记录
- 非线性光纤光学——四波混频
- caj安装,win10,错误1372。无效驱动器:D:\ (解决方案大全总结)
- qq邮箱sina邮箱服务器拒绝,为什么有的qq邮箱,新浪这边邮不过去呢?
- 电脑误删wps文件怎么恢复?介绍4个解决方法
- 1227. 飞机座位分配概率
- 『TensorFlow』pad图片
- 傅里叶级数用matlab,傅里叶级数展开matlab实现
- 电脑桌面切屏的快捷键
- 笔刷分享|每个建模人都在用的笔刷合集
- 报错:Entering emergency mode. Exit the shell to continue 解决
热门文章
- 【BZOJ2325】[ZJOI2011]道馆之战 线段树+树链剖分
- 2.从入口开始学习StarForce
- choose when 改在java中_Mybatis choose when用法实例代码
- Unity+C#开发笔记(四)| 如何判断两次按键的时间间隔 | ╭(●`∀´●)╯╰(●’◡’●)╮
- 设计模式的艺术 行为型模式之备忘录模式
- QQ空间打不开的解决方案
- 世界上为什么有红绿灯?|【常垒·常识】
- 实验六——PE病毒分析
- 使用说明二维码怎么做?二维码制作教程分享
- Linux 打印文件某几行