it-roy-ru.com

Потяните, чтобы обновить (IOS)

Я недавно реализовал функцию pull для обновления здесь: https://github.com/leah/PullToRefresh . Это отчасти работает, однако застревает с индикатором вращающейся активности. Их также нет текста справа от стрелки. Что я делаю неправильно? Спасибо! 

14
jsttn

Без кода никто ничего не может сказать, но, возможно, попробуйте другую реализацию Pull To Refresh, например enormego (EGO) version, код находится в github, здесь

Он используется в приложении Facebook, поэтому он определенно работает.

27
Jonathan.

Apple представила UIRefreshControl в iOS6. Вы можете интегрировать его в свой UITableViewController, используя

- (void)viewDidLoad {
    [super viewDidLoad];
    // Initialize Refresh Control
    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    // Configure Refresh Control
    [refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
    // Configure View Controller
    [self setRefreshControl:refreshControl];
}

метод refresh: запустит обновление, и вы можете остановить его в обратном вызове API, используя:

 [(UIRefreshControl *)sender endRefreshing];
15
Claus

Я новичок в разработке для iOS, и я пытался реализовать функцию обновления для iOS 6. Хорошо ища решение, я наткнулся на этот пост в блоге и нашел его очень полезным, http: //www.intertech. ru/Blog/Post/iOS-6-Pull-to-Refresh- (UIRefreshControl) .aspx . В нем изложены этапы реализации pull для обновления таким образом, чтобы им было легко следовать. Любой, кто хочет сделать это самостоятельно в iOS 6, должен заглянуть в блог.

UIRefreshControl используется только с табличным представлением в настоящее время. Чтобы успешно добавить элемент управления обновлением, необходимо выполнить несколько шагов:

1 . Создайте метод обратного вызова для обработки вашей логики обновления. Метод обратного вызова должен вызываться, когда пользователь закрывает представление таблицы. Сигнатура метода должна принимать один параметр: указатель на UIRefreshControl.

Примечание. Все шаги 2-4 выполняются в методе viewDidLoad контроллера табличного представления.

2 . Создайте UIRefreshControl с помощью базового «alloc/init». 

3 . Подключите действие к элементу управления обновлениями, чтобы вызывать метод обратного вызова при возникновении события ValueChange.

4 . Добавьте элемент управления обновлением в свойство «refreshControl» контроллера табличного представления.

13
coolProgrammerTim

Я предпочитаю реализацию EGO, а не LEAH, потому что она не требует подкласса вашего контроллера представления. Оригинальный EGO в github - это беспорядок, без файла .gitnore и ненужного добавления большого количества файлов .DS_Store. Взгляните на некоторые из множества вилок и выберите одну.

Вилка "emreberge" выглядит как хорошая версия, лучшая организация файлов и документация!

https://github.com/emreberge/EGOTableViewPullRefresh

3
Matt Connolly

Я нашел эту библиотеку очень полезной, модной и актуальной: https://github.com/Yalantis/Pull-to-Refresh.Rentals-iOS

(Рекомендации от других ответов кажутся старыми и не поддерживаются)

2
Brian

Теперь с более новыми версиями iOS, чем указанная выше iOS 5, вы можете использовать: UIRefreshControl.

Существует действительно хороший учебник по созданию собственного настраиваемого пулла для обновления для вашего приложения iOS: http://ios-blog.co.uk/tutorials/how-to-add-a-custom-pull-to-refresh -in-your-ios-application/

1
DannieCoderBoi

Вот наш учебник по пользовательским элементам управления Pull-to-Refresh с кодом для Objective-C и Swift: http://www.jackrabbitmobile.com/design/ios-custom-pull-to-refresh-control/

Чтобы добавить дополнительный текст или изображения, как вы упомянули, добавьте их в self.refreshLoadingView в методах setupRefreshControl или scrollViewDidScroll (из учебника).

Дайте мне знать, если это поможет!

0
Anthony Blatner

Вы можете использовать: https://github.com/ngocbinh02/httablekit

Поддержите iOS 5.0 или позже

Потяните, чтобы обновить таблицу

    import <HTTableKit/TableKit>

....

//like UIRefreshControll

[tableview setPullToRefreshControlType:UITableViewRefreshControlTypeSystem]; 

[tableview  setPullToRefreshModeEnable:YES beginHandler:^{

      // to do here when pulling to refresh
}];

Уволить тянуть, чтобы обновить стол

    import <HTTableKit/TableKit>

....

[tableview  dismissPullToRefreshEndHandler:^{

      // to do here when dismissing     
}];
0
Harry Tran