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实 ...
随机推荐
- MySQL跨表更新字段 工作记录
工作中遇到两表查询,从user表中获取用户唯一id字段 写入到另外一张qiuzu表中的uid字段中; 二者可以关联起来的只有用户的手机号码tel字段; 了解需求后数据量稍多,不可能一个一个的手动修改 ...
- jQuery读取JSON总结
1.jQuery 部分 <script src="js/jquery.js" type="text/javascript"></script& ...
- C语言初学 俩数相除问题
#include<stdio.h> #include<stdlib.h> main() { double a,b; scanf(&q ...
- bug经验
1.异常信息丢失导致定位问题困难. 2.findbugs工具 3.在某些if语句判断中return,可能会导致文件句柄无法关闭. 4.lastmodified()在win下和linux下的处理是不同的 ...
- Java并发编程--线程封闭(Ad-hoc封闭 栈封闭 ThreadLocal)
线程封闭实现好的并发是一件困难的事情,所以很多时候我们都想躲避并发.避免并发最简单的方法就是线程封闭.什么是线程封闭呢?就是把对象封装到一个线程里,只有这一个线程能看到此对象.那么这个对象就算不是线程 ...
- ubuntu12.04安装jdk-7u79-linux-i586.tar.gz
第一步:下载jdk-7u79-linux-i586.tar.gz 1.wget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux ...
- Leetcode_Best Time to Buy and Sell Stock
Say you have an array for which the ith element is the price of a given stock on day i. If you were ...
- codility上的问题 (19)Sigma 2012
题目: 像最大直方图一样给定一个数组是每个单位长度上的高度,求至少几个矩形可以拼出这个形状. 例如:给出的数组 H[0] = 8 H[1] = 8 H[2] = 5 H[3] = 7 H[4] = 9 ...
- 黑马程序员_Java面向对象2_继承
4.面向对象_继承 4.1继承的概述 提高了代码的复用性. 让类与类之间产生了关系,有了这个关系,才有多态的特性. 注意:千万不要为了获取其他类的功能而去继承,简化代码而继承.必须是类与类之间有所属关 ...
- 读书笔记:java并发
java中主要的同步机制是关键字synchronized,它提供一种独占锁,但是 同步这个术语还包括validate类型的变量,显示锁(Explicit Lock)以及原子变量. -------显示锁 ...