[cell addSubview:button] 和 [cell.contentview addsubview:button] 有啥不同
Posted
技术标签:
【中文标题】[cell addSubview:button] 和 [cell.contentview addsubview:button] 有啥不同【英文标题】:what is diffrent between [cell addSubview:button] and [cell.contentview addsubview:button][cell addSubview:button] 和 [cell.contentview addsubview:button] 有什么不同 【发布时间】:2015-12-13 07:45:56 【问题描述】:我在 tableviewcell 中有按钮。
[cell addSubview:button]
和 [cell.contentview addsubview:button]
之间有什么不同?
因为当我在 tableview 中使用 [cell addSubview:button]
时,按钮功能工作正常,但我在 table view 中的界面搞砸了,在我滚动视图并返回 tableview 后按钮转到左侧单元格。
另一方面,当我使用[cell.contentview addsubview:button]
按钮功能不起作用并且没有保存到 myarray 时。
按钮代码:
UIButton *button=(UIButton *) [cell viewWithTag:103];//fav
[button setImage:[UIImage imageNamed:@"unfav.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"fav.png"] forState:UIControlStateSelected];
button.frame = CGRectMake(0,0, 50, 50);
button.tag = indexPath.row;
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[cell addSubview:button]; // add the button to the cell
[cell bringSubviewToFront:button];
【问题讨论】:
显然不同之处在于您要添加子视图的视图。 【参考方案1】:contentView
是添加了所有subviews
的单元格的默认视图。cell.view 是添加了contentView
本身的主视图,并且cell.contentView
覆盖了整个区域的cell.view。但在您的情况下,当您将按钮添加到 cell.view 时。
来自苹果文档关于ContentView
,
UITableViewCell
对象的内容视图是单元格显示内容的默认SuperView
。如果您想通过简单地添加其他视图来自定义单元格,则应将它们添加到内容视图中,以便在单元格进入和退出编辑模式时适当地定位它们。
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/#//apple_ref/occ/instp/UITableViewCell/contentView
【讨论】:
以上是关于[cell addSubview:button] 和 [cell.contentview addsubview:button] 有啥不同的主要内容,如果未能解决你的问题,请参考以下文章
java中,如何动态生成HSSFCell cell0= row.createCell(..)中的cell0,cell1,cell2,cell3........