Pull To Refresh на iphone не работает должным образом - PullRequest
1 голос
/ 07 февраля 2011

Я использовал это: http://blog.leahculver.com/2010/12/iphone-pull-to-refresh.html, чтобы сделать функцию обновления для обновления в моем приложении.Но я не вижу текст «Потяните вниз, чтобы обновить ...», «Отпустите, чтобы обновить ...» и «Загрузка ...».

Все, что я сделал, это скопировал файлы в мой проект, связался с платформой QuartzCore и изменил файл .h моего контроллера представления, чтобы он был подклассом PullRefreshTableViewController.Затем я добавил метод refresh.

Похоже, что метод initWithStyle в PullRefreshTableViewController никогда не выполняется.Но я должен быть в моей таблице ViewcellForRowAtIndexPath.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

cell.textLabel.text = @"Text";

return cell; }

Метод initWithStyle из PullRefreshTableViewController.m:

- (id)initWithStyle:(UITableViewStyle)style {
self = [super initWithStyle:style];
if (self != nil) {
    textPull = [[NSString alloc] initWithString:@"Pull down to refresh..."];
    textRelease = [[NSString alloc] initWithString:@"Release to refresh..."];
    textLoading = [[NSString alloc] initWithString:@"Loading..."];
    NSLog(@"in");
}
NSLog(@"out");
return self; }

Журналы никогда не печатаются в консоли

Я действительно не вижу, где проблема?

Ответы [ 3 ]

2 голосов
/ 10 мая 2011

Была такая же проблема. понял, что вызывается не initWithStyle, а вызывается initWithCoder ....

, чтобы решить вашу проблему, вставьте следующий код в ваш PullRefreshTableViewController.m и это работает как шарм

-(id)initWithCoder:(NSCoder *)aDecoder{
NSLog(@"initWithCoder");
self = [super initWithCoder:aDecoder];
if (self != nil) {
    textPull = [[NSString alloc] initWithString:@"Pull down to refresh..."];
    textRelease = [[NSString alloc] initWithString:@"Release to refresh..."];
    textLoading = [[NSString alloc] initWithString:@"Loading..."];
}
return self;
}

С наилучшими пожеланиями

0 голосов
/ 09 февраля 2011

Попробуйте создать экземпляр PullRefreshTableViewController с помощью:

PullRefreshTableViewController *tableViewController = [[PullRefreshTableViewController alloc] initWithStyle:UITableViewStylePlain];

Создание экземпляра UITableViewCell с помощью initWithSyle не окажет никакого влияния на ваш подкласс UITableViewController.

Альтернативой являетсяотредактируйте класс PullRefreshTableViewController для переопределения - (id) метода init аналогично тому, как это делается с initWithStyle:

0 голосов
/ 07 февраля 2011

Если вы ищете, где текст определен, он находится в строке 43 PullRefreshTableViewController.m

Надеюсь, это поможет (если он не забудет проголосовать мой ответ)

М.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...