我有一个 UITableView。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//Where we configure the cell in each row
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
self.myButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.myButton.tag = 5;
self.myButton.frame = CGRectMake(190.0f, 5.0f, 70.0f, 25.0f);
self.myButton.layer.borderColor = [UIColor blackColor].CGColor;
self.myButton.layer.borderWidth = 0.5f;
self.myButton.backgroundColor = [UIColor grayColor];
[self.myButton setTitle:@"Set Active" forState:UIControlStateNormal];
[self.myButton addTarget:self action:@selector(myButton:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview: self.myButton];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
-(void) myButton:(id)sender{
[sender setBackgroundColor:[UIColor redColor]];
}
假设 tableview 部分中有 3 行。我有 3 行的按钮。在第一种情况下,第一行的按钮应该是红色的,其他两行应该是灰色的。如果我选择第二行的按钮,那么第二行的按钮应该是红色的,另外 2 个是灰色的,以此类推。我还没有想出办法来做到这一点。有什么建议么?
我可以更改从单元格中选择的按钮的颜色。但在同一情况下,先前选择的按钮和所有其他按钮(除了选定的按钮)应该是默认颜色。一次只会突出显示一个按钮,并且该按钮始终是该实例的选定按钮。