微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > iOS开发常用的第三方类库

iOS开发常用的第三方类库

时间:10-08 来源:互联网 点击:

ges?q=tbn:ANd9GcQfraHpiabjEY8iDdBe9OUQYHMtwfuAv9ZRR0RYKuoVF_EpE8Fp5A] andCropToBounds:CGRectMake(0, 0, 100, 100)]; // 裁剪成100x100大小

EGOTableViewPullRefresh 下拉刷新

GitHub:https://github.com/enormego/EGOTableViewPullRefresh

这是最早出现的为UITableView提供下拉刷新功能的类库,使用起来稍显麻烦,需要实现诸多协议(代码取自官方DEMO):

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

57

58

59

60

61

62

#import EGORefreshTableHeaderView.h

@interface RootViewController : UITableViewController EGORefreshTableHeaderDelegate, UITableViewDelegate, UITableViewDataSource>{

EGORefreshTableHeaderView *_refreshHeaderView;

// 是否正在加载中

BOOL _reloading;

}

- (void)viewDidLoad {

[super viewDidLoad];

if (_refreshHeaderView == nil) {

EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tableView.bounds.size.height, self.view.frame.size.width, self.tableView.bounds.size.height)];

view.delegate = self;

[self.tableView addSubview:view];

_refreshHeaderView = view;

[view release];

}

// 更新最后加载时间

[_refreshHeaderView refreshLastUpdatedDate];

}

#pragma mark -

#pragma mark Data Source Loading / Reloading Methods

- (void)reloadTableViewDataSource{

// 在这里加入代码用于获取数据

_reloading = YES;

}

- (void)doneLoadingTableViewData{

// 数据加载完成时调用这个方法

_reloading = NO;

[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView];

}

#pragma mark -

#pragma mark UIScrollViewDelegate Methods

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

[_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];

}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

[_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];

}

#pragma mark -

#pragma mark EGORefreshTableHeaderDelegate Methods

- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{

[self reloadTableViewDataSource];

[self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];

}

- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{

return _reloading;// should return if data source model is reloading

}

- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{

return [NSDate date];// should return date data source was last changed

}

PullToRefresh 下拉刷新

GitHub:https://github.com/leah/PullToRefresh

PullToRefresh提供比EGOTableViewPullRefresh更加简单的使用方法,只要继承自PullRefreshTableViewController,再实现refresh方法即可:

1

2

3

4

5

6

- (void)refresh {

// 加载数据

[self.tableView reloadData];// 重新载入UITableView

[self stopLoading];//停止动画

}

STableViewController 下拉刷新、上拉加载更多

GitHub:https://github.com/shiki/STableViewController

STableViewController比PullToRefresh多了一个上拉加载更多功能,使用上也差不多简单,需要继承自STableViewController,再实现一些方法:

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

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

- (void) viewDidLoad

{

[super viewDidLoad];

self.title = @STableViewController Demo;

[self.tableView setBackgroundColor:[UIColor lightGrayColor]];

// 需要创建两个自定义视图用于显示下拉刷新、上拉加载更多

self.headerView = headerView;

self.footerView = footerView;

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top