我希望能够选择一行或更多行,并通过IBAction做一些事情。
让我说我有四行,A,B,C和D.如果我选择A和B,然后按下连接到该IBAction的按钮,就会发生一些事情。
我该怎么做?
代码:
@implementation ViewController {
NSArray *names;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [names count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *tableIdentifier = @"tableCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:tableIdentifier];
}
cell.textLabel.text = [names objectAtIndex:indexPath.row];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ((indexPath.row == 0) && (indexPath.row == 2)) {
NSLog(@"John and James selected.");
}
}
- (void)viewDidLoad {
[super viewDidLoad];
// Initialize table data
names = [NSArray arrayWithObjects:@"John", @"Michael", @"Hannah", @"James", nil];
}
谢谢!
答案 0 :(得分:1)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
if ([selectedCell accessoryType] == UITableViewCellAccessoryNone) {
[selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark];
[selectedIndexes addObject:[NSNumber numberWithInt:indexPath.row]];
} else {
[selectedCell setAccessoryType:UITableViewCellAccessoryNone];
[selectedIndexes removeObject:[NSNumber numberWithInt:indexPath.row]];
}
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
此代码将在您选择的行上显示刻度线。
您还必须使用映射已检查单元格的数组,并且必须在cellForRowAtIndexPath中验证是否应检查accessoryType。
然后,在您的按钮操作中,您可以使用选定的行执行代码。
希望这有帮助!