当前位置: 首页 > 编程日记 > 正文

UIWebView和UIActivityIndicatorView的结合使用

环境:Xcode6.1

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

一.建立一个SingleView工程

二.初始化界面

ViewController.h文件

1 #import <UIKit/UIKit.h>
2 
3 @interface ViewController : UIViewController
4 
5 @property (nonatomic,strong) UIActivityIndicatorView *activityIndicatorView;
6 @property (nonatomic,strong) UIWebView *webView;
7 
8 @end

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

 1 - (void)stepUI {
 2     self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
 3     [self.view addSubview:self.webView];
 4     
 5     self.activityIndicatorView = [[UIActivityIndicatorView alloc] init];
 6     self.activityIndicatorView.center = self.view.center;
 7     self.activityIndicatorView.bounds = CGRectMake(0, 0, 50, 50);
 8     self.activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
 9     [self.webView addSubview:self.activityIndicatorView];
10 }

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

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     [self stepUI];
 4     
 5     self.webView.delegate = self;
 6     NSString *str = [NSString stringWithFormat:@"http://www.apple.com/"];
 7     NSURL *url = [NSURL URLWithString:str];
 8     NSURLRequest *request = [NSURLRequest requestWithURL:url];
 9     [self.webView loadRequest:request];
10 }

三.通过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;

 1 #pragma mark ---web view delegate
 2 - (void)webViewDidStartLoad:(UIWebView *)webView {
 3     [self.activityIndicatorView startAnimating];
 4 }
 5 - (void)webViewDidFinishLoad:(UIWebView *)webView {
 6     [self.activityIndicatorView stopAnimating];
 7 }
 8 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
 9     NSLog(@"%@",error);
10 }

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

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

错误总结:

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

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

self.activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;

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

转载于:https://www.cnblogs.com/damon-sf/p/4780297.html

相关文章:

Python对象类型——字符串、列表、元组

字符串Python连接多个字符串可用“”号&#xff0c;但这个操作不如把所有子字符串放到一个列表或可迭代对象中&#xff0c;然后调用一个join方法来把所有内容连接在一起节约内存。原始字符串操作符&#xff08;R/r&#xff09;&#xff1a;相当于取消“\”转义&#xff0c;在使…

leetcode--1:(python)Two Sum

2019.5.25: #1 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: 我的解法&#xff1…

memset初始化内存

在suse 9,运行man memset 查看memset的解释如下&#xff1a; “NAME memset - fill memory with a constant byte SYNOPSIS #include <string.h> void *memset(void *s, int c, size_t n); DESCRIPTION The memset() function fills the fir…

php 数字变量,php入门变量之数字_PHP教程

在介绍变量时&#xff0c;我明确指出PHP具有整型和浮点型(小数)数字类型。但是&#xff0c;依据我的经验&#xff0c;这两种类型都可以归类到一般的数字之下(在极大程度上是这样的)。下面列举下PHP中有效的数字类型的变量&#xff1a;83.1410980843985-4.23985084.4e2注意&…

BZOJ 1597: [Usaco2008 Mar]土地购买( dp + 斜率优化 )

既然每块都要买, 那么一块土地被另一块包含就可以不考虑. 先按长排序, 去掉不考虑的土地, 剩下的土地长x递增, 宽y递减dp(v) min{ dp(p)xv*yp1 }假设dp(v)由i转移比由j转移优(i>j), 那么dp(i)xv*yi1 < dp(j)xv*yj1化简得 (dp(i) - dp(j))/(yi1-yj1) > -xv然后就斜率优…

雨季来临 对车辆涉水说“NO”

七月的上海开始进入暴雨频发的季节。在城市排水系统受到考验的同时&#xff0c;车主们的车辆也同样经受着雨水的考验。而每年都会有相当一部分车辆因为“水害”&#xff0c;使车辆自身的价值受到很大的影响。为此开新通过以下案例为大家做个分析。并推荐几个实用的技巧以备不时…

C#编写dll进行sql server数据库扩展储存过程

一、编写C#函数文件 1、新建一个类库文件 备注&#xff1a;sqlserver 2008只能用.net3.5版本。 2、如有想加入强命名的话可如下步骤&#xff1a; 参考博文&#xff1a;https://blog.csdn.net/donnie88888888/article/details/52743064 1、运行在“开始菜单”-“程序”-“Micros…

malloc(0)-malloc 0 字节

C17中有如下描述&#xff1a; 7.22.3 Memory management functions 1 The order and contiguity of storage allocated by successive calls to the aligned_alloc, calloc, malloc, and realloc functions is unspecified. The pointer returned if the allocation succeeds …

php常见排序算去,PHP兑现常见排序算法

PHP实现常见排序算法//插入排序(一维数组)function insert_sort($arr){$count count($arr);for($i1; $i$tmp $arr[$i];$j $i - 1;while($arr[$j] > $tmp){$arr[$j1] $arr[$j];$arr[$j] $tmp;$j--;}}return $arr;}//选择排序(一维数组)function select_sort($arr){$coun…

C#中 int.TryParse 的用法

int i -1;bool b int.TryParse(null, out i);执行完毕后&#xff0c;b等于false&#xff0c;i等于0&#xff0c;而不是等于-1&#xff0c;切记。 int i -1;bool b int.TryParse("123", out i); 执行完毕后&#xff0c;b等于true&#xff0c;i等于123&#xff1b;…

2022-2028年中国综艺节目市场深度调研及投资前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国综艺节目行业市场行业相关概述、中国综艺节目行业市场行业运行环境、分析了中国综艺节目行…

cocos2d-js 自定义事件监听派发

熟悉js的dom事件或者flash事件的&#xff0c;基本都能立马明白cc.eventManager的用法。 cc.eventManager有两种注册监听器的方式&#xff0c;一种是原生事件&#xff0c;例如 cc.eventManager.addListener({ event: cc.EventListener.KEYBOARD, onKeyReleased: function(keyCod…

URL编码转义,冒号和/不转,否则导致http链接失效

URL含有中文需要转义 参考 https://blog.csdn.net/benbenxiongyuan/article/details/10608095 自己写一个 1 public boolean checkURLFileIsExist(String stringURL){2 boolean isExist false;3 String sEncodeURL;4 5 try{6 // URL内中文…

C面向对象之透明指针的运用

不透明指针(opaque pointer)可以用来在C中实现封装。 什么是不透明指针(opaque pointer) 从字面意思来看&#xff0c;“不透明”意味着看不到内部&#xff0c;因此“不透明指针”即看不到内部定义的指针。这样说有些抽象&#xff0c;我们来看个例子&#xff1a; #include &l…

支付宝 php rsa算法,:PHP支付宝接口RSA验证

这两天一直困扰的PHP RSA签名验证问题终于解决了&#xff0c;由于之前RSA接触的不多&#xff0c;再加上官方至今还未有PHP的SDK可供参考&#xff0c;因此走了一些弯路&#xff0c;写在这里和大家分享。虽然支付宝官方还未提供相关SDK&#xff0c;PHP确实可以实现RSA方式的签名&…

int与string转换

参考&#xff1a; http://greatverve.cnblogs.com/archive/2012/10/24/cpp-int-string.html 转载于:https://www.cnblogs.com/predator-wang/p/4789775.html

更改Jenkins升级站点

更新地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 【图示】&#xff1a;

Android 模仿微信启动动画(转)

本文内容 环境项目结构演示微信启动动画本文演示微信启动动画。请点击此处下载&#xff0c;自行调试。 顺便抱怨一下&#xff0c;实践性&#xff08;与研究性质的相对&#xff09;技术博的“七宗罪”&#xff1a; 第一宗罪&#xff0c;错字连篇&#xff0c;逻辑不清&#xff1b…

navicat for mysql收藏夹

navicat for mysql如果库表非常多的化&#xff0c;每次输入表名比较繁琐。 可以进入收藏夹便于快速打开经常使用的库表。 打开要入收藏夹的表&#xff0c;文件-添加收藏夹。 也可以快捷键shiftctrl1 如果已经有3个占用了&#xff0c;则自动跳到第4个栏位 也可以快捷键shiftctrl…

C 变量的作用域

下面的程序输出什么&#xff1f;思考一下 #include <stdio.h>// Driver Code int main() {{int x 10, y 20;{// The outer block contains// declaration of x and// y, so following statement// is valid and prints// 10 and 20printf("x %d, y %d\n",…

oracle字段重复新增错误,oracle在已有重复数据的列上创建唯一约束

在有重复数据的列上添加unique constraints,大家正常的解决办法就修改重复数据,但也可以 保留重复数据,使约束对以后的数据有限制,不过我们还可以用以下的方法来添加唯一约束. SQL create table aa(num number(6),email varchar2(32)); 表已创建。 SQL insert在有重复数据的列上…

poj_3067 树状数组

题目大意 左右两个竖排&#xff0c;左边竖排有N个点&#xff0c;从上到下依次标记为1,2,...N; 右边竖排有M个点&#xff0c;从上到下依次标记为1,2....M。现在从K条直线分别连接左边一个点和右边一个点&#xff0c;求这K条直线的交点个数&#xff08;左右竖排上的点不算做交点&…

2022-2028年中国自主可控行业深度调研及投资前景预测报告(全卷)

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国自主可控行业市场行业相关概述、中国自主可控行业市场行业运行环境、分析了中国自主可控行…

linux /etc/fstab文件参数求解释

2019独角兽企业重金招聘Python工程师标准>>> # cat /etc/fstab# # /etc/fstab # Created by anaconda on Mon Dec 17 09:06:53 2012 # # Accessible filesystems, by reference, are maintained under /dev/disk # See man pages fstab(5), findfs(8), mount(8) and…

C运算符优先级笔记

1. 指针数组 int *p[5]; [] 大于 * 2. 强制类型() 与 成员选择(./->) #include <stdlib.h>typedef struct {int data;int time; } data_t;int main() {data_t *p (data_t *)malloc(sizeof(data_t));int t (data_t *)p->time; /*focus: -> 大于 (data_t)*/f…

移动应用开发—— 如何搭建开发大型的应用架构?

什么是一个好的应用架构&#xff1f;怎么才能搭建大型的应用架构&#xff1f;其实每个人在工作几年之后都会有这个疑问&#xff0c;都在寻求好点的框架&#xff0c;那么小编我总结一下我的经验给大家。 其实对于客户端&#xff0c;一个好的应用架构&#xff0c;复杂度不亚于服务…

4104 oracle 数据文件名,Oracle 11g 常遇到ora-01034错误,这是为什么?

Errors in file d:\app\gerry\diag\rdbms\orcl\orcl\trace\orcl_psp0_5252.trc:ORA-27300: OS system dependent operation:CreateThread failed with status: 8ORA-27301: OS failure message: 存储空间不足&#xff0c;无法处理此命令。ORA-27302: failure occurred at: ssth…

Linux(CentOS6.5)中安装maven

Linux(CentOS6.5)中安装maven 1.上传相关包(*.tar.gz等) 使用相关软件上传或用Xshell连接后下载命令&#xff1a;yum install lrzsz 2.安装maven 1> 官网下载apache-maven-3.6.0-bin.tar.gz压缩包&#xff0c;上传到CentOS上&#xff08;目录自选&#xff09;。官网地址…

Spring+Hibernate项目在weblogic中部署的一些问题

2019独角兽企业重金招聘Python工程师标准>>> Hibernate JPA Jar包冲突&#xff0c;解决方法有两种&#xff0c; 第一种&#xff1a;将hibernate-jpa-2.0-api-1.0.1.Final.jar复制到当前weblogic域所使用的jdk目录下的\jdk160_29\jre\lib\ext目录下。 第二种&#xf…

Oracle語句大全

1. Oracle安装完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS WEB CACHE的初始默认用户和密码&#xff1f; administrator/administrator 3. oracle 8.0.5怎么创建数据库? …