Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 具有按钮和不同按钮操作的TableCell_Iphone_Objective C_Uitableview - Fatal编程技术网

Iphone 具有按钮和不同按钮操作的TableCell

Iphone 具有按钮和不同按钮操作的TableCell,iphone,objective-c,uitableview,Iphone,Objective C,Uitableview,我刚接触iphone,正在从事一个项目,其中一个需求位于UITableView中,我们有两个部分。在第一部分中,我们必须显示地址,在第二部分中,我们有四个可变行,包括电话号码、传真、电子邮件和短信。如果任何项目(电话、传真、电子邮件、sms)没有数据,则该行将不可见,并且每行包含一个按钮。单击这些ui按钮应该执行特定功能,就像我单击电话行中的按钮一样,然后它应该像wise一样连接到电话 我的问题是我无法区分ui按钮操作,因为行不是固定的。因此,如何根据特定的行数据动态执行操作。当前,我只能对“所

我刚接触iphone,正在从事一个项目,其中一个需求位于
UITableView
中,我们有两个
部分
。在第一部分中,我们必须显示地址,在第二部分中,我们有四个可变行,包括电话号码、传真、电子邮件和短信。如果任何项目(
电话、传真、电子邮件、sms
)没有数据,则该行将不可见,并且每行包含一个按钮。单击这些
ui按钮
应该执行特定功能,就像我单击电话行中的按钮一样,然后它应该像wise一样连接到电话


我的问题是我无法区分
ui按钮
操作,因为行不是固定的。因此,如何根据特定的行数据动态执行操作。当前,我只能对“所有行”按钮执行一个操作。

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

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.
}

ui按钮指定不同的标签号。您可以使用IB为按钮提供标签号,然后执行相应的操作调用标签值。有几种不同的处理方法。我假设您有一些自定义单元格,上面有
ui标签
ui按钮
。第一件事是添加标签,就像Mundi说的那样


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

如果您的问题只是调用操作,那么请阅读我的回答:如何将不同的标记设置到tableview单元格中的同一个按钮中,它也应该是动态的。比如,如果手机号可用,那么只有它应该标记。无论何时动态更改按钮,也要更改标记。