iOS10中UIScrollView新增refreshControl属性

羊舌迪
2023-12-01

UIRefreshControl并不是新的控件,iOS10 中只不过是给UIScrollView添加了刷新refreshControl这个属性。

iOS 10 以后只要是继承UIScrollView那么就支持刷新功能:做了个简单测试代码如下

#define WIDTH [[UIScreen mainScreen] bounds].size.width

#define HEIGHT [[UIScreen mainScreen] bounds].size.height

@interfaceViewController ()<UIScrollViewDelegate>


@property (nonatomic,strong)UIScrollView *scrollView;


@end


@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    

    self.scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0,0,WIDTH,HEIGHT)];

    //滚动视图的代理

    self.scrollView.delegate =self;

    

    self.scrollView.backgroundColor = [UIColor yellowColor];

    //只要创建出UIRefreshControl即可。

    self.scrollView.refreshControl  = [[UIRefreshControl alloc]init];

    //frame 没发现起作用

    // self.scrollView.refreshControl.frame = CGRectMake(0, 0, 0, 0);

    //前景色:菊花转的颜色

    self.scrollView.refreshControl.tintColor = [UIColor cyanColor];

    //添加标题

    self.scrollView.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉刷新"];

    

    //背景色:刷新控制器的背景

    self.scrollView.refreshControl.backgroundColor = [UIColor whiteColor];

    // 添加刷新方法

    [self.scrollView.refreshControl addTarget:self action:@selector(downloadData) forControlEvents:UIControlEventValueChanged];

    

    [self.view addSubview:self.scrollView];

    

    //设置为NO刷新控制器失效

    self.scrollView.bounces =YES;

}

#pragma mark - 在这里实现下拉数据的加载

- (void)downloadData{

    NSLog(@"加载新数据");

}


#pragma mark - UIRefreshControl的开始刷新的方法

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

    

    NSLog(@"即将开始拖拽");

}

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

    NSLog(@"即将开始减速");

}

#pragma mark - UIRefreshControl的停止刷新的方法

#if 1 //停止下拉后,延迟1s左右完成减速后停止刷新

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

    [self.scrollView.refreshControl endRefreshing];

}


#else


#if 1  //停止下拉拖拽后立即停止刷新

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

    [self.scrollView.refreshControl endRefreshing];

}

#endif


#endif

@end




 类似资料: