欢迎界面,还是比较简单的,一个UIScrollView控件,一个UIPageControl,几个UIImageView即可摆平。在这里光玩这些,就显得诚意不足了。特意拓展一下,再加几个UIButton,可以让这个欢迎界面变成可点击的,可滑动的模块添加在页面中,然后再加一个NSTimer,让它自己隔2秒自己循环滑动着,立马让它变成可以放在主页用于展示主打商品的模块。

  下面直接展示可直接运行的Demo,代码都挺简单,这次就不添加注解了。

#import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate>

@property(nonatomic,strong) UIScrollView *scrollerView;

@property(nonatomic,strong) NSArray *images;

@property(nonatomic,strong) NSMutableArray *imageButtons;

@property(nonatomic,strong) UIPageControl *pageControl;

@end

@implementation ViewController

-(NSArray *)images{

if (!_images) {

_images = @[@"1.png",@"2.png",@"3.png",@"4.png",@"5.png",@"6.png"];

}

return _images;

}

-(NSMutableArray *)imageButtons{

if (!_imageButtons) {

_imageButtons = [NSMutableArray array];

}

return _imageButtons;

}

- (void)viewDidLoad {

[super viewDidLoad];

[self initScrollerView];

}

-(void)initScrollerView{

UIScrollView *scrollerView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

self.scrollerView = scrollerView;

scrollerView.contentSize = CGSizeMake(self.view.bounds.size.width * self.images.count, self.view.bounds.size.height);

scrollerView.pagingEnabled = YES;

scrollerView.bounces = NO;

scrollerView.delegate = self;

[self.view addSubview:scrollerView];

for (int i = 0; i<self.images.count; i++) {

UIImage *image = [UIImage imageNamed:self.images[i]];

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

imageView.frame = CGRectMake(self.view.bounds.size.width * i, 0, self.view.bounds.size.width, self.view.bounds.size.height);

imageView.contentMode = UIViewContentModeScaleToFill;

[scrollerView addSubview:imageView];

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];

button.frame = CGRectMake(self.view.bounds.size.width * i, 0, self.view.bounds.size.width, self.view.bounds.size.height);

button.backgroundColor = [UIColor clearColor];

[button addTarget:self action:@selector(clickScrollerViewButton:) forControlEvents:UIControlEventTouchUpInside];

[scrollerView addSubview:button];

[self.imageButtons addObject:button];

}

UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, scrollerView.bounds.size.height - 20, scrollerView.bounds.size.width, 10)];

self.pageControl = pageControl;

pageControl.numberOfPages = self.images.count;

pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];

pageControl.currentPageIndicatorTintColor = [UIColor whiteColor];

pageControl.userInteractionEnabled = NO;

[pageControl addTarget:self action:@selector(clickScrollerViewButton:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:pageControl];

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(changeImageByTimer) userInfo:nil repeats:YES];

[timer fireDate];

}

-(void)clickScrollerViewButton:(UIButton*)button{

NSInteger num = [self.imageButtons indexOfObject:button];

NSLog(@"%ld",(long)num);

}

-(void)changeImageByTimer{

self.pageControl.currentPage = (self.pageControl.currentPage+1)%self.images.count;

self.scrollerView.contentOffset = CGPointMake(self.pageControl.currentPage * self.view.bounds.size.width, 0);

}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

CGPoint point = scrollView.contentOffset;

NSInteger index = point.x / scrollView.frame.size.width;

self.pageControl.currentPage = index;

}

@end

iOS纯代码制作欢迎界面——UIScrollView, UIPageControl, UIImageView,UIButton, NSTimer的更多相关文章

  1. iOS纯代码工程手动快速适配

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...

  2. iOS纯代码手动适配 分类: ios技术 2015-05-04 17:14 239人阅读 评论(0) 收藏

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...

  3. 心跳(纯代码制作心形,animation动画)

    思路:利用两个长方形(比例是2:3 | 3:2)可以合成心形,然后利用动画,缩放大小实现心跳(纯代码),效果如下: <body> <div></div> </ ...

  4. ios - 纯代码创建collectionView

    开始考虑好一点点时间,因为一般的都是用xib,或者storyboard来写的.这次用纯代码...废话较多请看 首先把storyboard干掉,工程里面的main干掉 由于干掉了storyboard则启 ...

  5. UIScrollView,UIPageControl,UIImageView 实现图片轮播的效果

    上一篇博客介绍了如何将XCode创立的项目提交到Git版本控制,这次就直接做一个图片轮播的展示demo,刚好可以把UIScrollView.UIPageControl.UIImageView这三个控件 ...

  6. iOS 用代码搭建UI界面实例

    1.背景 学习IOS开发也差不多两个月了,赶鸭子上架的学习模式让我学习比较快,但是真心很累,每天有每天的工作进度,在学习的 时候需要边做一个项目真心有点累,但是看到自己的收获还是值得的.自己原来是做C ...

  7. Object-C iOS纯代码布局 一堆代码可以放这里!

    前言: 最近写的文章都是创业类,好吧,今天好好写写技术类的文章! 不过分享的不是IOS相关的文章,毕竟这几天在速成IOS,看的是object-c,由于速成的很快,好累! 好在现在基本已经入了点门道了, ...

  8. Objective-C iOS纯代码布局 一堆代码可以放这里!

    前言: 最近写的文章都是创业类,好吧,今天好好写写技术类的文章! 不过分享的不是IOS相关的文章,毕竟这几天在速成IOS,看的是objective-c,由于速成的很快,好累! 好在现在基本已经入了点门 ...

  9. iOS纯代码适配masonry中mas_的问题

    //equalto 和 mas_equalto 是有区别的.但是我们不打算去了解,可以通过添加以下代码来统一. //注意!! 宏定义必须要放在 import 引入头文件之前! //define thi ...

随机推荐

  1. Swift: Alamofire -> http请求 & ObjectMapper -> 解析JSON

    1 2 3 4 5 6 7 8 9 10 11 NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.js ...

  2. Android 开发——如何显示 GIF 动画

    gif 图动画在 android 中还是比较常用的,比如像新浪微博中,有很多 gif 图片,而且展示非常好,所以我也想弄一个.经过我多方的搜索资料和整理,终于弄出来了,其实 github 上有很多开源 ...

  3. Android NDK and OpenCV Development With Android Studio

    Android NDK and OpenCV Development With Android Studio Hujiawei 172 2014年10月22日 发布 推荐 0 推荐 收藏 4 收藏,5 ...

  4. 网络获取的XML的Pull解析

    <?xml version="1.0" encoding="utf-8" ?> - <students> - <student x ...

  5. js基础之数据类型

    一:JavaScript 数据类型:字符串.数字.布尔.数组.对象.Null.Undefined JavaScript 字符串;        var carname="Bill Gates ...

  6. js 基础对象一

    JavaScript 通常用于操作 HTML 元素. Document元素 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页 ...

  7. PAT1006

    At the beginning of every day, the first person who signs in the computer room will unlock the door, ...

  8. 【转】使IFRAME在iOS设备上支持滚动

    原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚 很长时间以来, iOS设备上Safari中超出边界的元素将 ...

  9. Win下安装Cygwin中的SSH服务

    windows和linux各有其优越性,可以安装在同一台电脑上,但切换要重启.同时拥有两台电脑,一台装win,一台装linux,自然非常好,但具备此条件的不多.本文介绍cygwin,它可以让你在win ...

  10. C#入门经典-第15章Windows 编程

    在使用Windows窗体时,就是使用System.Windows.Forms名称空间. .NET中的大多数控件都派生于System.Windows.Forms.Control类.