2009-10-28 2 views
43

Я пытаюсь найти пример размещения элемента над табличным представлением вне нормального прокручиваемого региона. Как мне это сделать? Примером может служить то, что приложение Tweetie 2 для iPhone делает для обновления твитов.iPhone Pull Down Обновить как Tweetie

Пример кода будет очень полезен.

+1

Если вы используете это, помните, что существует патент, ожидающий рассмотрения: http://appft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch- adv.html & r = 1 & f = G & l = 50 & d = PG01 & p = 1 & S1 = 20100199180.PGNR. & OS = dn/20100199180 & RS = DN/20100199180 –

+0

Интересно, я знаю, что Tweetie сделал это лучше всего, не уверен, что это произошло в первую очередь. Также следует отметить, что этот вопрос был задан задолго до того, как патент был даже подан. – DanO

+0

Я считаю, что когда патент подан не имеет значения. Критерии: «Когда Tweetie 2 выпустил эту функциональность» и «Кто-нибудь еще выпустил продукт, который сделал то же самое перед ними?» –

ответ

52

Я нашел ответ на свой вопрос, для всех, кто заинтересован.

EGOTableViewPullRefresh

Я попытался это решение, и это работает! Это почти идентично обновлению Tweetie Pull Down.

+4

. Сегодня я провел некоторое время на EGOTableViewPullRefresh и перевел основной код в подкласс UITableViewController, для некоторых людей это может быть проще. http://github.com/jessedc/EGOTableViewPullRefresh – Jessedc

+0

Я думаю, что EGOTableViewPullRefrehsh не очень простое решение. Но если вы можете использовать его: это лучший способ ;-) –

+0

Я не могу найти лицензию на сайте github. – titaniumdecoy

20

Вот альтернатива EGOTableViewPullRefresh:

http://blog.leahculver.com/2010/12/iphone-pull-to-refresh.html

Источник доступен на GitHub здесь:

https://github.com/leah/PullToRefresh

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

+2

Отлично работает !!!! – Trevor

+0

У этого есть ошибка, когда вы используете его с простой таблицей, в которой есть разделы. При прокрутке вверх при обновлении ячейки таблицы появятся над заголовком раздела. – Stas

4

Начать с iOS 6.0, существует стандартный элемент управления под названием UIRefreshControl внутри sdk. apple doc here

2

Вот что вы можете сделать с прошивкой 6 и более поздних версий:

- (void)viewDidLoad { 
    // other initialization 
    self.refreshControl = [[UIRefreshControl alloc] init]; 
    [self.refreshControl addTarget:self 
          action:@selector(myRefresh) 
        forControlEvents:UIControlEventValueChanged]; 
} 

Ваш метод обновления:

- (void)myRefresh { 
    // get refreshed data for table view 
} 

Вы заканчиваете обновление в reloadData:

- (void)reloadData { 
    [self.tableView reloadData]; 

    // End the refreshing 
    if (self.refreshControl) { 
     [self.refreshControl endRefreshing]; 
    } 
}  

Тогда вы все настроены!