广告
返回顶部
首页 > 资讯 > 移动开发 >iOS实现图片自动切换效果
  • 176
分享到

iOS实现图片自动切换效果

iOS图片切换 2022-05-24 03:05:22 176人浏览 安东尼
摘要

本文实例为大家分享了iOS实现图片自动切换的具体代码,供大家参考,具体内容如下 #import "ViewController.h" #define ImageViewCount

本文实例为大家分享了iOS实现图片自动切换的具体代码,供大家参考,具体内容如下


#import "ViewController.h"
#define ImageViewCount 5
 
@interface ViewController ()<UIScrollViewDelegate>
 
@property (weak, nonatomic) IBOutlet UIScrollView *imageScrollView;
@property (weak, nonatomic) IBOutlet UIPageControl *imageViewPageControl;
@property (strong, nonatomic) NSTimer *timer;
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
 [super viewDidLoad];
 
 [self addImageView2ScrollView];
 self.imageScrollView.contentSize = CGSizeMake(self.imageScrollView.frame.size.width * ImageViewCount, 0);
 
 self.imageScrollView.delegate = self;
 self.imageScrollView.pagingEnabled = YES;//UIScrollView支持拖动分页
 self.imageViewPageControl.numberOfPages = ImageViewCount;
 
 [self addScrollTimer];
}
 
- (void)rotatePic{
 int currentPageIndex = self.imageViewPageControl.currentPage;
 if(++currentPageIndex == 5){
  currentPageIndex = 0;
 }
 CGFloat offsetX = currentPageIndex * self.imageScrollView.frame.size.width;
 [UIView animateWithDuration:1 animations:^{
  self.imageScrollView.contentOffset = CGPointMake(offsetX, 0);
 }];
}
 

- (void)addImageView2ScrollView{
 CGFloat imageWidth = self.imageScrollView.frame.size.width;
 CGFloat imageHeight = self.imageScrollView.frame.size.height;
 for(int i = 0;i <= ImageViewCount;i++){
  UIImageView *imageInScroll = [[UIImageView alloc] init];
  imageInScroll.frame = CGRectMake(i * imageWidth, 0, imageWidth, imageHeight);
  imageInScroll.image = [UIImage imageNamed:[NSString stringWithFORMat:@"img_%02d",i + 1]];
  [self.imageScrollView addSubview:imageInScroll];
 }
}
 
// 正滚动时执行
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
 CGFloat offX = self.imageScrollView.contentOffset.x;//(0,0)距离content内部左上顶点的x轴长度
 NSLog(@"~~~~~~~%f ^^^^^^%f", offX, self.imageScrollView.frame.size.width);
 int currentPageIndex = (offX + .5f * self.imageScrollView.frame.size.width) / self.imageScrollView.frame.size.width;
 self.imageViewPageControl.currentPage = currentPageIndex;
}
 
- (void)addScrollTimer{
 self.timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(rotatePic) userInfo:nil repeats:YES];
 [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
 
- (void)removeScrollTimer{
 [self.timer invalidate];//释放定时器
 self.timer = nil;
}
 
// 开始准备滚动时执行 移除定时滚动操作
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
 NSLog(@"~~~scrollViewWillBeginDragging");
 [self removeScrollTimer];
}
 
// 结束滚动后执行 添加定时滚动操作
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
 NSLog(@"~~~scrollViewDidEndDragging");
 [self addScrollTimer];
}
@end

UIScrollView的运用,以上代码中有详细注释,需注意2点:

注意设置contentSize属性。其中contentSize表示scroll内容尺寸大小

注意设置代理UIScrollViewDelegate,才可调用其中的方法

对于定时器NSTimer的运用需注意

线程的loop中添加定时器

注意使用完成回收NSTimer

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: iOS实现图片自动切换效果

本文链接: https://www.lsjlt.com/news/30383.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS实现图片自动切换效果
    本文实例为大家分享了iOS实现图片自动切换的具体代码,供大家参考,具体内容如下 #import "ViewController.h" #define ImageViewCount...
    99+
    2022-05-24
    iOS 图片切换
  • AndroidFlutter实现图片滑动切换效果
    目录前言SlideTransition 介绍示例效果实现总结前言 我们开始来介绍转换类的动画组件,实际上这类转换动画组件也可以自己通过 AnimatedBuilder&nb...
    99+
    2022-11-13
  • vue实现图片切换效果
    本文实例为大家分享了vue实现图片切换效果的具体代码,供大家参考,具体内容如下 1)v-if/v-show 二者都可以实现让元素隐藏和显示。但是实现原理不同: v-if 是通过将元素...
    99+
    2022-11-12
  • ViewPager实现图片切换效果
    本文实例为大家分享了ViewPager实现图片切换效果的具体代码,供大家参考,具体内容如下 xml布局: <RelativeLayout         android:lay...
    99+
    2022-11-13
  • iOS实现图片抖动效果
    本文实例为大家分享了iOS实现图片抖动效果的具体代码,供大家参考,具体内容如下 效果图: 核心代码: // // ViewController.m // 图标抖动 // // ...
    99+
    2022-05-28
    iOS 图片抖动
  • JavaScript怎么实现流动图片切换效果
    这篇文章主要介绍“JavaScript怎么实现流动图片切换效果”,在日常操作中,相信很多人在JavaScript怎么实现流动图片切换效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-19
  • jQuery如何实现图片切换动画效果
    这篇文章主要为大家展示了“jQuery如何实现图片切换动画效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现图片切换动画效果”这篇文章吧。效...
    99+
    2022-10-19
  • Android实现图片自动切换
    在Android中图片的自动切换不仅可以实现自动切换,而且还可以使用手动切换。而且一般在切换的时候,在图片下方还带有其他内容的切换,用来标记是第...
    99+
    2022-06-06
    自动 图片 Android
  • js实现图片数组中图片切换效果
    写一个图片切换的小案例,巩固一下setAttribute的用法。setAttribute()方法能够给dom元素添加属性并指定属性值,如果属性已经存在则更改属性值。 方法:将图片放入...
    99+
    2022-11-13
  • Unity Shader实现动态过场切换图片效果
    本文实例为大家分享了Unity Shader实现动态过场切换图片的具体代码,供大家参考,具体内容如下 一、简单介绍 Shader Language的发展方向是设计出在便携性方面可以和...
    99+
    2022-11-12
  • Vue实现简单图片切换效果
    本文实例为大家分享了Vue实现简单图片切换的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html lang="en">...
    99+
    2022-11-12
  • js实现图片轮播切换效果
    最近在b站上学习的时候,学到了一个用原生js实现图片轮播切换效果的实战,码下来收藏 上图是这个小实战的效果图,整个小实战所实现的功能是图片自动轮播切换、点击上下键图片切换上下图片、...
    99+
    2022-11-13
  • html和css怎么实现图片滚动切换效果
    这篇文章主要介绍“html和css怎么实现图片滚动切换效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“html和css怎么实现图片滚动切换效果”文章能帮助大家解决问题。HTML:<!DOCT...
    99+
    2023-06-27
  • vue自定义js图片碎片轮播图切换效果怎么实现
    这篇文章给大家分享的是有关vue自定义js图片碎片轮播图切换效果怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。定义一个banner.js文件,代码如下;window.re...
    99+
    2022-10-19
  • Android自定义ViewPager实现个性化的图片切换效果
    第一次见到ViewPager这个控件,瞬间爱不释手,做东西的主界面通通ViewPager,以及图片切换也抛弃了ImageSwitch之类的,开始让ViewPager来做。时间长...
    99+
    2022-06-06
    图片 viewpager Android
  • CSS3如何实现图片模糊切换效果
    这篇文章将为大家详细讲解有关CSS3如何实现图片模糊切换效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  <!DOCTYPE html> &nb...
    99+
    2022-10-19
  • 原生javascript实现图片轮播切换效果
    本文实例为大家分享了javascript实现图片轮播切换效果的具体代码,供大家参考,具体内容如下 效果如下: 代码部分: <!DOCTYPE html> <htm...
    99+
    2022-11-13
  • iOS实现卡片式滚动效果 iOS实现电影选片效果
    本文实例为大家分享了iOS实现卡片式滚动效果的具体代码,供大家参考,具体内容如下 先来张效果图吧: 直接上源码了: CardScrollView.h #import <U...
    99+
    2022-06-01
    iOS 卡片 滚动
  • iOS Segment带滑动条切换效果
    本文实例为大家分享了iOS Segment带滑动条切换效果的具体代码,供大家参考,具体内容如下 #import "ViewController.h"   @interface Vie...
    99+
    2022-11-13
  • iOS实现多控制器切换效果
    本文实例为大家分享了iOS实现多控制器切换效果的具体代码,供大家参考,具体内容如下 主控制器 ,管理控制器 .h文件 //宏 #define kScreenWidth  [UIScr...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作