环境:Xcode6.1

UIWebView是iOS开发中常用的一个控件,是内置的浏览器控件,我们可以用它来浏览网页,加载文档等。这篇文件将结合UIActivityIndicatorView控件制作一个小实例(加载apple的官网)。效果如下:

     

一.建立一个SingleView工程

二.初始化界面

ViewController.h文件

 #import <UIKit/UIKit.h>

 @interface ViewController : UIViewController

 @property (nonatomic,strong) UIActivityIndicatorView *activityIndicatorView;
@property (nonatomic,strong) UIWebView *webView; @end

ViewController.m文件中,先写一个初始化UI的方法

 - (void)stepUI {
self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , self.view.frame.size.width, self.view.frame.size.height)];
[self.view addSubview:self.webView]; self.activityIndicatorView = [[UIActivityIndicatorView alloc] init];
self.activityIndicatorView.center = self.view.center;
self.activityIndicatorView.bounds = CGRectMake(, , , );
self.activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
[self.webView addSubview:self.activityIndicatorView];
}

在ViewDidLoad方法中加载初始化UI的方法和处理UIWebView要加载的内容,并设置代理

 - (void)viewDidLoad {
[super viewDidLoad];
[self stepUI]; self.webView.delegate = self;
NSString *str = [NSString stringWithFormat:@"http://www.apple.com/"];
NSURL *url = [NSURL URLWithString:str];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
}

三.通过UIWebView的代理方法,处理UIActivityIndicatorView的显示

让ViewController遵守UIWebViewDelegate协议

UIWebViewDelegate有下面的几个方法:

- (void)webViewDidStartLoad:(UIWebView *)webView;开始加载的时候执行

- (void)webViewDidFinishLoad:(UIWebView *)webView;加载完成的时候执行

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加载出错的时候执行

UIActivityIndicatorView控件有如下的两个方法:

- (void)startAnimating;

- (void)stopAnimating;

 #pragma mark ---web view delegate
- (void)webViewDidStartLoad:(UIWebView *)webView {
[self.activityIndicatorView startAnimating];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[self.activityIndicatorView stopAnimating];
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
NSLog(@"%@",error);
}

对于加载时的出错,楼主只是简单的进行打印

最后,在模拟器上运行即可。

错误总结:

1.最开始写URL时没有写协议http,只是简单的www.apple.com,导致加载失败。

2.设置UIActivityIndicatorView控件的显示样式时,没有考虑到UIWebView的加载页面为白色,还傻兮兮的设置为

self.activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;

导致加载时没有看到显示效果,花了许久的时间才发现问题。所以写代码前一定要思维严谨,多做合理性的考虑。

UIWebView和UIActivityIndicatorView的结合使用的更多相关文章

  1. [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]

    原理: 1.JS调用OC 每次webview执行跳转时都会被iOS给拦截,执行下面函数获得系统允许. 因此可以根据跳转信息转给系统,执行相应功能,比如打开相册等. // 网页中的每一个请求都会被触发 ...

  2. ios基础篇(十六)——UIWebView的基本使用

    UIWebView是内置的浏览器控件,可以用它来浏览网页.打开文档等.UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能.UIWebView可以查看Html网页,pdf文件,do ...

  3. ios学习之UIWebView网页视图

    转载于爱德凡的百度空间,地址:http://hi.baidu.com/aidfan/item/34a720866b33cbcdef083d37 UIWebView 使用详解 一.UIWebView加载 ...

  4. AFNetworking 3.0 源码解读(十一)之 UIButton/UIProgressView/UIWebView + AFNetworking

    AFNetworking的源码解读马上就结束了,这一篇应该算是倒数第二篇,下一篇会是对AFNetworking中的技术点进行总结. 前言 上一篇我们总结了 UIActivityIndicatorVie ...

  5. IOS UIWebView 下拉刷新功能的简单实现

    1.运行效果图 2.swift 代码的实现 import UIKit class RefreshWebViewController: UIViewController,UIScrollViewDele ...

  6. iOS UIWebView中javascript与Objective-C交互、获取摄像头

    UIWebView是iOS开发中常用的一个视图控件,多数情况下,它被用来显示HTML格式的内容. 支持的文档格式 除了HTML以外,UIWebView还支持iWork, Office等文档格式: Ex ...

  7. iOS UIWebView和网页的交互(OC中调执行JS)

    UIWebView和网页的交互(OC中调执行JS)- (void)viewDidLoad{[super viewDidLoad];// 1.webViewUIWebView *webView = [[ ...

  8. 对UIWebView的学习

    建工程,建一个类WebViewController 继承于UIViewController WebViewController设置为根视图控制器 WebViewController遵守UIWebVie ...

  9. UIWebView swift

    // // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...

随机推荐

  1. ORM Entities vs. Domain Entities under Entity Framework 6.0

    I stumbled upon the following two articles First and Second in which the author states in summary th ...

  2. 泰泽新闻:英特尔三星双否认泰泽Tizen系统已死

    7月8日 据媒体TizenExperts报道,关于“Tizen系统跳票”的传闻已经遭到了英特尔和三星否认. 此前传闻三星自行研制的智能手机Tizen操作系统流产,但如今已经遭到了官方的否认. 英特尔三 ...

  3. hadoop部署小结的命令

    hadoop部署总结的命令 学习笔记,转自:hadoop部署总结的命令http://www.aboutyun.com/thread-5385-1-1.html(出处: about云开发)

  4. HW2.15

    public class Solution { public static void main(String[] args) { double rate = 0.05; double balance ...

  5. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  6. mysql实用指南

    mysqld --verbose --help: 可以显示 mysql 的编译配置选项,即功能配置描述. mysql 的配置文件my.cnf调用次序(mysqld --verbose --help 的 ...

  7. openstack 镜像自动扩容 resize拉伸

    The simplest way to support this in your image is to install the cloud-utils package (contains the g ...

  8. 安装Go语言开发环境

    安装Go语言开发环境实例代码 - 详述Go语言安装所在需要的工作:安装C语言工具,安装Mercurial,更新go到新版本等操作实例. 安装go环境 1.简介 Go是一个开源项目,采用BSD授权协议. ...

  9. eclipse mybatis Generator

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  10. cocos2d-x 绘制基本图元

    转自:http://4137613.blog.51cto.com/4127613/754729 第一部分:基本图形绘制   cocos2dx封装了大量opengl函数,用于快速绘制基本图形,这些代码的 ...