2015-10-14 11 views
1

Я просто пытаюсь просто добавить UIRefreshControl в UIScrollview - по какой-то причине, когда я нажимаю на скроллер, ничего не происходит вообще. Нет ActivityView, никаких действий. Он просто подпрыгивает, как ничего не случилось.Добавление UIRefreshControl в UIScrollView

это то, что я до сих пор:

- (void)viewDidLoad { 
[super viewDidLoad]; 

[scroller setAutoresizesSubviews:YES]; 

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; 
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged]; 
[self.scroller addSubview:refreshControl]; 

//populate the scroller with data 
[self grabData]; 

} 

-(void)handleRefresh:(UIRefreshControl *)refresh { 
// Reload my data 
[self grabData]; 
} 
+0

являются scroller и self.scroller, прикрепленные к тому же прокрутку в конструкторе интерфейса? – Adeel

+0

Да, они прилагаются – user3267847

+0

Можете ли вы показать интерфейс класса? – Adeel

ответ

1

То, что сработало для меня сделать refreshControl переменную класса, а затем использовать его.

Например:

class className: UIViewController{ 
    var refreshControl:UIRefreshControl! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.refreshControl = UIRefreshControl() 
     self.refreshControl.addTarget(self, action: Selector("getPrint"), forControlEvents: UIControlEvents.ValueChanged) 
     refreshControl.tintColor = UIColor.whiteColor() 
     self.refreshControl.backgroundColor = UIColor.clearColor() 
     self.refreshControl?.endRefreshing() 
     self.scrollView.addSubview(self.refreshControl) 
    } 
} 
2

Это один должен быть полезным

UIRefreshControl *refreshControl; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    refreshControl = [[UIRefreshControl alloc]init]; 
    [self.scrollView addSubview:refreshControl]; 
    [refreshControl addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventValueChanged]; 

} 

- (void)refreshData { 
    //TODO: reload your data and end refreshing 
    [refreshControl endRefreshing]; 
} 

если вы получаете какие-то данные, после того как вы завершить прием данных, то вы должны вызвать endRefreshing и reloadData

Смежные вопросы