iOS中UITableViewController自帶的刷新控件

iOS中UITableViewController自帶的刷新控件

1、引言

        在iOS開發中,使用tableView的界面,大多會用到一個下拉刷新的的控件,第三方庫中,咱們通常會選擇比較好用的MJRefresh,其實,在iOS6以後,系統爲咱們提供了一個原生的刷新控件,使用起來很是方便,只是制定性不強,若是咱們沒有複雜的需求,使用UIRefreshControl也是不錯的一個選擇。atom

2、UITableViewController

        相對於UIViewController,UITableViewController只是在內部爲咱們封裝好了一個UITableView,而且遵照好了相關的協議,咱們只須要在其中實現方法便可。UITableViewController更多的方面之處是在於下面的這個屬性:spa

@property (nonatomic) BOOL clearsSelectionOnViewWillAppear;

 

這是一個bool值,設置爲yes後每當當前controller調用ViewWillAppare的時候,都會將cell的選中狀態取消,這十分有用,咱們在經過點擊cell跳轉界面後,pop回來不須要在手動修改cell的選中狀態了。code

        除此以後,TableViewController中還封裝了這樣一個屬性:繼承

@property (nonatomic, strong, nullable) UIRefreshControl *refreshControl;

 

這個UIRefreshControl類是iOS6以後引入的一個簡單的刷新控件,咱們若是設置了它,在tableView下拉的時候,系統會提供給咱們一個下拉刷新的效果。事件

3、UIRefreshControl

        這個類也十分簡單,經過簡單的設置能夠展示一個小巧的刷新效果,可是制定性不強,其中主要屬性以下:開發

//獲取刷新狀態
@property (nonatomic, readonly, getter=isRefreshing) BOOL refreshing;
//設置控件顏色
@property (null_resettable, nonatomic, strong) UIColor *tintColor;
//設置控件文字
@property (nullable, nonatomic, strong) NSAttributedString *attributedTitle UI_APPEARANCE_SELECTOR;

// 手動開始刷新
- (void)beginRefreshing NS_AVAILABLE_IOS(6_0);
// 結束刷新
- (void)endRefreshing NS_AVAILABLE_IOS(6_0);

 

須要注意的是,UIRefreshControl是繼承於UIControl的,下拉喚醒刷新狀態後,會觸發UIControleEventValueChange事件,咱們能夠在其中進行刷新的數據邏輯操做。get

例如:it

- (void)viewDidLoad {
    [super viewDidLoad];
    self.refreshControl = [[UIRefreshControl alloc]init];
    self.refreshControl.tintColor = [UIColor greenColor];
    self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉刷新了~~"];
    self.clearsSelectionOnViewWillAppear = YES;
    self.navigationItem.rightBarButtonItem = self.editButtonItem;
    [self.refreshControl addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged];
}

-(void)change:(UIRefreshControl*)con{
    self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"開始刷新了~~"];
}

 

效果以下:io

專一技術,熱愛生活,交流技術,也作朋友。table

——琿少 QQ羣:203317592

相關文章
相關標籤/搜索