2015-07-04 2 views
0

Я добавил тянуть, чтобы обновить в UITableView с двумя пользовательскими клетками прототипа, я tryied с этих двух типов кода одного путем добавления UIRefreshcontrol как подвид из Tableview и других через UITableViewControllerПрицепные Чтобы обновить вопрос с TableView

1) UIRefreshcontrol как подвид из Tableview

self.refreshControl = [[UIRefreshControl alloc] init]; 
self.refreshControl.tintColor = [UIColor blackColor]; 
[self.refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged]; 
[listTable addSubview:self.refreshControl]; 

2) Через UITableViewController

UITableViewController *tableViewController = [[UITableViewController alloc] init]; 
tableViewController.tableView = listTable; 

self.refreshControl = [[UIRefreshControl alloc] init]; 
[self.refreshControl addTarget:self action:@selector(refreshContacts) forControlEvents:UIControlEventValueChanged]; 
tableViewController.refreshControl = self.refreshControl; 

Но ни то, и другое не работает.

+0

проверить мой ответ чувак –

ответ

0

Проверьте эти ссылки на источники информации

UIRefreshControl - Pull To Refresh in iOS 7

http://www.techrepublic.com/blog/software-engineer/better-code-implement-pull-to-refresh-in-your-ios-apps/

Пример

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; 
refreshControl.backgroundColor = [UIColor clearColor]; 
refreshControl.tintColor = [UIColor whiteColor]; 
[refreshControl addTarget:self 
        action:@selector(getLatestData) 
     forControlEvents:UIControlEventValueChanged]; 

[yourTableviewName addSubview:refreshControl]; 


    -(void)getLatestData 
{ 
// here add your reload method 
    [self XXXXX]; 

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"MMM d, h:mm a"]; 
    NSString *title = [NSString stringWithFormat:@"Last update: %@", [formatter stringFromDate:[NSDate date]]]; 
    NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:[UIColor whiteColor] 
                    forKey:NSForegroundColorAttributeName]; 
    NSAttributedString *attributedTitle = [[NSAttributedString alloc] initWithString:title attributes:attrsDictionary]; 
     refreshControl.attributedTitle = attributedTitle; 

     [refreshControl endRefreshing]; 
    } 
+0

@selector себе не вызывался, и я не могу найти индикатор активности, когда я тащу вниз по Tableview –

0

Второй способ практически идентичен коду я предложил в What's the Best Way to Get a "Pull to Refresh" from a UITableView?, так что я имею в виду что ваша ошибка находится в tableViewController. Сохраняется ли она?

+0

делает Tableview ограничения проблема влияет на обновление управления? –

+0

Я не уверен, но я думаю, что проблема с вашим кодом заключается в том, что ваш UITableViewController не сохраняется (что я вижу); ни одна из ваших других переменных не ссылается на него. Если ваш UITableViewController освобождается ARC, 'tableViewController.refreshControl = self.refreshControl;' ничего не сделает. Я предполагаю, что если вы добавите tableViewController в качестве сильного свойства для вашего объекта, этот код должен работать. –

+0

ok проверит и даёт знать –

0

В .h

@property(nonatomic,strong) UIRefreshControl *refreshControl; 

В .m

- (void)viewDidLoad { 
    [super viewDidLoad]; 
//Initialize the refresh control 
    self.refreshControl = [[UIRefreshControl alloc] init]; 
    [self.refreshControl addTarget:self action:@selector(refreshBrandList:) forControlEvents:UIControlEventValueChanged]; 
    [self.tableView addSubview:self.refreshControl]; 

} 


-(void) refreshBrandList:(id)sender{ 
    [self ServiceCall]; 
    [self.refreshControl endRefreshing]; 


} 
+0

Я уже использую этот код кода, предлагаю еще несколько разных ответов –

+0

в какой-то мере ваш селектор не работает, или вы не видите значок обновления –

+0

Я не вижу ни обновления, ни обновления и @selector working –

0

SVPullToRefresh + SVInfiniteScrolling

  • Простота в использовании.
  • Обеспечение Потяните вверх и вниз, чтобы обновить

Easy to add pull-to-refresh and infinite scrolling fonctionalities to any UIScrollView or UITableView

+0

Используя это, мы можем обновить фрейм значка значка обновления ниже? , Я нахожу значок обновления на крайнем верхнем уровне. Итак, он не полностью виден. –

+0

Да, вы можете. Вам нужно изменить стиль UIActivityIndicatorView с большим белым цветом в классе SvPullToRefreshView и при необходимости установить соответствующий оттенок. – Vishal16