2012-03-26 35 views
0

在我的自定义单元格中有一个UILabel和一个UIButton。每当我点击UIButton时,UILabel的高度会随标签的内容而增加。如何在自定义表格视图单元格上获得UILabel?

问题是,我怎样才能得到UILabel这是一个细胞的子视图。每个单元格都包含一个标签和一个按钮,但仅增加了单击此按钮的单元格,其他单元格保持不变。

在此先感谢。

+0

你将不得不再给我们更多的东西 - 发布一些代码来说明你现在有什么,并解释你想要达到的目标。我直接提出的一个问题是“你为什么试图去UILabel?” - 您应该在控制标签的单元格上有方法,因此您应该将消息发送到将控制标签的单元格。 – 2012-03-26 09:21:28

+0

customcell上有许多子视图,但我只想按特定的标签高度增加按钮点击(每当内容超过点击更多按钮标签和单元格的高度增加。我成功与特定单元格高度,但在该单元格特定标签的高度不增加) – Birju 2012-03-26 09:26:29

+0

我的评论依然存在。你应该在被调用的单元上有一个方法来表示你想要标签的高度增加,并且单元格会处理改变它。该单元'拥有'它上面的标签,所以它应该负责改变高度。如果不添加一些代码来显示你的单元格,我不能提供比这更详细的建议。 – 2012-03-26 09:55:00

回答

0

您可以在细胞通过所有subview S和看看哪一个是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)]; 
} 
0

对于这一点,你必须需要为每个组件分配TAG ..

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

} 
0

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

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

这段代码确实是因为按钮是在同一视图发现标签

0

我写了一篇关于如何从tablecells这里得到的标签很短的例子:https://stackoverflow.com/a/9864169/407488

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

相关问题