1

我一直在使用这个:http ://blog.leahculver.com/2010/12/iphone-pull-to-refresh.html在我的应用程序中进行拉动刷新功能。但我看不到“下拉刷新...”、“释放刷新...”和“正在加载...”等文字。

我所做的只是将文件复制到我的项目中,链接到 QuartzCore 框架,并更改我的视图控制器的 .h 文件,使其成为 PullRefreshTableViewController 的子类。然后我添加了刷新方法。

似乎 PullRefreshTableViewController 中的 initWithStyle 方法永远不会被执行。但我应该在我的 tableViewcellForRowAtIndexPath 中。

- (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; }

PullRefreshTableViewController.m 中的 initWithStyle 方法:

- (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; }

日志永远不会在控制台中打印

我真的看不出问题出在哪里?

4

3 回答 3

2

有同样的问题。发现不调用 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;
}

最好的祝福

于 2011-05-10T08:39:25.613 回答
0

如果您正在寻找文本的定义位置,它位于 PullRefreshTableViewController.m 的第 43 行

希望这会有所帮助(如果它确实不要忘记投票给我的答案)

M。

于 2011-02-06T22:36:45.450 回答
0

尝试使用以下方法实例化 PullRefreshTableViewController:

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

使用 initWithSyle 实例化 UITableViewCell 不会对您的 UITableViewController 子类产生任何影响。

另一种方法是编辑 PullRefreshTableViewController 类,以与使用 initWithStyle 类似的方式覆盖 - (id)init 方法:

于 2011-02-09T06:32:18.113 回答