我有一个UITableViewCell
示例如下:
//
// ItemTableViewCell.h
//
#import <UIKit/UIKit.h>
@interface ItemTableViewCell : UITableViewCell
@property (weak, nonatomic) NSString *itemId;
@end
在我的UIViewController
UITableView
我有以下分配:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSManagedObject *row = [self.itemsFRC objectAtIndexPath:indexPath];
ItemTableViewCell *cell = (ItemTableViewCell *)[self.tableView dequeueReusableCellWithIdentifier:@"cellId" forIndexPath:indexPath];
cell.itemId = [row valueForKey:@"item_id"];
}
现在,如何使用单元格属性UITableView
滚动到itemId
中的特定单元格?
注意:我更倾向于不使用indexPathForRow
方法。
答案 0 :(得分:1)
您应该执行以下操作:
NSManagedObject
item_id
indexPath
NSFetchedResultsController
tableView
滚动到indexPath
请参阅下面的代码示例:
- (void) scrollToRowWithItemID: (NSString *) itemID {
NSArray *fetchedObjects = self.itemsFRC.fetchedObjects;
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"item_id == %@", itemID];
NSArray *filteredArray = [fetchedObjects filteredArrayUsingPredicate: predicate];
NSIndexPath *indexPath = [self.itemsFRC indexPathForObject: filteredArray.firstObject];
[self.tableView scrollToRowAtIndexPath: indexPath atScrollPosition: UITableViewScrollPositionNone animated: true];
}