我创建了一个自定义的UITableViewCell,我在Cell上添加了一个UIProgressView,因为当我在UITableView上添加一行时,我从XML数据中下载信息,我想使用ProgressView来显示进程的进度,我的问题是,我怎样才能检测到哪个索引行我必须更改进度条,然后隐藏它?...刚刚创建的行的索引路径是什么?
中的:
cellForRowAtIndexPath:(NSIndexPath *)indexPath
我以这种方式从Custom UITableViewCell检索信息:
UILabel *label;
label = (UILabel *)[cell viewWithTag:1000];
label.text = [[managedObject valueForKey:@"firstName"] description];
那么我怎么知道刚添加的行的索引路径行,然后更改进度条?
答案 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
}
希望这有帮助