繁体   English   中英

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

[英]How can I get UILabel on a custom table view cell?

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

问题在于如何获取作为单元格子视图的UILabel 每个单元格都包含一个标签和一个按钮,但是单击该单元格按钮只会增加UILabel ,其他单元格则保持原样。

提前致谢。

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

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

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

}

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

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

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

您可以遍历单元格中的所有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)];
}

我在这里写了一个简短的示例,说明如何从表格单元中获取标签: https ://stackoverflow.com/a/9864169/407488

但是我想您想要的是一次增加所有单元格中的所有标签? 然后只需使用reloadData并在调用它之前更改成员变量(触摸按钮时)。 您在cellForRow:代码中读取了该成员,并指定了适当的高度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM