将UIProgressView添加到自定义UITableViewCell并检测索引行是什么

时间:2012-03-25 22:31:33

标签: ios uitableview uiprogressview uiprogressbar

我创建了一个自定义的UITableViewCell,我在Cell上添加了一个UIProgressView,因为当我在UITableView上添加一行时,我从XML数据中下载信息,我想使用ProgressView来显示进程的进度,我的问题是,我怎样才能检测到哪个索引行我必须更改进度条,然后隐藏它?...刚刚创建的行的索引路径是什么?

中的:

cellForRowAtIndexPath:(NSIndexPath *)indexPath

我以这种方式从Custom UITableViewCell检索信息:

UILabel *label;

label = (UILabel *)[cell viewWithTag:1000];
label.text = [[managedObject valueForKey:@"firstName"] description];

那么我怎么知道刚添加的行的索引路径行,然后更改进度条?

1 个答案:

答案 0 :(得分:0)

我想我不明白你在问什么。 indexPath是您刚刚创建的行的IndexPath。您将属性设置为此值,但该属性将仅包含已创建的LAST行的IndexPath。

更新以显示示例:

方法1 - 您不是从cellForRowAtIndexPath中调用其他方法。在这种情况下,您将需要一个NSIndexPath类型的私有属性(仅包含MyViewController导入的代码和@interface声明,以显示私有属性声明的放置位置:

你的.m文件中的

#import "MyViewController.h" 

@interface MyViewController ()
    @property(nonatomic,strong) NSIndexPath *lastIndexPathCreated;
@end

@implementation MyViewController
@synthesize lastIndexPathCreated;

...

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// All your other cell setup code

self.lastIndexPathCreated = indexPath;
return cell;
}

-(void)someOtherMethod {
    // The last IndexPath of the row LAST created is self.lastIndexPathCreated
}

方法2:假设您从cellForRowAtIndexPath中调用了一些其他方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // All your other cell setup code
    [self myOtherMethodWithIndexPath:indexPath];
    return cell;
}

-(void)myOtherMethodWithIndexPath:(NSIndexPath *)lastIndexPath {
    // Do something with lastIndexPath
}

希望这有帮助