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总结的更多相关文章

  1. IOS开发-UI基础-视图

    //------------------------------UIWindow--------------------------// 1.UIWindow:是 UIView 的子类,用于管理.协调 ...

  2. UI基础视图----UIView总结

    UIView是UIKit框架里面最基础的视图类,是UIResponder的子类,是UIApplication和UIViewController的兄弟类,是UIWindow,UILabel,UIImag ...

  3. UI基础视图----UIScrollView总结

    UIScrollView是UIKit框架下的很重要的视图类,是UIView的子类.UILabel,UIImageView,UIWebView分别用于展示文字,图片,网页,UILabel通过属性text ...

  4. UI基础视图----UIImageView总结

    UIImageView和UILabel一样,也是UIKit框架中非常常用的视图类.继承关系和UILabel完全一致(都是继承于UIView),功能也相似(用户交互都默认为关,主要用于展示),只不过UI ...

  5. UI基础视图----UILabel总结

    UILabel是UIKit框架中非常常用的视图类,是UIView的子类,是UIWindow,UIImageView等的兄弟类,因为继承自UIView,所以继承了UIView中的属性和方法,大部分都可以 ...

  6. UI基础:视图控制器.屏幕旋转.MVC 分类: iOS学习-UI 2015-07-02 22:21 62人阅读 评论(0) 收藏

    UIViewController 视图控制器,继承自UIResponder,作用:管理视图并且响应事件 功能: 1.分担APPdelegate的工作 2.实现模块独立,能提高复用性 创建UIViewC ...

  7. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  8. Android UI基础教程 目录

    从csdn下载了这本英文版的书之后,又去京东搞了一个中文目录下来.对照着看. 话说,这本书绝对超值.有money的童鞋看完英文版记得去买中文版的~~ Android UI基础教程完整英文版 pdf+源 ...

  9. UI基础UIButton

    UI基础UIButton 前面写了UIWindow.UIViewController,那些都是一些框架,框架需要填充上具体的view才能组成我们的应用,移动应用开发中UI占了很大一部分,最基础的UI实 ...

随机推荐

  1. Swift 语言函数

    import Foundation // 函数声明于实现 func sayHello(name){ print("Hello \(name)") } // 函数调用 sayHell ...

  2. protected访问修饰符

    子类可以调用, 但实例化的对像不可调用  new object;

  3. web标准(复习)--1

    XHTML CSS基础知识 一.xhtml css基础知识首先说一下我们这节课的知识点 1.文档类型 2.语言编码 3.html标签 4.css样式 5.css优先级 6.css盒模型组成 1)文档类 ...

  4. [Mugeda HTML5技术教程之4] Studio 概述

    Mugeda Studio 是基于云平台的制作HTML5动画的专业可视化集成开发环境,可以让你在不需要安装客户端程序的情况下,只通过浏览器就能轻松创作高质量的HTML5动画.HTML5动画相对于传统的 ...

  5. 学习如何写PHP MVC框架(1) -- 路由

    说到PHP开发web,自然离不开开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等... 第一篇先来简单点的,说说MVC框架的路由功能... 一般的单入口框架路由都是这样的结构: ...

  6. Decimal:解决0.3 != 0.1+0.1+0.1的方法(十进制浮点数)

    0.普通情况 1.引入Decimal 也可以这样引入: from decimal import Decimal as D 相当于: from decimal import Decimal D = De ...

  7. 微信分享jsdk接口

    HTML文件 <!DOCTYPE html><html><head> <meta charset="utf-8"> <titl ...

  8. Blocks(POJ 3734 矩阵快速幂)

    Blocks Input The first line of the input contains an integer T(1≤T≤100), the number of test cases. E ...

  9. 为什么针对XML的支持不够好?如何改进?

    为什么针对XML的支持不够好?如何改进? 物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurati ...

  10. JAVA_build_ant_sed

    1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...