-1

カスタムUITableViewCellを作成し、セルにUIProgressViewを追加します。これは、UITableViewに行を追加するときに、XMLデータから情報をダウンロードし、ProgressViewを使用してプロセスの進行状況を表示したいためです。私の質問は次のとおりです。プログレスバーを変更して非表示にする必要があるインデックス行をどのように検出できますか?...作成したばかりの行のインデックスパスは何ですか?

の中に:

cellForRowAtIndexPath:(NSIndexPath *)indexPath

カスタムUITableViewCellから次の方法で情報を取得します。

UILabel *label;

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

では、追加したばかりの行のインデックスパス行を確認して、プログレスバーを変更するにはどうすればよいですか?

4

1 に答える 1

0

私はあなたが何を求めているのか理解していないと思います。indexPathは、作成した行のIndexPathです。プロパティをこの値に設定しますが、そのプロパティには、最後に作成された行の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
}

お役に立てれば

于 2012-03-25T23:23:28.563 に答える