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

时间:2022-09-19 12:53:21

大体思路:

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

效果如图:

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

主要代码:

?
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
#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手势后画面切换更生动.

效果图:

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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 分支中.

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

原文链接:http://www.jianshu.com/p/885787a0932a?utm_source=tuicool&utm_medium=referral