iOS-小Demo--動(dòng)畫(huà)效果實(shí)例切換圖片

一年春好處,不在濃芳,小艷疏香,最嬌軟<不良蛙>

動(dòng)畫(huà)切換圖片的效果

上面是效果圖:

  • 代碼實(shí)現(xiàn)部分:
    定義兩個(gè)屬性
# 定義一個(gè)放照片的  UIImageView
@property (strong, nonatomic) UIImageView *OurImages;

# 記錄當(dāng)前展示的照片次序 (可以理解你正在展示的是第幾張照片  從0 開(kāi)始)
@property (assign, nonatomic) NSInteger currentIndex;

思路:

目的: 實(shí)現(xiàn)滑動(dòng)切換照片
解決思路: 首先需要展示照片的 UIImageView -----> 其次要有展示的圖片(我這是五張) -----> 通過(guò)左滑右滑切換展示的圖片 -----> 同時(shí)要有動(dòng)畫(huà)效果

上代碼:
# 創(chuàng)建 UIImageView
self.OurImages = [[UIImageView  alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview:self.OurImages];
    
// 圖片會(huì)在 View 中顯示  并且比例不變
    self.OurImages.contentMode = UIViewContentModeScaleAspectFill;
# 設(shè)置默認(rèn)的照片  和 默認(rèn)的次序   (這里要對(duì)應(yīng)  第一張圖片 對(duì)應(yīng)下標(biāo)(次序) 0)
 self.OurImages.image = [UIImage imageNamed:@"001 (1).jpg"];
 self.currentIndex = 0; 

# 創(chuàng)建 并 添加兩個(gè)手勢(shì)  左滑右滑
# 注意: 這個(gè)手勢(shì)  默認(rèn)屬性direction(方向)只有向右滑動(dòng)    所以要為左滑動(dòng)更改下屬性  向右是默認(rèn) 可以不改
 UISwipeGestureRecognizer *left = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftAction:)];
  left.direction = UISwipeGestureRecognizerDirectionLeft;
   [self.view addGestureRecognizer:left];
 
 UISwipeGestureRecognizer *right = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightAction:)];
    [self.view addGestureRecognizer:right];
    ```

```code

# 左滑觸及的方法 目的是 上一張照片 給自己定義的方法傳參數(shù)標(biāo)記1
- (void)leftAction:(UISwipeGestureRecognizer *)sender
{
    [self transitionAnimation:1];

}

# 右滑觸及的方法 目的是 下一張照片 給自己定義的方法傳參數(shù)標(biāo)記0
- (void)rightAction:(UISwipeGestureRecognizer *)sender
{
    [self transitionAnimation:0];
}
上面是主題思路完成 下面就是完成細(xì)節(jié)的切換 實(shí)現(xiàn)滑動(dòng)觸及的方法細(xì)節(jié)
# 根據(jù)傳入的參數(shù)  切換不同的照片
- (void)transitionAnimation:(BOOL)isNext
{
// 創(chuàng)建轉(zhuǎn)場(chǎng)動(dòng)畫(huà)
    CATransition *trans = [[CATransition alloc] init];
    // 效果 支持的字段參考 上一篇?jiǎng)赢?huà)的總結(jié)
    trans.type = @"cube";
    if (isNext)
    {
        trans.subtype = kCATransitionFromRight;
    }else
    {
        trans.subtype = kCATransitionFromLeft;
    
    }
// 動(dòng)畫(huà)持續(xù)時(shí)間   
 trans.duration = 1.0f;
// 調(diào)用得到照片的方法
    self.OurImages.image = [self getImage:isNext];
    
  [self.OurImages.layer addAnimation:trans forKey:@"切換照片"];
}
- (UIImage *)getImage:(BOOL)isNext
{
    if (isNext)
    {
        // 當(dāng) currentIndex = 1時(shí)候  (1+1)%5 = 2;  下一張
        self.currentIndex = (self.currentIndex +1)%5;
    }else
    {
        // 當(dāng) currentIndex = 1時(shí)候  (1-1+5)%5 = 0; 上一張
      self.currentIndex = (self.currentIndex - 1 + 5)%5;
    }

    // 往數(shù)組里面添加圖片  圖片名與下標(biāo)名對(duì)應(yīng)
    NSString *imageName = [NSString stringWithFormat:@"001 (%ld).jpg",self.currentIndex + 1];
    
    return [UIImage imageNamed:imageName];
}

動(dòng)畫(huà)總結(jié)參考:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,523評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,252評(píng)論 4 61
  • 人人都是自媒體的素人時(shí)代 互聯(lián)網(wǎng)新技術(shù)及新平臺(tái)的涌現(xiàn),直播和短視頻行業(yè)如打了雞血一般,空前的火爆,由此也網(wǎng)生了不同...
    眾籌行者閱讀 418評(píng)論 0 1
  • 陳小冠幼兒園拼音已經(jīng)學(xué)習(xí)到下面最好個(gè)程度了,我一直處于輔佐作業(yè)的學(xué)習(xí)狀態(tài),直到他奶奶說(shuō)孩子老師說(shuō)了他拼音學(xué)的不好,...
    木木sani閱讀 655評(píng)論 0 1
  • 1、 微不足道的開(kāi)頭,往往暗藏一絲溫柔。 初入初三,重新分班,放眼望去盡是陌生的面孔映入眼簾,寂靜的教室一如從前,...
    安暖如夏m閱讀 1,042評(píng)論 14 17