每次看到比較好看的刷新動畫都感覺好厲害,今天有時間看了一下MJ的gif的動畫刷新,原來很簡單
基于MJRefresh 配置 GIF動畫
prepare方法中
*設置JIF動畫圖片 setImages:
*設置title setTitle:
placeSubViews中設置
*設置GIFView屬性
*設置StateLabel的屬性
GifHeader
class RefreshAutoGi fHeader :MJRefreshGifHeader {
///初始化
override func prepare() {
super.prepare()
//圖片數(shù)組
var images:[UIImage] = [UIImage]()
//遍歷
for index in 0..<16{
let image = UIImage (named:”dropdown loading 0\ ( index) ")images.append (image!)}
//設置空閑狀態(tài)的圖片
setImages(images, for: .idle)
set Images (images, for: .refreshing)
setTitle("正在努力加載",for: .idle)
setTitle("正在努力加載",for: .pulling)
setTitle("正在努力加載",for: .refreshing)
setTitle("正在努力加載",for: . willRefresh)
setTitle("沒有更多數(shù)據(jù)",for: .noMoreData)}
override func placeSubviews() {
super .placeSubviews()
gifView . contentMode = .center
gifView.frame = CGRect(x: 0, y: 4, width: mj_W, height: 25)
stateLabel.font = UIFont . systemFont (ofSize: 12)
stateLabel. frame三CGRect(x: e,y: 35, width: mi_ w, height: 14)
}
}
GifFooter
class RefreshAutoGifFooter : MJRefreshAutoGifFooter {
///初始化
override func prepare() {
super . prepare( )
//控件高度
mj_ h = 50.0
//圖片數(shù)組
var images: [UIImage] = [UIImage]()
//遍歷
for index in 0..<8{
let image = UIImage (named: "sendloading_ 18x18_ \( index)")images .append (image!)
}
//設置空閑狀態(tài)的圖片
setImages(images, for: .idle)
set Images (images, for: .refreshing
setTitle("正在努力加載",for: .idle)
setTitle("正在努力加載",for: .pulling)
setTitle("正在努力加載",for: .refreshing)
setTitle("正在努力加載",for: .willRefresh)
setTitle("沒有更多數(shù)據(jù)",for: .noMoreData)}
override func placeSubviews() {
super .placeSubviews ()
gifView.x = 135
gifView.centerY = stateLabel . centerY
}
使用
//設置刷新
func setRefreshO) {
// header
let header = Ref reshAutoGifHeader f[weak self] in
Ne tworkTpol. loadApiNewsFeeds ( category: self! .newsTitle.category, ttFrom: . enterAuto)
{ (maxBehotTime smalVideos) in
if (sclf? .collectionView.mj , header.isRefreshing!
{self?. collectionView .mj. header . endRefreshing()}
self! . smallVideos s smallVideos
self ! . naxBehotTime e maxBehotTime
self!.collectionView .reloadData()
}
}
header? . lastUpdatedTimeLabel .isHidden =true
header? . beginRefreshing()
header?. isAutomaticallyChangeAlpha = true
collectionView .mj_header=header
效果

曉雯的這篇文章是來自微信公眾號關(guān)于iOS開發(fā)。若有侵權(quán)請聯(lián)系曉雯微信:Pingwen20刪除