UICollectionView實現動畫輪播

2021-07-14 12:56:24 字數 2299 閱讀 6459

最近朋友接手乙個專案,時間有點緊趕,便請我幫忙實現乙個功能,首頁滾**,加動畫效果。以前用scrollview做過類似輪播圖,但是用在這裡可能會有點麻煩,就上網研究了下collectionview,做出來後發現,其實很簡單的,先看效果

下面上**

//

// viewcontroller.m

// collectionview輪播

//// created by yuepengfei on 16/7/1.

//#import "viewcontroller.h"

#import "criclelayout.h"

@inte***ce

viewcontroller ()

@property (nonatomic, strong) uicollectionview *mycollectionview;

@end

static

nsstring * const cellidentifier = @"cellidentifier";

@implementation

viewcontroller

- (void)viewdidload

#pragma mark - collectionview

- (uicollectionview *)mycollectionview

return _mycollectionview;

}#pragma mark ---

- (nsinteger)numberofsectionsincollectionview:(uicollectionview *)collectionview

- (uicollectionviewcell *)collectionview:(uicollectionview *)collectionview cellforitematindexpath:(nsindexpath *)indexpath

- (nsinteger)collectionview:(uicollectionview *)collectionview numberofitemsinsection:(nsinteger)section

- (void)collectionview:(uicollectionview *)collectionview didselectitematindexpath:(nsindexpath *)indexpath

- (void)didreceivememorywarning

//

// criclelayout.m

// collectionview輪播

//// created by yuepengfei on 16/7/1.

//#import "criclelayout.h"

@implementation

criclelayout

- (void)preparelayout

- (nsarray

*)layoutattributesforelementsinrect:(cgrect)rect ];

return attributes;

}- (cgpoint)targetcontentoffsetforproposedcontentoffset:(cgpoint)proposedcontentoffset withscrollingvelocity:(cgpoint)velocity

}// 補償差值

proposedcontentoffset.x -= distance;

//防止在第乙個和最後乙個 卡住

if (proposedcontentoffset.x

< 0)

if (proposedcontentoffset.x > (self

.collectionview

.contentsize

.width - self

.sectioninset

.left - self

.sectioninset

.right - self

.itemsize

.width))

return proposedcontentoffset;

}//滾動的時會呼叫

- (bool)shouldinvalidatelayoutforboundschange:(cgrect)newbounds;

UICollectionView實現書本翻頁布局

效果圖 初始化 instancetype initwithframe cgrect frame return self 預設自定義布局,布局圓角 和 中心線 判斷cell的奇數偶數 if layoutattributes.indexpath.item 2 0 else 圓角設定 uirectcorn...

animation iOS實現動畫

uiview動畫 動畫特點 全部都是類方法 直接類去呼叫 1.uiview 直接呼叫的 2.block方法 步驟 1.開始動畫 2.中間寫你要執行的動畫 3.提交動畫 開始動畫 引數1 動畫的id 引數2 攜帶的引數 uiview beginanimations donghua context ha...

翻書動畫實現

最近利用空餘時間實現了一下翻書的動畫 主要利用了3個方面的東西 1 canvas的clip方法 2 設定path路徑,這其中包括了bezier函式的理解 3 繪圖原理參考 此大神 廢話不多說,直接原始碼吧 import android.animation.animator import androi...