[cell addSubview:button]和[cell.contentview addsubview:button]之间有什么不同?

时间:2015-12-13 07:45:57

标签: ios objective-c uitableview uibutton

我在tableviewcell中有按钮。 [cell addSubview:button][cell.contentview addsubview:button]之间有什么不同? 因为当我在tableview中使用[cell addSubview:button]时,按钮功能正常工作但我在桌面视图中的界面搞砸了,按钮在我滚动视图并返回到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 个答案:

答案 0 :(得分:1)

contentView是添加了所有子视图的单元格的默认视图.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