高性能之《图片浏览器和引导页》的窥视
来源:互联网 发布:电脑机器码修改软件 编辑:程序博客网 时间:2024/05/17 22:13
《电子相册浏览器》
重点陈述:
优点:节省内存、代码简单、容易操作。可以选择是否添加操作等。使用简单,易懂。
缺点:会增加对硬件的要求。
用途:可以作为引导页和轮播图。可以在指定引导页进行交互和进行更具特性的轮播效果。
第一步:我们看效果图。
第二部:我们创建主要的角色。
1、主角和配角
// 本工程的主角是一个UIImageView
@property(nonatomic,strong)UIImageView * ElectronAlbumBrowserImageV;
// 创建一个用于存放图片的数组(利用了数组的有序性)。
@property(nonatomic,strong)NSArray * ElectronAlbumBrowserDataArray;
//创建一个全局变量用于记录操作的次数
int OperateCount;
// 标点控制
UIPageControl * PageControl;
2、主角和配角的初始化。
// 主角
self.ElectronAlbumBrowserImageV = [[UIImageViewalloc]initWithFrame:CGRectMake(0,64, self.view.bounds.size.width,self.view.bounds.size.height-64)];
_ElectronAlbumBrowserImageV.image = [UIImage imageNamed:@"c12f5835c6a40950dc6b904c69ce3338.jpg"];
// 主角的标记
_ElectronAlbumBrowserImageV.tag =0;
// 我们要打开交互
_ElectronAlbumBrowserImageV.userInteractionEnabled =YES;
// 是否添加点击
[self TapClick];
// 主角的登上舞台
[self.viewaddSubview:_ElectronAlbumBrowserImageV];
//初始化数据数组
self.ElectronAlbumBrowserDataArray = [NSArrayarray];
//进行网络请求数据
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// 模拟网络请求
_ElectronAlbumBrowserDataArray =@[[UIImageimageNamed:@"0061497f835549c792559776053fdbec.jpg"],[UIImageimageNamed:@"16954bea2e61e208589b84984f400f20.jpg"],[UIImageimageNamed:@"616743c4dfe3a606ae80674987f529e9.jpg"],[UIImageimageNamed:@"9790072c19f6d7f31ad9cfb6551d6a7d.jpg"],[UIImageimageNamed:@"c12f5835c6a40950dc6b904c69ce3338.jpg"],[UIImageimageNamed:@"c9ddcacbd189e1cfec4d1310e4383438.jpg"]];
PageControl.numberOfPages =_ElectronAlbumBrowserDataArray.count;
});
// 创建标点控制器
self->PageControl = [[UIPageControlalloc]initWithFrame:CGRectMake(100,self.view.bounds.size.height-30,self.view.bounds.size.width-200,20)];
PageControl.currentPage =0;
PageControl.pageIndicatorTintColor = [UIColoryellowColor];
PageControl.currentPageIndicatorTintColor = [UIColorredColor];
[self.viewaddSubview:PageControl];
// 关键的一个配角(右)
UISwipeGestureRecognizer * Right_Swip = [[UISwipeGestureRecognizer alloc]initWithTarget:selfaction:@selector(SwipType:)];
Right_Swip.direction =UISwipeGestureRecognizerDirectionRight;
// 关键的二个配角(左)
UISwipeGestureRecognizer * Left_Swip = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(SwipType:)];
Left_Swip.direction =UISwipeGestureRecognizerDirectionLeft;
// 配角登录舞台
[self.viewaddGestureRecognizer:Right_Swip];
[self.viewaddGestureRecognizer:Left_Swip];
// 核心部分
-(void)ElectronAlbumBrowser:(BOOL)Yes_No indexPath:(int)index{
// 核心场景 CATransaction 、CATransition(看好了,不要弄错了)。
CATransition *transition=[[CATransitionalloc]init];
//2.设置动画类型,
transition.type=[selfStochastic];
// 我们要设置动画的时间
transition.duration = 1;
// 动画的其实位置(值越小,开始越靠右)
transition.startProgress = 0.1;
// 动画结束的位置 (要和上面的 startProgress + endProgress = 1 )
transition.endProgress = 0.9;
// 一个公共的对象
/*
filter 是图像的话,将影响动画的效果,使其变为淡入淡出的形式。
*/
transition.filter = nil;
// 我们设置动画入场的方向
/*
Common transition subtypes的可用类型如下.
// 右
CA_EXTERN NSString * const kCATransitionFromRight
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
// 左
CA_EXTERN NSString * const kCATransitionFromLeft
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
//上
CA_EXTERN NSString * const kCATransitionFromTop
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
//下
CA_EXTERN NSString * const kCATransitionFromBottom
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
这是支持的最低版本。
*/
if (Yes_No) {
transition.subtype =kCATransitionFromLeft;
}else{
transition.subtype =kCATransitionFromRight;
}
// 信息数字的优化
int ATMS_Count =OperateCount%_ElectronAlbumBrowserDataArray.count;
PageControl.currentPage = ATMS_Count;
// 添加美丽画面
_ElectronAlbumBrowserImageV.image =_ElectronAlbumBrowserDataArray[ATMS_Count];
//绑定标记
_ElectronAlbumBrowserImageV.tag = ATMS_Count;
// 设置到动画载体上
[_ElectronAlbumBrowserImageV.layeraddAnimation:transitionforKey:@"ZSJ_ImageV"];
}
- 高性能之《图片浏览器和引导页》的窥视
- 高性能浏览器网络之网络部分 -- 延迟和带宽入门
- 高性能WEB开发之图片篇
- 高性能加载图片
- 高仿拉手网欢迎页和引导页的具体代码实现
- Android性能优化之图片的本地和网络缓存
- 高性能浏览器-HTTP 2.0
- Android实用视图动画及工具系列之九:漂亮的图片选择器,高性能防崩溃图片选择工具
- icc的过程间优化和性能分析引导优化
- 优秀开源项目之三:高性能、高并发、高扩展性和可读性的网络服务器架构State Threads
- 优秀开源项目之三:高性能、高并发、高扩展性和可读性的网络服务器架构State Threads
- 高仿拉手网欢迎界面和引导页
- android图片引导页
- 我的高性能计算之旅
- Netty的高性能架构之道
- Mysql之高性能的索引策略
- 窥视北京“鼠族”的地下生活 此博文包含图片
- 微信页面打开链接,引导在其他浏览器打开的引导页
- javaI/0之[打印流][序列流/合并流/分割流][操作对象]等流对象
- 实验6-6 使用函数验证哥德巴赫猜想 (20分)
- 【转】oracle模糊查询效率提高
- 面向对象--instanceof,equals方法
- bootstrap中按钮
- 高性能之《图片浏览器和引导页》的窥视
- 抽象类那点事
- Linux中的黑洞(black hole)-/dev/null
- 学习网站收录
- hdu 1402 FFT(模板)
- Raspberry pi 2 安装GTK
- Day4_MFCsystem 图形化显示cmd
- os x下 apk逆向工程利器 AndroidCrackTool for Mac 最新版
- bzoj 1192