TableCell带有按钮和不同的按钮动作

时间:2013-03-08 12:51:37

标签: iphone objective-c uitableview

我是iphone的新手,正在处理一个需求位于UITableView的项目,我们有两个sections。在第一部分中,我们必须显示地址,在第二部分中,我们有四个由Phone number, Fax, Email, and SMS组成的变量行。如果任何项目(phone,fax,email,sms)没有数据,那么该行将不可见,每行包含一个按钮。点击这些UIButton应该执行特定的功能,就像我点击电话行中的按钮然后它应该像智者一样连接到手机。

我的问题是由于行未修复,我无法区分UIButton操作。那么如何动态地根据特定的行数据执行动作。目前,我只能对所有行按钮执行一个操作。

3 个答案:

答案 0 :(得分:1)

使用枚举来定义您的单元格类型。检查处理程序中的枚举。

typedef enum {
   CellTypePhone = 100, 
   CellTypeFax, 
   CellTypeEmail, 
   CellTypeSMS
} CellType;

使用这些来标记您的单元格或按钮,例如

cell.tag = CellTypePhone; 
button.tag = CellTypePhone;

然后你知道在按钮处理程序中选择了什么单元格。

-(void)buttonPressed:(UIButton*)sender {
    if      (sender.tag == CellTypePhone)     { /* handle phone */ }
    else if (sender.tag == CellTypeFax)       { /* handle fax   */ }
    // etc.
}

答案 1 :(得分:0)

UIButtons提供不同的标记号。您可以使用IB为按钮指定标签号,然后相应地执行操作,调用标签值

答案 2 :(得分:0)

有几种不同的处理方式。我假设您有一些自定义单元格,其中包含UILabelUIButton。第一件事是添加标签,如Mundi说。

第二个选项是向自定义单元格添加方法,以设置按钮的目标和操作。根据数据设置单元格时,也可以为每个按钮设置选择器。