激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - iOS上下拉刷新控件MJRefresh使用方法詳解

iOS上下拉刷新控件MJRefresh使用方法詳解

2021-03-08 14:5734碼的小孩子 IOS

這篇文章主要為大家詳細介紹了iOS上下拉刷新控件MJRefresh的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

mjrefresh是一個好用的上下拉刷新的控件,github地址如下:https://github.com/codermjlee/mjrefresh很多app都使用這個控件,我們也來了解一下它的用法。下面主要是介紹在uitableview下的使用。

iOS上下拉刷新控件MJRefresh使用方法詳解
使用

在github上下載之后,將mjrefresh文件添加到項目中,并且在需要使用的文件上引入mjrefresh.h。然后在該文件的viewdidload方法中指定tableview的header和footer,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#import "mjrefreshtableviewcontroller.h"
#import "mjrefresh.h"
 
@interface mjrefreshtableviewcontroller ()
@property (strong, nonatomic) iboutlet uitableview *tableview;
@end
 
@implementation mjrefreshtableviewcontroller
 
- (void)viewdidload {
[super viewdidload];
 
__weak typeof(self) weakself = self;
self.tableview.mj_header = [mjrefreshnormalheader headerwithrefreshingblock:^{
 //刷新時候,需要執行的代碼。一般是請求最新數據,請求成功之后,刷新列表
 [weakself loadnewdata];
}];
 
self.tableview.mj_footer = [mjrefreshbacknormalfooter footerwithrefreshingblock:^{
 //刷新時候,需要執行的代碼。一般是請求更多數據,請求成功之后,刷新列表
 [weakself loadnoredata];
}];
}
 
/**
 請求獲取最新的數據
 */
- (void)loadnewdata {
nslog(@"請求獲取最新的數據");
 
//這里假設2秒之后獲取到了最新的數據,刷新tableview,并且結束刷新控件的刷新狀態
__weak typeof(self) weakself = self;
dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(2.0 * nsec_per_sec)), dispatch_get_main_queue(), ^{
 //刷新列表
 [weakself.tableview reloaddata];
 //拿到當前的刷新控件,結束刷新狀態
 [weakself.tableview.mj_header endrefreshing];
});
}
 
/**
 請求獲取更多的數據
 */
- (void)loadnoredata {
nslog(@"請求獲取更多的數據");
 
//這里假設2秒之后獲取到了更多的數據,刷新tableview,并且結束刷新控件的刷新狀態
__weak typeof(self) weakself = self;
dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(2.0 * nsec_per_sec)), dispatch_get_main_queue(), ^{
 //刷新列表
 [weakself.tableview reloaddata];
 //拿到當前的刷新控件,結束刷新狀態
 [weakself.tableview.mj_footer endrefreshing];
});
}
@end

按照app的實際情況來說,loadnoredata 和 loadnewdata方法應該是發送數據請求,而結束刷新控件的刷新狀態應該是在請求失敗或者請求成功的方法中調用。

如果是帶動圖的刷新控件的話,就直接替換在viewdidload中的寫法即可。

?
1
2
3
4
5
6
7
8
9
10
11
12
- (void)viewdidload {
[super viewdidload];
 
__weak typeof(self) weakself = self;
mjrefreshgifheader *header = [mjrefreshgifheader headerwithrefreshingtarget:self refreshingaction:@selector(loadnewdata)];
 
[header setimages:idleimages forstate:mjrefreshstateidle];
[header setimages:pullingimages forstate:mjrefreshstatepulling];
[header setimages:refreshingimages forstate:mjrefreshstaterefreshing];
 
self.tableview.mj_header = header;
}

其中idleimages,pullingimages,refreshingimages是圖片數組,分別對應普通閑置狀態,松開就可以進行刷新的狀態,正在刷新中的狀態等的圖片。注意,idleimages等圖片數組存儲的對象是uiimage。

如果只設置了refreshingimages,只要在刷新狀態下顯示圖片,其他狀態不顯示圖片。如果設置了idleimages或者pullingimages其中之一,所有狀態下都顯示設置的圖片。
同理,設置底部帶動畫效果的footer:

?
1
2
3
4
5
6
7
8
9
10
11
- (void)viewdidload {
[super viewdidload];
 
mjrefreshbackgiffooter *footer = [mjrefreshbackgiffooter footerwithrefreshingtarget:self refreshingaction:@selector(endrefreshing)];
 
[footer setimages:idleimages forstate:mjrefreshstateidle];
[footer setimages:pullingimages forstate:mjrefreshstatepulling];
[footer setimages:refreshingimages forstate:mjrefreshstaterefreshing];
 
self.tableview.mj_footer = footer;
}

po一張效果圖:

iOS上下拉刷新控件MJRefresh使用方法詳解

?
1
2
header.statelabel.hidden = yes;
header.lastupdatedtimelabel.hidden = yes;

如果隱藏右邊狀態或者更新時間其中一行文字,則顯示的一行文字會垂直居中,效果如下:

iOS上下拉刷新控件MJRefresh使用方法詳解

如果把右邊的兩行文字都隱藏了,只顯示圖片,則圖片居中,效果如下:

iOS上下拉刷新控件MJRefresh使用方法詳解

如果覺得動畫頻率過快或者過低,可以修改mjrefresh以下位置。

iOS上下拉刷新控件MJRefresh使用方法詳解

使用以下方法還可以修改顯示文字

?
1
2
3
[header settitle:@"下拉刷新" forstate:mjrefreshstateidle];
[header settitle:@"釋放開始刷新哦~" forstate:mjrefreshstatepulling];
[header settitle:@"正在快馬加鞭地刷新著呢" forstate:mjrefreshstaterefreshing];

其他控件的用法

uicollectionview 和uiscrollview的用法與uitableview的用法一致,只需將上面所說的tableview.mj_header 改成 collectionview.mj_header 和 scrollview.mj_header 即可。例如:

?
1
2
3
4
5
6
7
8
self.collectionview.mj_header = [mjrefreshnormalheader headerwithrefreshingblock:^{
 //刷新時候,需要執行的代碼。一般是請求最新數據,請求成功之后,刷新列表
 [weakself loadnewdata];
}];
self.scrollview.mj_header = [mjrefreshnormalheader headerwithrefreshingblock:^{
 //刷新時候,需要執行的代碼。一般是請求最新數據,請求成功之后,刷新列表
 [weakself loadnewdata];
}];

又因uiwebview 自帶一個uiscrollview的屬性,所以uiwebview也可以使用mjrefresh,用法如下:

?
1
2
3
4
self.webview.scrollview.mj_header = [mjrefreshnormalheader headerwithrefreshingblock:^{
 //刷新時候,需要執行的代碼。一般是請求最新數據,請求成功之后,刷新列表
 [weakself loadnewdata];
}];

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
主站蜘蛛池模板: 精品国产一区二区三区久久久蜜月 | 巨乳激情 | 精品av在线播放 | 国产精品久久久久久婷婷天堂 | 欧美大穴 | 久久久精品视频在线观看 | 成人性生活视频在线观看 | 91av在线免费播放 | 欧美巨乳在线观看 | 少妇一级淫片免费放正片 | 男女羞羞视频在线免费观看 | 2019亚洲日韩新视频 | 国产精品伊人久久 | 欧美成人精品一区 | 亚洲成人在线免费观看 | 黄色片在线播放 | 久久久三级免费电影 | 亚洲精品自在在线观看 | 国产精品1区2区在线观看 | 欧美一级特黄aaaaaaa什 | 天堂成人国产精品一区 | 看免费毛片 | 欧日韩 | 日韩欧美精品中文字幕 | 久久人人爽人人爽人人片av高清 | 日日影视 | 永久免费在线观看av | 最新se94se在线欧美 | xvideos korean | 草久在线观看视频 | 久久欧美亚洲另类专区91大神 | 成人免费一区二区三区 | 成人在线网站 | 久久久久女人精品毛片九一 | xxx18hd18hd日本| 欧美一级做一级爱a做片性 久久久资源网 | 91av在线影院 | 日日艹夜夜艹 | 久久99精品久久久久久园产越南 | 久久亚洲成人网 | 婷婷亚洲一区二区三区 |