IOS菜鸟的所感所思(十六)—— 立体式的切换视图
来源:互联网 发布:会计软件单机版 编辑:程序博客网 时间:2024/06/16 08:45
目标:运用UISwipeGestureRecognizer和动画制作立体式切换视图。
//定义两个手势分别向左向右滑动
@property (nonatomic,strong) UISwipeGestureRecognizer *leftSwipeGestureRec;
@property (nonatomic,strong) UISwipeGestureRecognizer *rightSwipeGestureRec;
@property (weak, nonatomic) IBOutletUIImageView *imageView;
@property (nonatomic)NSInteger index;
- (void)viewDidLoad {
[superviewDidLoad];
self.index =0;
//[self setPicProperty];
//当界面加载后会出现的图片
self.imageView.image = [UIImageimageNamed:[NSStringstringWithFormat:@"picture%ld.jpg",self.index]];
[selfinitGesture];
}
//初始化手势的左右滑动,并会响应的方法
- (void)initGesture{
self.leftSwipeGestureRec = [[UISwipeGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleSwipes:)];
self.rightSwipeGestureRec = [[UISwipeGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleSwipes:)];
self.leftSwipeGestureRec.direction = UISwipeGestureRecognizerDirectionLeft;
self.rightSwipeGestureRec.direction = UISwipeGestureRecognizerDirectionRight;
[self.viewaddGestureRecognizer:self.leftSwipeGestureRec];
[self.viewaddGestureRecognizer:self.rightSwipeGestureRec];
}
//响应的方法
- (void)handleSwipes:(UISwipeGestureRecognizer *)sender{
if (sender.direction ==UISwipeGestureRecognizerDirectionLeft) {
[selfswipeNextPic];
}
if (sender.direction ==UISwipeGestureRecognizerDirectionRight) {
[selfswipeLastPic];
}
}
//向左滑动时会进行的操作
- (void)swipeNextPic{
self.index++;
if (self.index >5) {
self.index =0;
}
self.imageView.image = [UIImageimageNamed:[NSStringstringWithFormat:@"picture%ld.jpg",self.index]];
CATransition *ca = [CATransitionanimation];
/*1.#define定义的常量
kCATransitionFade 交叉淡化过渡
kCATransitionMoveIn 新视图移到旧视图上面
kCATransitionPush 新视图把旧视图推出去
kCATransitionReveal 将旧视图移开,显示下面的新视图
2.用字符串表示
pageCurl 向上翻一页
pageUnCurl 向下翻一页
rippleEffect 滴水效果
suckEffect 收缩效果,如一块布被抽走
cube 立方体效果
oglFlip 上下翻转效果*/
//ca.type = @"cube";
//ca.type = @"pageCurl";
//ca.type = @"rippleEffect";
ca.type =@"oglFlip";
ca.subtype = kCATransitionFromRight;
ca.duration =2.0;
ca.startProgress =0.1;
[self.imageView.layeraddAnimation:ca forKey:nil];
}
//向右滑动时
- (void)swipeLastPic{
self.index--;
if (_index <0) {
self.index =5;
}
self.imageView.image = [UIImageimageNamed:[NSStringstringWithFormat:@"picture%ld.jpg",self.index]];
CATransition *ca = [CATransitionanimation];
ca.type =@"cube";
ca.subtype = kCATransitionFromLeft;
ca.duration =2.0;
[self.imageView.layeraddAnimation:ca forKey:nil];
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
效果图:- IOS菜鸟的所感所思(十六)—— 立体式的切换视图
- IOS菜鸟的所感所思(九)——收藏视图的创建并对cell的初始化
- IOS菜鸟的所感所思(八)——coreData与网络歌曲的本地化
- IOS菜鸟的所感所思(十三)——数据的图形化
- IOS菜鸟的所感所思(十五)—— UIScrollView和UIPageControl的组合
- IOS菜鸟的所感所思(二)——UIKit中的UIDynamicAnimator
- IOS菜鸟的所感所思(三)——通过服务器接口获取数据
- IOS菜鸟的所感所思(四)——自定义UICollectionViewCell以及网络数据的添加。
- IOS菜鸟的所感所思(五)——对歌曲地址的获取与解析
- IOS菜鸟的所感所思(六)——网络歌曲的播放与kvo模式
- IOS菜鸟的所感所思(七)——获取网络图片并添加
- IOS菜鸟的所感所思(十)——专辑接口和专辑中歌曲数据的获得(上)
- IOS菜鸟的所感所思(十二)——专辑接口和专辑中歌曲数据的获得(下)
- IOS菜鸟的所感所思——UITableView中数据之间的顺序与反向传递
- IOS菜鸟的所感所思(十四)——解析专辑获得专辑中的歌曲以及图片的优化
- IOS菜鸟的所感所思(十一)——统计文本中单词出现的次数并按照次数高低排序
- 所思,所感
- Android技术——视图切换(四)“ViewSwitcher+手势识别”实现视图的滑动切换
- 神经网络总结(初稿)
- 算法与数据结构八日谈之六——数据结构专题(uncompleted)
- LeetCode 219: Contains Duplicate II
- 黑马程序员——12_File_deleteOnExit()试验
- Longest Substring Without Repeating Characters
- IOS菜鸟的所感所思(十六)—— 立体式的切换视图
- C语言-解析命令行参数
- 二叉树相关算法总结
- K650c + Ubuntu15.04双显卡切换
- PHP 类的一些知识点
- java 获取时间
- 应用select 函数控制多线程中子线程结束方法
- HBase的LSM树
- 深入浅出--UNIX多进程编程之fork()函数