iOS 图片循环滚动(切片效果)
- #import <UIKit/UIKit.h>
- @interface AppDelegate : UIResponder <UIApplicationDelegate>
- @property (strong, nonatomic) UIWindow *window;
- @end
- #import "AppDelegate.h"
- #import "RootViewController.h"
- @interface AppDelegate ()
- @end
- @implementation AppDelegate
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- // Override point for customization after application launch.
- self.window.backgroundColor = [UIColor whiteColor];
- self.window.rootViewController = [[RootViewController alloc] init];
- [self.window makeKeyAndVisible];
- return YES;
- }
- @end
- #import <UIKit/UIKit.h>
- @interface RootViewController : UIViewController
- @end
- #import "RootViewController.h"
- #define ImageCount 5
- @interface RootViewController ()
- {
- UIImageView *_imageView;
- int currentIndex;
- }
- @end
- @implementation RootViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- // 定义图片控件
- _imageView = [[UIImageView alloc] init];
- _imageView.frame = [UIScreen mainScreen].bounds;
- _imageView.contentMode = UIViewContentModeScaleAspectFit;
- _imageView.image = [UIImage imageNamed:@"0.jpg"];
- _imageView.userInteractionEnabled = YES;
- [self.view addSubview:_imageView];
- // 添加手势
- UISwipeGestureRecognizer *leftSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftSwipeAction:)];
- leftSwipe.direction = UISwipeGestureRecognizerDirectionLeft;
- [_imageView addGestureRecognizer:leftSwipe];
- UISwipeGestureRecognizer *rightSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeAction:)];
- rightSwipe.direction = UISwipeGestureRecognizerDirectionRight;
- [_imageView addGestureRecognizer:rightSwipe];
- }
- #pragma mark --向左滑动浏览下一张图片--
- - (void)leftSwipeAction:(UISwipeGestureRecognizer *)sender{
- [self transitionAnimation:YES];
- }
- #pragma mark --向右滑动浏览上一张图片--
- - (void)rightSwipeAction:(UISwipeGestureRecognizer *)sender{
- [self transitionAnimation:NO];
- }
- #pragma mark --旋转动画--
- - (void)transitionAnimation:(BOOL)isLeft{
- //创建转场动画对象
- CATransition *transition = [[CATransition alloc] init];
- //设置动画类型,注意对于苹果官方没公开的动画类型只能使用字符串,并没有对应的常量定义
- transition.type = @"cube";
- //设置子类型
- if (isLeft) {
- transition.subtype = kCATransitionFromRight;
- }else{
- transition.subtype = kCATransitionFromLeft;
- }
- //设置动画时常
- transition.duration = 0.8;
- //设置转场后的新视图添加转场动画
- _imageView.image = [self getImageByIndex:isLeft];
- [_imageView.layer addAnimation:transition forKey:@"KCTransitionAnimation"];
- }
- #pragma mark --获取相应的图片--
- - (UIImage *)getImageByIndex:(BOOL)isLeft{
- if (isLeft) {
- currentIndex = (currentIndex + ) % ImageCount;
- }else{
- currentIndex = (currentIndex - + ImageCount) % ImageCount;
- }
- NSString *imageName = [NSString stringWithFormat:@"%i.jpg",currentIndex];
- return [UIImage imageNamed:imageName];
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- @end
iOS 图片循环滚动(切片效果)的更多相关文章
- 特殊例子--JavaScript代码实现图片循环滚动效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 使用UIScrollView 结合 UIImageView 实现图片循环滚动
场景: 在开发工作中,有时我们需要实现一组图片循环滚动的情况.当我们使用 UIScrollView 结合 UIImageView 来实现时,一般 UIImageView 会尽量考虑重用,下面例子是以( ...
- cocos2d(背景图片循环滚动)
背景图片循环滚动 使用action 实现的: 主要有两个背景图片交替循环滚动:我选的两个背景图片的宽度都是1024的 ,所以定义了#define BGIMG_WIDTH 1024 代码如下: 在Hel ...
- 基于html5可拖拽图片循环滚动切换
分享一款基于html5可拖拽图片循环滚动切换.这是一款支持手机端拖拽切换的网站图片循环滚动特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id="s ...
- 图片循环滚动效果shader
背景无限循环滚动效果,有X和Y轴的速度控制,方便控制.见下图,操作步骤同之前的背景循环设置. shader如下: Shader "Custom/Scroll" { Properti ...
- iOS无限循环滚动scrollview
经常有园友会问"博主,有没有图片无限滚动的Demo呀?", 正儿八经的图片滚动的Demo我这儿还真没有,今天呢就封装一个可以在项目中直接使用的图片轮播.没看过其他iOS图片无限轮播 ...
- iOS开发 - 循环滚动的ScrollView
源码在这里,请多多指教. 由于开发需要,要用到循环自动滚动的scrollView,借鉴了前人的思路,重新设计了一个AutoSlideScrollView.先自吹自擂一翻吧: 借鉴UITableView ...
- php广告图片循环播放 幻灯片效果
<!DOCTYPE> <html> <head> <meta http-equiv="content-type" content=&quo ...
- UIScrollView 图片循环滚动
1:假如有6个图片:那个,Scrollview的大小加 7 个图片的大小 2: //ImageScrollView; UIScrollView *imageScroll = [[UIScrollVie ...
随机推荐
- Uncaught RangeError: Maximum call stack size exceeded解决思路
今天突然碰到这样的JavaScript错误:Uncaught RangeError: Maximum call stack size exceeded 这个翻译过来就是堆栈溢出了. 1.原因:有小类到 ...
- gitlab & gerrit & git & repo & jenkins
Omnibus GitLab documentation(中文安装说明) 在自己的服务器上部署 GitLab 社区版->较为全面 GIT & REPO & GERRIT (三) ...
- PHP CURL 多线程 GET/POST 类
PHP CURL 多线程 GET/POST 类 2015-01-01 分类:技术文章 阅读(623) 评论(0) 如果有需要更正或更高效的建议,欢迎在OSchina分享~\(≧▽≦)/~ http:/ ...
- HttpStatusCodeResult
HttpStatusCodeResult:让mvc回传特定的http状态代码与消息给客户端,对于一些特殊的http响应,可利用httpStatusCodeResult帮助我们响应适当的状态代码: 1X ...
- hdf第二周,每天加班,周末加班,周日健身
----------------------------------------------------------------------------- 受到挫折,写一些简单的练习,增加成就感 放大 ...
- linux C gcc -lm
使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数 ...
- 汇总10.4版本ArcGIS Server与ArcMap 安装+SDE+注册数据源(非破解)
文档参考了Server技术支持部各位前辈的总结文档. win10 + Server 10.4 + ArcMap 10.4 + Oracle instant client (32位 和 64位) 安装 ...
- Delphi 指针
1:指针的赋值. type RTestInfo = record Age:Integer; end; PtestInfo = ^ RtestInfo; var Test1,Test2:PtestInf ...
- 浅谈 举家搬迁静态文件到CDN
由于七牛CDN最近做活动,对于标准用户可以免费使用如下优惠 10 GB 存储空间 10 G/月 下载流量 10 万次/月 PUT/DELETE 请求 100 万次/月 GET 请求 以上这些指标直接就 ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(11)-蓝牙串口代码分析
代码实例:点击打开链接 实现的功能是从uart口发送数据至另一个蓝牙串口,或是从蓝牙读取数据通过uart打印出数据. int main(void) { // Initialize leds_init( ...