如何在自定义表格视图单元格上获取UILabel?

时间:2012-03-26 09:11:55

标签: iphone ios uilabel

在我的自定义单元格中,有一个UILabel和一个UIButton。每当我点击UIButton时,UILabel的高度就会根据标签的内容而增加。

问题在于我如何才能获得作为单元格子视图的UILabel。每个单元格都包含一个标签和一个按钮,但只有UILabel增加了单击单元格按钮,其他单元格保持不变。

提前致谢。

5 个答案:

答案 0 :(得分:0)

为此,您需要为每个组件分配TAG ..

答案 1 :(得分:0)

尝试将方法绑定到您的按钮可能适合您。

-(void)buttonClick:(id)sender {


UITableViewCell *cell=(UITableViewCell*)[sender superview];
NSArray *subviews=[cell subviews];
for (int i=0; i<[subviews count]; i++) {
    id object=[subviews objectAtIndex:i];
    if([object isKindOfClass:[UILabel class]]){
        //do stuff here
    }
}

}

答案 2 :(得分:0)

最简单的方法是将tag属性分配给标签。在您的按钮操作方法中,您可以找到相关标签。例如:

- (void) myButtonAction: (UIButton *) sender
{
    UILabel *theLabel = (UILabel *) [sender.superview viewWithTag: MYLABELTAG];
    // Do something with theLabel
}

此代码的作用是在与按钮相同的视图中找到标签。

答案 3 :(得分:0)

您可以浏览单元格中的所有subview,看看哪一个是UILabel

for(UIView *v in [cell subviews])
{
    if([v isKindOfClass:[UILabel class]])
       //you can put more checks to see if height is to be increased/decreased
       [v setFrame:CGRectMake(origin.x,origin.y,width,height)];
}

答案 4 :(得分:0)

我写了一个关于如何从tablecells获取标签的简短示例:https://stackoverflow.com/a/9864169/407488

但我认为你想要的是立刻增加所有细胞中的所有标签?然后只需使用reloadData并在调用之前更改成员变量(触摸按钮时)。您在cellForRow:代码中读取该成员并指定适当的高度。