代码地址如下:
http://www.demodashi.com/demo/11246.html

一、准备工作

1.先用时ps工具制作好图片
2.然后计算好每张图片通过滑动视图的偏移量来改变图片的位置
3.理顺该demo将需要的一些逻辑顺序

二、程序实现

项目中不需要配置任何东西,全都是逻辑方面的东西,只要思维逻辑清楚,我们就开始干

由上面可以知道,其实该demo的代码不是很大。

1、所有的图片的初始位置进行定义

-(void)createUI
{//1pageoneImage1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 40, ScreenWidth, 30)];pageoneImage1.image = [UIImage imageNamed:@"1_01"];[imageView1 addSubview:pageoneImage1];pageoneImage2 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, ScreenWidth, ScreenWidth)];pageoneImage2.image = [UIImage imageNamed:@"1_02"];[imageView1 addSubview:pageoneImage2];pageoneImage3 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 120, ScreenWidth, ScreenWidth/4)];pageoneImage3.image = [UIImage imageNamed:@"1_03"];[imageView1 addSubview:pageoneImage3];pageoneImage4 = [[UIImageView alloc]initWithFrame:CGRectMake(ScreenWidth/6, CGRectGetMaxY(pageoneImage2.frame)+10, ScreenWidth*2/3, 50)];pageoneImage4.image = [UIImage imageNamed:@"1_04"];[imageView1 addSubview:pageoneImage4];pageoneImage5 = [[UIImageView alloc]initWithFrame:CGRectMake(40, CGRectGetMaxY(pageoneImage4.frame)+10, ScreenWidth-80, 40)];pageoneImage5.image = [UIImage imageNamed:@"1_05"];[imageView1 addSubview:pageoneImage5];//2pageoneImage1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 40, ScreenWidth, 30)];pageoneImage1.image = [UIImage imageNamed:@"1_01"];[imageView2 addSubview:pageoneImage1];pagetwoImage1 = [[UIImageView alloc]initWithFrame:CGRectMake(-ScreenWidth/2, 100-ScreenWidth/2, ScreenWidth*2, ScreenWidth*2)];pagetwoImage1.image = [UIImage imageNamed:@"2_01"];[imageView2 addSubview:pagetwoImage1];pagetwoImage2 = [[UIImageView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(pagetwoImage1.frame)+10, ScreenWidth, 60)];pagetwoImage2.image = [UIImage imageNamed:@"2_02"];[imageView2 addSubview:pagetwoImage2];pagetwoImage3 = [[UIImageView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(pagetwoImage2.frame)+10, ScreenWidth, 30)];pagetwoImage3.image = [UIImage imageNamed:@"2_03"];[imageView2 addSubview:pagetwoImage3];//3pageoneImage1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 40, ScreenWidth, 30)];pageoneImage1.image = [UIImage imageNamed:@"1_01"];[imageView3 addSubview:pageoneImage1];pagethreeImage1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, ScreenWidth, ScreenWidth*31/36)];pagethreeImage1.image = [UIImage imageNamed:@"3_01"];[imageView3 addSubview:pagethreeImage1];pagethreeImage2 = [[UIImageView alloc]initWithFrame:CGRectMake(ScreenWidth, 100, ScreenWidth, ScreenWidth*31/36)];pagethreeImage2.image = [UIImage imageNamed:@"3_02"];[imageView3 addSubview:pagethreeImage2];pagethreeImage3 = [[UIImageView alloc]initWithFrame:CGRectMake(ScreenWidth/2, 100, ScreenWidth, ScreenWidth*31/36)];pagethreeImage3.image = [UIImage imageNamed:@"3_03"];[imageView3 addSubview:pagethreeImage3];pagethreeImage4 = [[UIImageView alloc]initWithFrame:CGRectMake(10, ScreenHeight, ScreenWidth-20, 60)];pagethreeImage4.image = [UIImage imageNamed:@"3_04"];pagethreeImage4.alpha = 0;[imageView3 addSubview:pagethreeImage4];pagethreeImage5 = [[UIImageView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(pagethreeImage4.frame)+15, ScreenWidth, 40)];pagethreeImage5.image = [UIImage imageNamed:@"3_05"];pagethreeImage5.alpha = 0;[imageView3 addSubview:pagethreeImage5];//5pagefiveImage1 = [[UIImageView alloc]initWithFrame:CGRectMake(15, 50-300, ScreenWidth-30, 70)];pagefiveImage1.image = [UIImage imageNamed:@"5_01"];[imageView5 addSubview:pagefiveImage1];pagefiveImage2 = [[UIImageView alloc]initWithFrame:CGRectMake(55, CGRectGetMaxY(pagefiveImage1.frame)+10-300, ScreenWidth-110, 10)];pagefiveImage2.image = [UIImage imageNamed:@"5_02"];pagefiveImage2.alpha = 0;[imageView5 addSubview:pagefiveImage2];pagefiveImage3 = [[UIImageView alloc]initWithFrame:CGRectMake(ScreenWidth/4, ScreenHeight-ScreenWidth/2-60+300, ScreenWidth/2, ScreenWidth/4)];pagefiveImage3.image = [UIImage imageNamed:@"5_03"];pagefiveImage3.alpha = 0;[imageView5 addSubview:pagefiveImage3];pagefiveImage4 = [[UIImageView alloc]initWithFrame:CGRectMake(-ScreenWidth/2, ScreenHeight-ScreenWidth*5/4, ScreenWidth*4, ScreenWidth*4)];pagefiveImage4.image = [UIImage imageNamed:@"5_05"];pagefiveImage4.alpha = 0;[self rotate360DegreeWithImageView:pagefiveImage4];[imageView5 addSubview:pagefiveImage4];imgView = [[UIImageView alloc]initWithFrame:CGRectMake(50, ScreenHeight-ScreenWidth*4/5, 30-30, 30-30)];[self tomAnimationWithName:@"run" count:9];imgView.alpha = 0;[imageView5 addSubview:imgView];
}

2、初始化scrollView

- (void)setupScrollView
{// 添加scrollViewUIScrollView *scrollView = [[UIScrollView alloc] init];scrollView.frame = self.view.bounds;CGFloat contentW = scrollView.bounds.size.width * XXNewfeatureImageCount;[self.view addSubview:scrollView];scrollView.contentSize = CGSizeMake(contentW, 0);scrollView.pagingEnabled = YES;scrollView.bounces = NO;scrollView.showsHorizontalScrollIndicator = NO;scrollView.delegate = self;// 添加图片CGFloat imageW = scrollView.bounds.size.width;CGFloat imageH = scrollView.bounds.size.height;imageView1 = [[UIImageView alloc] init];imageView1.frame = CGRectMake(0 * imageW, 0, imageW, imageH);[scrollView addSubview:imageView1];imageView2 = [[UIImageView alloc] init];imageView2.frame = CGRectMake(1 * imageW, 0, imageW, imageH);imageView2.alpha = 0;[scrollView addSubview:imageView2];imageView3 = [[UIImageView alloc] init];imageView3.frame = CGRectMake(2 * imageW, 0, imageW, imageH);[scrollView addSubview:imageView3];imageView5 = [[UIImageView alloc] init];imageView5.frame = CGRectMake(3 * imageW, 0, imageW, imageH);imageView5.userInteractionEnabled = YES;imageView5.alpha = 0;[scrollView addSubview:imageView5];// 添加跳转按钮UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];button.frame = CGRectMake(0, 0, 150, 30);[button setTitle:@"进入APP" forState:UIControlStateNormal];button.layer.borderWidth = 1.0;button.layer.borderColor = [UIColor colorWithWhite:0.915 alpha:1.000].CGColor;button.titleLabel.font = [UIFont systemFontOfSize:14.0];[button addTarget:self action:@selector(getstart) forControlEvents:UIControlEventTouchUpInside];CGFloat centerX = imageView5.bounds.size.width * 0.5;CGFloat centerY = imageView5.bounds.size.height - 88;button.center = CGPointMake(centerX, centerY);[imageView5 addSubview:button];
}

UIScrollViewDelegate method

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{offsetX = scrollView.contentOffset.x;NSLog(@"%f",offsetX);int page = offsetX / scrollView.bounds.size.width + 0.5;#pragma mark --- 此处写动画if (offsetX <= ScreenWidth/2) {[self firstPage];}else if (offsetX > ScreenWidth/2 && offsetX <= ScreenWidth+ScreenWidth/2) {[self secondPage];}else if (offsetX > ScreenWidth+ScreenWidth/2 && offsetX <= ScreenWidth*2+ScreenWidth/2) {[self thirdPage];}else if (offsetX > ScreenWidth*2+ScreenWidth/2 && offsetX <= ScreenWidth*3+ScreenWidth/2) {[self lastPage];}self.pageControl.currentPage = page;
}

3、gif的动画和旋转动画

#pragma mark --- UIImageView显示gif动画
- (void)tomAnimationWithName:(NSString *)name count:(NSInteger)count
{// 如果正在动画,直接退出if ([imgView isAnimating]) return;// 动画图片的数组NSMutableArray *arrayM = [NSMutableArray array];// 添加动画播放的图片for (int i = 0; i < count; i++) {// 图像名称NSString *imageName = [NSString stringWithFormat:@"%@%d.png", name, i+1];// ContentsOfFile需要全路径NSString *path = [[NSBundle mainBundle] pathForResource:imageName ofType:nil];UIImage *image = [UIImage imageWithContentsOfFile:path];[arrayM addObject:image];}// 设置动画数组imgView.animationImages = arrayM;// 重复1次imgView.animationRepeatCount = 0;// 动画时长imgView.animationDuration = imgView.animationImages.count * 0.05;// 开始动画[imgView startAnimating];
}#pragma mark --- 旋转动画
- (void)rotate360DegreeWithImageView:(UIImageView *)imageView
{CABasicAnimation *animation = [ CABasicAnimationanimationWithKeyPath: @"transform" ];animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];//围绕Z轴旋转,垂直与屏幕animation.toValue = [ NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI, 0.0, 0.0, 1.0) ];animation.duration = 5;//旋转效果累计,先转180度,接着再旋转180度,从而实现360旋转animation.cumulative = YES;animation.repeatCount = MAXFLOAT;//在图片边缘添加一个像素的透明区域,去图片锯齿CGRect imageRrect = CGRectMake(0, 0,imageView.frame.size.width, imageView.frame.size.height);UIGraphicsBeginImageContext(imageRrect.size);[imageView.image drawInRect:CGRectMake(1,1,imageView.frame.size.width-2,imageView.frame.size.height-2)];imageView.image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();[imageView.layer addAnimation:animation forKey:nil];
}

三、运行效果

运行效果图如下图:

IOS炫酷的引导界面

代码地址如下:
http://www.demodashi.com/demo/11246.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

IOS炫酷的引导界面相关推荐

  1. HTML+CSS实现炫酷的登录界面

    你好,我是罡罡同学! 代码谱第一页忘掉心上人,最后一页...... 谢谢大家的支持,您的一键三连是 罡罡同学前进的最大动力! 打赏一点钱,帮我买包辣条,继续创作,谢大家! 一键三连 一键三连 一键三连 ...

  2. ps cc 生成html,Adobe Photoshop CC 2017制作炫酷的UI界面

    最近有网友向小编咨询UI界面的制作方法,小编今天给小伙伴们分享一个Adobe Photoshop CC 2017超级酷炫的<UI设计小教程>,让我们一起来打造一枚流光质感界面吧~.感兴趣的 ...

  3. iOS炫酷动画图案、多种选择器、网络测速、滑动卡片效果等源码

    iOS精选源码 对网络进行测速 自实现大标题,配合原生骨架屏demo 简单方便的pickerVIew记录数据 LZPickerView 科技风绘制组件,简单快速"画"出炫酷图案 R ...

  4. 炫酷登录注册界面【超级简单 jQuery+JS+HTML+CSS实现】

    一:源码获取 这两天根据需求写了一个比较好看的有动态效果的登录注册切换页面,这里我将源码资源分享给大家,大家可以直接免费下载使用哦,没有 vip 的小伙伴找我私聊发送"登录注册"即 ...

  5. 黑色炫酷动态引导页404页面源码 自适应

    介绍: 这款404页面以黑灰色背景为主调,看上去简洁大气,还有不断变化的多边形动画会跟随鼠标或者触摸而动. 正中间是404,网页不见了文字(因为是文字,修改起来非常方便.)下面是你网站的菜单,也是可以 ...

  6. python的打开界面_Python 实现炫酷的启动界面

    有人会为你哭就说明你是个东西,不然你就不是. 第一步实现一个ascii图标的打印,比如 print ''' __ __ _____ _ ___ __ _ _____ ___ \ \ / / / _ \ ...

  7. Flutter 历时5天,我终于做出它!!!(炫酷的引导页、登录界面)

    小知识,大挑战!本文正在参与"程序员必备小知识"创作活动. 前言:五天前,我发布了很多登录界面的UI,并发起投票:https://juejin.cn/post/7010922696 ...

  8. Android炫酷的UI界面

    Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...

  9. 【无标题】黑炫酷的监控界面,实际上是用了什么开源工具?

    今天austin项目来给大家整点不一样的:花点时间跟着文章做完,屏幕壁纸就可以有了,我来上个图,大家就懂了. 每当同事一瞄你的电脑,发现都是图形化的.黑色的看起来就比较高端的界面:"嗯,这逼 ...

最新文章

  1. 视频检测分割--Deep Feature Flow for Video Recognition
  2. 01-html介绍和head标签
  3. 008_SpringBoot视图层技术jsp
  4. ftp安装和虚拟用户创建(终于搞清楚了)
  5. 剑指Offer - 面试题17. 打印从1到最大的n位数
  6. enum与int、String之间的转换
  7. 应用中的图像识别:为什么以及如何使用
  8. linux 查看cuda版本_Ubuntu18.04+Tensorflow GPU版本环境搭建
  9. 狗换了新主人会想旧主人吗?
  10. C#工程添加了DLL编译运行时却提示”无法加载DLL“的解决方案
  11. linux命令详解——sar
  12. 网上十大经典黑客软件大曝光(转)
  13. html5如何添加图片菜鸟教程,菜鸟入门教程 HTML5的常见用法
  14. 郑州大学计算机专业国际学院,郑州大学国际学院怎么样?郑州大学国际学院好吗?(历年分数、专业设置、校园环境、教学实力、名人校友) - 职友集...
  15. 光辉岁月--beyond 献给麦德拉
  16. 关于PHPExcel导出单元格换行的问题
  17. Spire.Doc利用word样式读取word文字内容(.NET)
  18. 《数据可视化技术》 太平洋汽车销售分析
  19. java版tp指令,VAG TP 2.0完整的AT命令列表
  20. redis数据丢失及解决

热门文章

  1. python 扩展_用Python方法对Cursor进行扩展
  2. 【日志】数字电路电子钟制作日志
  3. 一文带你入门C++,类与对象、6个默认成员函数、this指针以及static关键字。
  4. 线程池参数如何设置?
  5. mysql表的增删查改
  6. SpringMVC框架第一天
  7. 什么是 Python 自省?
  8. SDUT 2603:Rescue The Princess
  9. 实体验证---测试代码
  10. 学习笔记 VB.NET 特殊字符