iOS開發(fā)中的小技巧9:mjrefresh刷新自定義動畫

在開發(fā)中時常需要加刷新動畫,在一個項目中不同頁面進(jìn)行加載,此時相同的加載動畫會在不同頁面出現(xiàn)。

1.自定義一個繼承于MJRefreshGifHeader的header類,如下圖

1.1

2.在建成的MJMyRefreshGifHeader.m中進(jìn)行我們需要的操作

重寫prepare方法,設(shè)置刷新不同狀態(tài)下的動畫效果,設(shè)置圖片間隔

代碼如下:

- (void)prepare

{

[super prepare];

// 設(shè)置普通狀態(tài)的動畫圖片組

NSMutableArray *idleImages = [NSMutableArray array];

for (NSUInteger i = 5; i<=5; i++)

{

//將圖片按照動畫效果進(jìn)行統(tǒng)一命名為:以dropdown_loading_0為開頭的名字,通過i進(jìn)行查找展示

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]];

[idleImages addObject:image];

}

//通過setImages方法將自己的圖片設(shè)為MJRefreshStateIdle狀態(tài)圖片

[self setImages:idleImages forState:MJRefreshStateIdle];

// 隱藏刷新時間Lable

self.lastUpdatedTimeLabel.hidden = YES;

// 馬上進(jìn)入刷新狀態(tài)

[self beginRefreshing];

// 設(shè)置即將刷新狀態(tài)的動畫圖片(一松開就會刷新的狀態(tài))

NSMutableArray *refreshingImages = [NSMutableArray array];

for (NSUInteger i = 1; i<=6; i++)

{

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]];

[refreshingImages addObject:image];

}

[self setImages:refreshingImages forState:MJRefreshStatePulling];

// 設(shè)置正在刷新狀態(tài)的動畫圖片

[self setImages:refreshingImages forState:MJRefreshStateRefreshing];

}

3.如果圖片位置跟預(yù)期不符,可以通過重新placeSubviews方法進(jìn)行位置修改

例如:

- (void)placeSubviews

{

[super placeSubviews];

//通過手機尺寸進(jìn)行g(shù)ifView位置的調(diào)整

if ([UIScreen mainScreen].bounds.size.width ==320)

{

self.gifView.mj_y = 10;

self.gifView.mj_x = 50;

self.gifView.mj_w = 220;

self.gifView.mj_h = 95;

}

else

{

self.gifView.mj_y = FitRealValue(10);

self.gifView.mj_x = FitRealValue(77);

self.gifView.mj_w = FitRealValue(221);

self.gifView.mj_h = FitRealValue(100);

}

//對狀態(tài)欄進(jìn)行調(diào)試

self.stateLabel.mj_y = self.gifView.mj_y + self.gifView.mj_h;

self.stateLabel.mj_h = self.mj_h * 0.2;

}

4.將mj_heade設(shè)置為MJMyRefreshGifHeader

MJMyRefreshGifHeader *header? =[MJMyRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(refresh)];

self.tableView.mj_header = header;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容