下拉刷新及注意事项

来源:互联网 发布:温州李涛疯狂淘宝 编辑:程序博客网 时间:2024/04/30 16:35
使用系统自带下拉刷新- (void)viewDidLoad {    //** 下拉刷新    UIRefreshControl *rc = [[UIRefreshControl alloc]init];    rc.attributedTitle = [[NSAttributedString alloc]initWithString:@"想看更多"];    [rc addTarget:self action:@selector(refreshTableView) forControlEvents:(UIControlEventValueChanged)];    self.refreshControl = rc;}- (void)refreshTableView{    if (self.refreshControl.refreshing) {        self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"加载完成"];        dispatch_sync(dispatch_get_global_queue(0, 0), ^{           self.shopArray = [NSMutableArray array];//对数据容器初始化            这里实现新的网络请求            [self requestwithHttpArg];            [self.refreshControl endRefreshing];        });    }}容易崩的地方因为对数据容器进行了初始化,或者删除了数据容器,所以再未完成视图更新时,在以下方法中:<pre name="code" class="html">- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

如果用到了数组容器便会崩在数组越界修改的方法是在每个用到数组容器的地方都要进行安全判断,需要形成一种习惯 if (_shopArray.count>= indexPath.section) { cell.model = _shopArray[indexPath.section]; }

0 0