是否可以编辑UITableViewCellAccessoryDe​​tailDisclosureButton属性?

时间:2011-09-15 06:42:10

标签: iphone objective-c cocoa-touch uitableview uibutton

比如说,我想编辑突出显示状态的标题,这可能吗?

我知道可以使用自定义UIButtons,但是是否可以编辑UITableViewCellAccessoryDetailDisclosureButton的属性?

如果没有,是否可以创建自定义按钮并仍然调用UITableView委托方法? 如果是这样,如何从自定义按钮单元格中传递indexPath

干杯!

3 个答案:

答案 0 :(得分:1)

提供您的自定义button.tag=indexPath.row并访问第行。来自按钮标签

例如: -

    UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [deleteButton setFrame:CGRectMake(285, 5, 30, 30)];
    deleteButton.contentMode = UIViewContentModeScaleAspectFill;     
    UIImage *newImage12 = [UIImage imageNamed:@"x.png"];
    deleteButton.tag = indexPath.row;
    [deleteButton setBackgroundImage:newImage12 forState:UIControlStateNormal];
    [deleteButton setBackgroundImage:newImage12 forState:UIControlStateHighlighted];
    [deleteButton addTarget:self action:@selector(deleteRemindersMethod:) forControlEvents:UIControlEventTouchUpInside];
    [cell.contentView addSubview:deleteButton];

-(void)deleteRemindersMethod:(UIButton *)sender
{
    int rowNO=sender.tag;
}

答案 1 :(得分:1)

据我所知,您必须将自己的按钮设置为附件视图。有几种方法可以获取indexPath,我首选的是使用locationInView:获取触摸坐标,然后使用indexPathForRowAtPoint:获取所需的实际indexPath

CGPoint location = [sender locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

(代码取自here

答案 2 :(得分:1)

您可以创建自定义UIButton并将其分配给单元格的accessoryView属性。 如果你想做某事真正自定义突出显示的单元格状态,您应该考虑子类化UITableViewCell并覆盖setSelected:animated: