如何在drawRect方法中将UIView添加到自定义UITableViewCell中

问题描述:

在我的项目中需要在UITableViewCell中添加uiview。我可以在UITableViewCell类中使用以下代码添加UIView。如何在drawRect方法中将UIView添加到自定义UITableViewCell中

-(void)drawRect{ 
     [cell.contentView addSubview:myView]; 
    } 

这是一个有效的方式来显示大量的表格单元格显示。有没有其他方式来添加UIView使用类似的方法。

drawInRect 
+0

这个问题含糊不清,所以不要指望一个直接的答案。如果你只是想'-addSubview:'那么我**不会**相信这是它的正确的地方。 – staticVoidMan 2014-08-28 05:56:34

+0

'cellForRowAtIndexPath:'是最好的地方,而不是'drawRect'。但是,如果你的这个子视图被添加到很多单元格中,为什么不把它作为你的子类型单元格的属性,并且当你需要显示/隐藏它时切换'hidden' /'frame'? – n00bProgrammer 2014-08-28 06:31:53

您将要添加的子视图中- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath这是UITableViewDataSource协议的一部分。

不要这样使用drawRect方法。该方法用于绘制UI元素的某些部分,并可能每秒调用几次。 您应该在cellForRowAtIndexPath方法(UITableViewDataSource协议)或- (void)awakeFromNib中添加子视图。 不要忘记删除UITableViewCell子类的- (void)prepareForReuse方法中的子视图。