UIWebView和UICollectionViewController的使用
UIWebView和UICollectionViewController的使用
UIWebView
UIWebView是iOS内置的浏览器的控件, 可以浏览网页, 打开文档等 .系统自带的Safari浏览器就是通过UIWebView实现的, 能够加载html/htm, pdf, docx, txt等格式的文件.
在iOS7之前, UILabel, UITextFiled 以及 UITextView 都在后台以某种方式使用 WebKit来进行文本布局和渲染.
渲染 : 是CG的最后一道工序, 将所设计内容制作成最终效果图或者动画的过程 .
UIWebView的使用
1> 确定要访问的资源
NSURL *url = [NSURL URLWithString : @"http://www.baidu.com"];
2> 建立网络请求
NSURLRequest *request = [NSURLRequest requestWithURL :url];
3> UIWebView加载网络请求
[self.webView loadRequest : request];
UIWebView - 实现百度搜索
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
NSString *str = searchBar.text;
// 1. 判断是否以http开头,如果没有则用百度搜索
if (![str hasPrefix:@"http://"]) {
str = [NSString stringWithFormat:@"http://m.baidu.com/s?word=%@", str];
}
// 2. 在URL中,如果包含中文字符串,需要将字符串转换为带百分号的格式
NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}
UIWebView - 前进后退
#pragma mark - UIWebView代理方法
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
self.goBackButton.enabled = self.webView.canGoBack;
self.goForwardButton.enabled = self.webView.canGoForward;
}
UIWebView优缺点:
优点:
1> 使用简单 ; NSURL确定要访问的网络资源, NSURLRequest建立网络请求;
2> 能够方便的展现丰富的页面内容 ;
3> 在开发中, 通常遇到不方便排版的内容, 会考虑选择UIWebView .
缺点:
1> 以HTML为基础的页面方式, 交互相对单一, 局限性大 ;
2> 编辑排版HTML页面同样需要花费人力.
UICollectionViewController的使用
1> 注册cell(告诉collectionView将来创建怎样的cell) .
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"product"];
2> 从缓存池中取出cell
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"product" forIndexPath:indexPath];
return cell;
}
3> 重写init方法, 创建布局参数
-(id)init
{
// 1.流水布局
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
// 2.每个cell的尺寸
layout.itemSize = CGSizeMake(100, 100);
return [super initWithCollectionViewLayout:layout];
}
UICollectionViewFlowLayout
UICollectionViewFlowLayout 称为 "流水布局", 用来约束cell的显示 ;
常见属性:
// cell的尺寸
@property (nonatomic) CGSize itemSize;
// cell之间的水平间距
@property (nonatomic) CGFloat minimumInteritemSpacing;
// cell之间的垂直间距
@property (nonatomic) CGFloat minimumLineSpacing;
// 四周的内边距
@property (nonatomic) UIEdgeInsets sectionInset;
UIWebView和UICollectionViewController的使用的更多相关文章
- AFNetworking 3.0 源码解读(十一)之 UIButton/UIProgressView/UIWebView + AFNetworking
AFNetworking的源码解读马上就结束了,这一篇应该算是倒数第二篇,下一篇会是对AFNetworking中的技术点进行总结. 前言 上一篇我们总结了 UIActivityIndicatorVie ...
- ios UIWebView自定义Alert风格的弹框
之前开发过一个App,因为公司之前写好了网页版的内容和安卓版本的App,我进去后老板要求我ios直接用网页的内容,而不需要自己再搭建框架.我一听,偷笑了,这不就是一个UIWebView吗?简单! 但是 ...
- iOS网络3—UIWebView与WKWebView使用详解
一.整体介绍 UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView.通过简单的测试即可发现UIWebView占用过多内存,且 ...
- IOS 网络浅析-(十二 UIWebView简介)
在这篇随笔里,我们只要知道UIWebView是什么就可以了. UIWebView 是苹果提供的用来展示网页的UI控件,它也是最占内存的控件. iOS8.0之后出现了webkit框架,WKWebView ...
- UIWebView获取网页点击事件
//接收web事件 -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request nav ...
- IOS UIWebView 下拉刷新功能的简单实现
1.运行效果图 2.swift 代码的实现 import UIKit class RefreshWebViewController: UIViewController,UIScrollViewDele ...
- UI控件(UIWebView)
本文主要记录UIWebView三方面内容: 1.基本的加载网页链接或文件: 2.网页js调用原生,也就是Cordova混合架构的原理: 3.原生调用js程序: 原生部分主要代码: @implement ...
- UIwebView 和 H5交互详情
背景: 最近公司准备上一个只有原生登录界面 + H5网页 ,并且支持ios7.0 以上系统的混合app;这可把我难住了,原生的UI界面我可以正写反写各种style把界面搭建起来.而要这个app的难点在 ...
- iOS开发之窥探UICollectionViewController(五) --一款炫酷的图片浏览组件
本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectio ...
随机推荐
- Android Studio 打印调试信息
转自:https://www.2cto.com/kf/201611/569468.html 之前开发单片机软件还是上位机都习惯使用printf(),相信很多很会有和我一样的习惯.开始学习安卓了,当然也 ...
- OpenMP 中的线程任务调度
OpenMP中任务调度主要针对并行的for循环,当循环中每次迭代的计算量不相等时,如果简单地给各个线程分配相同次数的迭代,则可能会造成各个线程计算负载的不平衡,影响程序的整体性能. 如下面的代码中,如 ...
- 倾斜摄影三维建模软件photoscan教程 [转]
PhotoScan是一款基于影响自动生成高质量三维模型的优秀软件,这对于3D建模需求来说实在是一把利器. PhotoScan无需设置初始值,无须相机检校,它根据最新的多视图三维重建技术,可对任意照片进 ...
- 转:从产品经理的角度算一算,做一个app需要花多少钱?
http://mp.weixin.qq.com/s?__biz=MzA4NTM5MTgzNQ==&mid=400127477&idx=2&sn=6ab90b7028deed78 ...
- Cognos开发ContentManagerServiceStub不能转换为Stub
Cognos SDK开发过程中遇到的小错误详细请看下图 另:附加了详细的错误信息 Exception in thread "main" java.lang.ClassCastExc ...
- Sn.exe(强名称工具)
Sn.exe(强名称工具) .NET Framework 4.5 强名称工具 (Sn.exe) 有助于使用强名称对程序集进行签名. Sn.exe 提供了用于密钥管理.签名生成和签名验证的选项. 强 ...
- 关于listview,scrollview显示模糊边缘的设置
朋友们有时可能在开发中遇到这样的莫名其妙的问题,listview或scrollview滑动时上边和下边会出现两条模糊的边缘,有时会影响到我们app的视觉效果,我们怎么去掉这两条模糊的边缘呢?很简单,一 ...
- windows curl ssl版本号编译
编译curl-ssl版本号碰到非常多坑,这里记录一下.亲手測试,注意版本号号!! ! !. 1.下载 curl-7.43.0 libssh2-1.3.0 openssl-1.0.0s Act ...
- NET设计规范二:类型成员设计
http://www.cnblogs.com/yangcaogui/archive/2012/04/20/2459567.html 接着 → .NET设计规范一:设计规范基础 上一篇,我们来了解下类型 ...
- JavaScript 数组方法处理字符串 prototype
js中数组有许多方法,如join.map,reverse.字符串没有这些方法,可以“借用”数组的方法来处理字符串. <!doctype html> <html lang=" ...