基于MJRefresh 配置 GIF動畫

每次看到比較好看的刷新動畫都感覺好厲害,今天有時間看了一下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刪除

這是我的一個iOS技術(shù)交流群:691040931有興趣的話可以加入 群里只聊技術(shù) 內(nèi)推 廣告忽進 進一次踢一次

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

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

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