图片轮播器

?





1

SB里只需要两个控件:

UIScrollView

UIPageControl

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

<br><br><br>@interface
LYViewController () <UIScrollViewDelegate>

/** scrollView */

@property
(weak, nonatomic) IBOutlet
UIScrollView *scrollVIew;

/** 图片页数 */

@property
(weak, nonatomic) IBOutlet
UIPageControl *pageNumber;

/** timer */

@property
(nonatomic, strong) NSTimer
*timer;

@end

@implementation
LYViewController

- (void)viewDidLoad

{

    [super
viewDidLoad];

    // 设置图片

    for
(int i = 0; i < kImageCount; i ++) {

        UIImageView *imageView = [[UIImageView alloc] init];

        imageView.frame = CGRectMake(i * kWidth, 0, kWidth, kHeight);

        NSString
*imageName = [NSString
stringWithFormat:@"img_%02d", i+1];

        imageView.image = [UIImage imageNamed:imageName];

        [self.scrollVIew addSubview:imageView];

    }

    // 滚动效果

    self.scrollVIew.contentSize = CGSizeMake(kImageCount * kWidth, kHeight);

    // 取消垂直方向的滚动条

    self.scrollVIew.showsVerticalScrollIndicator = NO;

    // 半自动分页

    self.scrollVIew.pagingEnabled = YES;

    // 设置代理

    self.scrollVIew.delegate = self;

    // 自动播放

    [self
startTimer];

}

#pragma mark 代理方法

- (void)nextImage

{

    if
(self.pageNumber.currentPage == kImageCount - 1) {

        self.pageNumber.currentPage = 0;

    }else{

        self.pageNumber.currentPage ++;

    }

    

    CGFloat currentX = kWidth * (self.pageNumber.currentPage);

    // 设置手机屏幕的位置

    [self.scrollVIew setContentOffset:CGPointMake(currentX, 0) animated:YES];

}

// 只要图片滚动,就会计算图片当前页数

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    if
(!self.timer) {

        // 设置图片页数

        CGFloat currentX = self.scrollVIew.contentOffset.x;

        self.pageNumber.currentPage = (currentX + kWidth * 0.5) / kWidth;

    }

}

// 拖动时,关闭计时器

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{

    [self.timer invalidate];

    self.timer = nil;

}

// 结束拖动,开始计时器

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

{

    [self
startTimer];

}

// 开启计时器方法

- (void)startTimer

{

    self.timer = [NSTimer
timerWithTimeInterval:1.f target:self
selector:@selector(nextImage) userInfo:nil
repeats:YES];

    [[NSRunLoop
mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];

}

@end

图片轮播器,布布扣,bubuko.com

时间: 2024-10-10 10:14:28

图片轮播器的相关文章

UISCrollView —— 图片轮播器封装实现(三)——(第三讲)

1.分析 利用xib布局,然后自定义一个UIView,解析xib,然后利用控制器传入数据,将其加载到控制器的view上展示即可 2. 程序结构 3. 代码具体实现 1>  xib文件 2>  创建类 XMGPageView,然后将其与xib文件关联,选中xib文件,然后设置下文中 " custom class " 为定义的类,让其来管理xib 1>    (如图,设置xib与类关联) 2>  XMGPageView.h 文件中,声明分页图片数组属性,及其一个快速

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop

UISCrollView —— 图片轮播器实现(三)——(第二讲)

1. 所用知识点 1> UIScrollView的基本属性,和UIPageControl设置,还有就是要用到NSTimer来定时实现UIScrollView的图片轮播 2> NSTimer简单介绍: 2.1  NSTimer叫做“定时器”,它的作用如下 * 在指定的时间执行指定的任务 * 每隔一段时间执行指定的任务 2.2  NSTimer简单使用: 1> 调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithTimeInterval:(NST

Android高级图片滚动控件,编写3D版的图片轮播器

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博客了,我也是深感惭愧.那么今天的这篇既然是阔别了一个多月的文章,当然要带来更加给力点的内容了,那么话不多说,赶快进入到今天的正题吧. 说 到图片轮播器,很多的Android应用中都会带有这个功能,比如说网易新闻.淘宝等.最新我们公司的一款应用也加入了这个功能,并且在图片轮播的基础上 还增加了三维立体

ios开发图片轮播器以及定时器小问题

一:图片轮播器效果如图:能实现自动轮播,到最后一页时,轮播回来,可以实现拖拽滚动 二:代码: 1 #import "ViewController.h" 2 static CGFloat const imageCount = 5; 3 @interface ViewController ()<UIScrollViewDelegate> 4 /*scrollView*/ 5 @property (nonatomic,weak)UIScrollView *scroll; 6 /*

UIScorllView和UIPageControl的使用实现图片轮播器

首先我们要先建一个project,选择iOS下的第一个Application 中的Single View Application 开始工作已经准备完毕现在我们进入到Main.storyboard拖控件 需要用到的控件有 UIScrollView也就是滚动的那个 UIPageControl也就是图片下面那几个小点 NSTimer就是定时器让其自动换页的 第一步:拖控件连线 在Main.storyboard拖一个UIScrollView放在屏幕上,在UIScrollView下面放一个UIPageCo

IOS 05 UIScrollView介绍 图片轮播器

移动设备的屏幕?大?小是极其有限的,因此直接展?示在?用户眼前的内容也相当有限 当展?示的内容较多,超出?一个屏幕时,?用户可通过滚动?手势来查看屏幕以外的内容 普通的UIView不具备滚动功能,不能显?示过多的内容 UIScrollView是?一个能够滚动的视图控件,可以?用来展?示?大量的内容,并且可以通过滚 动查看所有的内容 在IOS中UIScrollView这个控件还是比较常用和重要的. 很多时候,我们想在UIScrollView正在滚动 或 滚动到某个位置 或者 停?止滚动 时做?一些

Swift版本的图片轮播器框架

由于在开发中,总是要写图片轮播器之类的东东,写的烦了,忍不住就用Swift写了一个非常方便的图片轮播器的框架https://github.com/SarielTang/CycleView 大家在使用的时候,只需要像这样: import CycleView class className : PictureCycleController{ //override loadView function //重写loadViewe方法 override func loadView() { super.lo

iOS开发 - UIPageControl实现分页图片轮播器

分页相关属性 只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示 一般会配合UIPageControl增强分页效果,UIPageControl常用属性如下 一共有多少页 @property(nonatomic) NSInteger numberOfPages; 当前显示的页码 @property(nonatomic) NSInteger currentPage; 只有一页时,是否需要隐藏页码指示器 @