从细胞触摸的自定义细胞中获取价值

时间:2015-07-07 03:45:46

标签: objective-c uicollectionview

我对iOS有点新,我正在使用UICollectionView。我的UICollectionView单元格中填充了来自我的其余服务器的数组中的值。 所以我把它们拉下来并分配字段,ID,名称和文本。当我点击特定的细胞时。我想发送该单元格的ID(我们刚下拉的ID)并将其作为参数发送到我的php。到目前为止,我正在使用ID填充我的collectionview,但是当我点击单元格时出现问题,我不确定如何获取ID。在didSelectCellAtIndex方法中我试图使用

UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
//dictionary[indexPath.row].;
cell.

但是我不知道如何参考我想要的房产。从

开始
cellForItemAtIndexPath

我将我想要的标签定义为

UILabel *myid=(UILabel *)[cell viewWithTag:1];

任何帮助将标签中的ID分配给要发送到我的php的变量都将不胜感激。

2 个答案:

答案 0 :(得分:1)

我建议您创建一个自定义单元格(UICollectionViewCell的子类),其中包含需要配置的每个子视图的属性(如果您使用xib / storyboard,则为IBOutlet)。这样他们就可以被访问了。像这样:

@interface MyCollectionViewCell : UICollectionViewCell

@property (nonatomic, weak) IBOutlet UILabel *IDLabel;

@end

您可以直接访问它:

MyCollectionViewCell *cell = (MyCollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
cell.IDLabel

或者像这样:

UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
UILabel *myid=(UILabel *)[cell viewWithTag:1];
NSString *id = myid.text;

我认为您也可以通过indexPath从您的dataSource(例如ID)访问ID。

NSString *id = IDs[indexPath.row];

答案 1 :(得分:0)

创建UICollectionView的最佳方法来自以下链接

  

Creating a UICollectionView programmatically

在此代码中,他们是一个方法cellForItemAtIndexPath,您可以在其中创建子视图,如下所示

如果您想将UILabel用作子视图,请遵循此代码。

UILabel *lblName = (UILabel *)[cell viewWithTag:1];

if(lblName == nill)
{

//initalize the label.
    lblName =[[UIlabel alloc]init];   
    lblName.tag=1;
}

else

{

//assign value for that label

}

您可以通过这种方式创建CollectionViewCell中的所有子视图。只是不要忘记在其他地方添加标签,它将始终为单元格创建新标签。

相关问题