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实 ...
随机推荐
- Swift 面向对象
import Foundation class Hi{ func sayHi(){ print("HI jinpanpang") } } class Hello:Hi { var ...
- Robot Framework自动化测试环境的搭建
1.python-2.7.6.amd64.1394777203.msi 2.setuptools-28.0.0 3.pip-8.1.1 4.robotframework-2.8.7.win-amd64 ...
- angularJs项目实战!03:angularjs与其他类库的协作
引言:angularjs是一个中等重量级的前端开发框架 HTML是一门很好的为静态文本设计的语言,但要构建动态的web应用它就显的乏力了.通常,我们使用以下技术来解决静态网页技术在构建动态应用上的不足 ...
- android dom方式创建xml
http://blog.csdn.net/nxh_love/article/details/7085174 在android dom 解析xml方式文章中,简单介绍了dom解析xml的应用.今天在原文 ...
- 抗忙,,建个MAVEN的私服仓库-NEXUS
公司最近需求越来越上轨道,MAVEN的私服仓库-NEXUS构架起来哟.. 参考文档URL: http://www.linuxidc.com/Linux/2011-07/39578p3.htm http ...
- coalesce和nvl函数
coalesce 函数 : Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果 都为空则返 ...
- jquery点击按钮显示和隐藏DIv
function changeDisplay() { if ($("#btnShow").attr("value")== "添加附件") { ...
- 九度OJ 1437 To Fill or Not to Fill
题目大意:小明从杭州去往某目的地,要经过一些加油站,每个加油站的价格不一样.若能顺利到达,求加油费用最少为多少,否则求出能行驶的最远距离. 思路:贪心算法 1>若下一加油站的价格更便宜,则只需走 ...
- first move advantage_百度搜索
first move advantage_百度搜索 先动优势
- eclipse3.7 安装maven插件与scm
转自:http://blacksonny.iteye.com/blog/1900275 最近要使用maven进行开发,之前的eclipse3.7 使用一下两个地址安装好了插件,如下: maven插件 ...