如何在drawRect方法中将UIView添加到自定义UITableViewCell中
问题描述:
在我的项目中需要在UITableViewCell中添加uiview。我可以在UITableViewCell类中使用以下代码添加UIView。如何在drawRect方法中将UIView添加到自定义UITableViewCell中
-(void)drawRect{
[cell.contentView addSubview:myView];
}
这是一个有效的方式来显示大量的表格单元格显示。有没有其他方式来添加UIView使用类似的方法。
drawInRect
答
您将要添加的子视图中- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
这是UITableViewDataSource
协议的一部分。
答
不要这样使用drawRect方法。该方法用于绘制UI元素的某些部分,并可能每秒调用几次。 您应该在cellForRowAtIndexPath
方法(UITableViewDataSource
协议)或- (void)awakeFromNib
中添加子视图。 不要忘记删除UITableViewCell子类的- (void)prepareForReuse
方法中的子视图。
这个问题含糊不清,所以不要指望一个直接的答案。如果你只是想'-addSubview:'那么我**不会**相信这是它的正确的地方。 – staticVoidMan 2014-08-28 05:56:34
'cellForRowAtIndexPath:'是最好的地方,而不是'drawRect'。但是,如果你的这个子视图被添加到很多单元格中,为什么不把它作为你的子类型单元格的属性,并且当你需要显示/隐藏它时切换'hidden' /'frame'? – n00bProgrammer 2014-08-28 06:31:53