iOS实现翻页效果动画实例代码

发布时间 - 2026-01-11 01:15:01    点击率:

大体思路:

在self.view 上放置一个label,label.text从数组中获得,当点击上下页按钮的时候,改变label.text,并且执行翻页效果动画.

效果如图:

主要代码:

#pragma mark - 下一页按钮响应事件
- (void)nextPage:(UIButton *)btn {
  _forwardBtn.enabled = YES;
  if (_count<_arr.count-1) {
    btn.enabled = YES;
    _label.text = [_arr objectAtIndex:_count+1];
    NSString *subtypeString;
    subtypeString = kCATransitionFromRight;
    [self transitionWithType:@"pageCurl" WithSubtype:subtypeString ForView:self.view];
    _count = _count + 1;
  } else {
    _count = _arr.count - 1;
    btn.enabled = NO;
    [self showAlert:@"已经是最后一页咯,亲(づ ̄ 3 ̄)づ"];
  }
  NSLog(@"%ld", (long)_count);

}

#pragma CATransition动画实现
/**
 * 动画效果实现
 *
 * @param type  动画的类型 在开头的枚举中有列举,比如 CurlDown//下翻页,CurlUp//上翻页
,FlipFromLeft//左翻转,FlipFromRight//右翻转 等...
 * @param subtype 动画执行的起始位置,上下左右
 * @param view  哪个view执行的动画
 */
- (void) transitionWithType:(NSString *) type WithSubtype:(NSString *) subtype ForView : (UIView *) view {
  CATransition *animation = [CATransition animation];
  animation.duration = 0.7f;
  animation.type = type;
  if (subtype != nil) {
    animation.subtype = subtype;
  }
  animation.timingFunction = UIViewAnimationOptionCurveEaseInOut;
  [view.layer addAnimation:animation forKey:@"animation"];
}

主要就是熟悉一下简单动画的实现了

本项目gitHub地址:https://github.com/iOSJason/PageBlurDemo.git

2 添加启动页和手势控制的翻页效果实现,添加swipe手势后画面切换更生动.

效果图:


#pragma mark - 手势
- (void)configTapGes {
  _fromRightSwip = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(nextPage:)];
  _fromRightSwip.direction = UISwipeGestureRecognizerDirectionLeft;
  [self.view addGestureRecognizer:_fromRightSwip];

  _fromLeftSwip = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(forwardPage:)];
  _fromLeftSwip.direction = UISwipeGestureRecognizerDirectionRight;
  [self.view addGestureRecognizer:_fromLeftSwip];
}
//判断是否是第一次进入程序
if (![[[NSUserDefaults standardUserDefaults] objectForKey:@"isFirst"] isEqualToString:@"yes"]) {
      //显示提示
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"tishi" message:@"" delegate:self cancelButtonTitle:@"晓得了" otherButtonTitles: nil];
    [alert show];
    [[NSUserDefaults standardUserDefaults]setObject:@"yes" forKey:@"isFirst"];
  }

动画效果和上一个是一种效果,具体代码请看我的gibHub,和上一个项目在一个地址里面,这个在 SwipeGesturePageBlurDemo 分支中.

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


# ios  # 翻页动画效果  # 翻页  # ios电子书翻页效果代码详解  # iOS图片界面翻页切换效果  # iOS实现日历翻页动画  # 实例讲解iOS中的UIPageViewController翻页视图控制器  # iOS开发中使用屏幕旋转功能的相关方法  # iOS开发中控制屏幕旋转的编写方法小结  # iOS拍照后图片自动旋转90度的完美解决方法  # IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)  # iOS渐变圆环旋转动画CAShapeLayer CAGradientLayer  # iOS基于CATransition实现翻页、旋转等动画效果  # 是一种  # 下一页  # 中有  # 上下左右  # 如图  # 下页  # 大家多多  # 组中  # 判断是否  # 实现了  # 更生动  # objectAtIndex  # _label  # NSString  # subtypeString  # _count  # enabled  # transitionWithType  # count 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速搭建FTP站点实现文件共享?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  如何用y主机助手快速搭建网站?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  网站优化排名时,需要考虑哪些问题呢?  南京网站制作费用,南京远驱官方网站?  如何在Windows虚拟主机上快速搭建网站?  Laravel如何使用Eloquent进行子查询  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  如何快速搭建高效可靠的建站解决方案?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  如何挑选优质建站一级代理提升网站排名?  英语简历制作免费网站推荐,如何将简历翻译成英文?  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Laravel如何集成Inertia.js与Vue/React?(安装配置)  如何在阿里云购买域名并搭建网站?  Laravel怎么清理缓存_Laravel optimize clear命令详解  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何撰写建站申请书?关键要点有哪些?  Swift中循环语句中的转移语句 break 和 continue  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  详解Android——蓝牙技术 带你实现终端间数据传输  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  北京网站制作公司哪家好一点,北京租房网站有哪些?  实例解析Array和String方法  nodejs redis 发布订阅机制封装实现方法及实例代码  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何在云主机上快速搭建网站?  javascript读取文本节点方法小结  如何在景安云服务器上绑定域名并配置虚拟主机?  香港服务器选型指南:免备案配置与高效建站方案解析  HTML 中动态设置元素 name 属性的正确语法详解  长沙做网站要多少钱,长沙国安网络怎么样?