UI基础视图----UIWebView总结
UIWebView是UIKit框架中继承于UIView的一个常用的基础视图,和UILabel,UIImageView是兄弟类,用于展示一个网页。
UIWebView是一个可以设置代理的类,在加载的不同状态有对应的协议方法,可以进行业务层面的逻辑处理。
使用UIWebView可以做出一个简单的手机浏览器。
1:webView基本的属性和方法
核心方法就是loadRequest:,用于加载一个请求,就可以实现展示一个网页。
一个比较重要的属性是scalesPageToFit 缩放页面以适应屏幕。用于没有做移动端适配的网站来控制是否缩放
注意:封装网络请求的时候网址的http://协议不能省略。
- (void)viewDidLoad {
[super viewDidLoad];
//1:封装一个网络请求
NSString * urlString = @"http://www.cnblogs.com/zhangys";//网址是一个字符串
NSURL * url = [NSURL URLWithString:urlString];//把网址字符串转化为URL
NSURLRequest * request = [NSURLRequest requestWithURL:url];//把URL封装成一个网络请求
//2:实例化
UIWebView * webView = [[UIWebView alloc] initWithFrame:self.view.frame];//像普通视图一样实例化
//3:加载请求
[webView loadRequest:request];//webView的加载请求方法,把封装好的请求放进去
//4:设置代理为当前视图控制器
webView.delegate = self;
//5:缩放页面以适应屏幕
webView.scalesPageToFit = YES;
[self.view addSubview:webView];//UIView中层级关系很重要,不放在父视图上是显示不了的
}
2:代理方法
当前视图控制器遵守UIWebViewDelegate协议,并且设置当前视图控制器为UIWebView的代理,就可以实现这个协议里面的方法,协议方法有四个,都是可选的(optional),可以根据需要来实现。这里实现三个,开始加载,结束加载和加载失败。
注意:
想要使用UIWebView的协议,必须有三部分:
1:遵守协议(UIWebViewDelegate)
@interface ViewController () <UIWebViewDelegate> @end
2:设置代理
//4:设置代理为当前视图控制器
webView.delegate = self;
3:实现协议方法
#pragma mark - UIWebViewDelegate //开始加载数据时调用
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"开始加载数据");
}
//结束加载数据时调用
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"结束加载数据");
}
//加载失败时调用
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"加载失败");
}
注意:
iOS9中引入了新特性ATS(App Transport Security),新特性要求App内使用的网络必须使用HTTPS协议,如果接口服务器不支持HTTPS,那么是不能访问网络的。
为了网络安全,我们还是尽可能的改变服务器去支持HTTPS协议,当然,如果现在实现不了,可以使用以下方式来允许降级允许HTTP访问。
改变网络传输为任意加载。
方法为:右键info.plist,选择Open As,再选择Source Code,打开后,添加以下节点代码
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
最终显示效果为:屏幕上显示博客园我的博客主页,整个网页显示出来。
UI基础视图----UIWebView总结的更多相关文章
- IOS开发-UI基础-视图
//------------------------------UIWindow--------------------------// 1.UIWindow:是 UIView 的子类,用于管理.协调 ...
- UI基础视图----UIView总结
UIView是UIKit框架里面最基础的视图类,是UIResponder的子类,是UIApplication和UIViewController的兄弟类,是UIWindow,UILabel,UIImag ...
- UI基础视图----UIScrollView总结
UIScrollView是UIKit框架下的很重要的视图类,是UIView的子类.UILabel,UIImageView,UIWebView分别用于展示文字,图片,网页,UILabel通过属性text ...
- UI基础视图----UIImageView总结
UIImageView和UILabel一样,也是UIKit框架中非常常用的视图类.继承关系和UILabel完全一致(都是继承于UIView),功能也相似(用户交互都默认为关,主要用于展示),只不过UI ...
- UI基础视图----UILabel总结
UILabel是UIKit框架中非常常用的视图类,是UIView的子类,是UIWindow,UIImageView等的兄弟类,因为继承自UIView,所以继承了UIView中的属性和方法,大部分都可以 ...
- UI基础:视图控制器.屏幕旋转.MVC 分类: iOS学习-UI 2015-07-02 22:21 62人阅读 评论(0) 收藏
UIViewController 视图控制器,继承自UIResponder,作用:管理视图并且响应事件 功能: 1.分担APPdelegate的工作 2.实现模块独立,能提高复用性 创建UIViewC ...
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- Android UI基础教程 目录
从csdn下载了这本英文版的书之后,又去京东搞了一个中文目录下来.对照着看. 话说,这本书绝对超值.有money的童鞋看完英文版记得去买中文版的~~ Android UI基础教程完整英文版 pdf+源 ...
- UI基础UIButton
UI基础UIButton 前面写了UIWindow.UIViewController,那些都是一些框架,框架需要填充上具体的view才能组成我们的应用,移动应用开发中UI占了很大一部分,最基础的UI实 ...
随机推荐
- C# 导出word文档及批量导出word文档(2)
aspose.word主要是通过把读取出来的数据放到datatable里,在datable里做相应的格式的调整,再导出到word文档里.mvc和webform最后导出的语句略有不同,在mvc的cont ...
- C# \\u8888类型的unicode转换为字符串方法
1.双斜杠\\ 处理: 2.将编码分组,将编码转换为int,再转换为char. string sss = "\\u6c88\\u9633"; '; string[] arr = a ...
- js函数知识点
1.即使写成functon a()也是可以调用外面定义的变量的,写(a,b),我估计是为了降低耦合性 2.即使写成function a()也是可以用arguments[a]来默认写了(a,b) 3.在 ...
- UVA10090 数论基础 exgcd
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- 自己写的简单的jQuery分页控件
因为是内部项目,需要分页控件,网上找了一大堆,给领导一看,都说不行,原因很简单,太复杂,领导就想要个简单点的,类似百度的分页,可是自己也没写过Jquery控件,硬着头皮找了些资料,写了这个分页控件,目 ...
- 对于js原型和原型链继承的简单理解(第一种,原型链继承)
原型是js中的难点加重点,也是前端面试官最爱问的问题之一,因为面试官可以通过被面试者对原型的理解.来判断被面试者对js的熟悉程度. 原型的定义 Js所有的函数都有一个prototype属性,这个属性引 ...
- How many ways??(HDU 2157)
How many ways?? Sample Input 4 4 //n个点,m条路径0 1 //s->t可通0 21 32 32 //询问数0 3 2 //从0到3走两条路可到的方案有多少种0 ...
- 成为IT精英,我奋斗了7年
成为IT精英,我奋斗了7年 这些日子 我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量.最近看到很多学生朋友和我当年一样没有方向 ,所以把我 ...
- Lazy Load Plugin for jQuery延迟加载测试成功
一直需要的功能,网页图片太多时对于降低网络流量超有用. 最新的V1.9.3版本其实已不用修改就可以起作用了. 不用网上说的要自己修改代码.
- IIS Express 的 applicationhost.config配置文件
文件所在目录 C:\Users\admin\Documents\IISExpress\config 或者 C:\Program Files\IIS Express\AppServer\ //加载语言文 ...