Iphone 自定义UITableViewCell未正确隐藏视图
我正在使用苹果的自定义表格视图单元格代码,并修改单元格视图中的drawRect代码,使其看起来像我希望的那样。我已将其更改为具有一些UILabel和UIProgressView 如果正在构建单元格的数据没有特定字段,我希望UIProgressView被隐藏。这会起作用一段时间,但是当一个单元格从滚动中被重新调用时,进度视图将再次开始显示,即使我将其设置为hidden=YES。我尝试过不创建ProgressView,除非数据在那里,而且也不起作用 我以为答案在[自我设置需求显示]中,但这似乎没有帮助 以下是继续显示的drawRect中progressview的代码:Iphone 自定义UITableViewCell未正确隐藏视图,iphone,uitableview,drawrect,Iphone,Uitableview,Drawrect,我正在使用苹果的自定义表格视图单元格代码,并修改单元格视图中的drawRect代码,使其看起来像我希望的那样。我已将其更改为具有一些UILabel和UIProgressView 如果正在构建单元格的数据没有特定字段,我希望UIProgressView被隐藏。这会起作用一段时间,但是当一个单元格从滚动中被重新调用时,进度视图将再次开始显示,即使我将其设置为hidden=YES。我尝试过不创建ProgressView,除非数据在那里,而且也不起作用 我以为答案在[自我设置需求显示]中,但这似乎没有帮
UIProgressView *c1Progress = [[UIProgressView alloc]initWithFrame:CGRectMake(20.0, 70.0, 280.0, 12.0)];
float iProgress = (value / target);
c1Progress.progress = iProgress;
if (!dataExists) {
c1Progress.hidden = YES;
}
[self addSubview:c1Progress];
[c1Progress release];
您肯定不希望在
drawRect
中使用此代码。您应该alloc/init您的UIProgressView,并将其作为子视图添加到UITableViewCell子类init
方法中(并确保在dealloc
中释放它)
设置
c1进度.progress
和c1进度.hidden
的逻辑应采用某种方法,该方法仅在值
、目标
或数据存在
更改时调用。如果您有一个用于所讨论的数据/值的setter方法,那么这将是一个很好的地方 检查dataExists的值。。。并在NSLog中打印,如果每次都执行这段代码。。。从drawRect中删除此。。。初始化并仅释放一次…dataExists的值已正确设置,设置hidden=YES的代码将运行。我在上面设置了一个断点,它按预期运行。谢谢,成功了。我将c1Progress移到一个类变量,在init方法中实例化它,并在datasetter方法中设置值。这是我第一次尝试自定义tableviewcell编程,我想确保我做得正确,这样我就可以很好地滚动表格了!