Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 自定义UITableViewCell未正确隐藏视图_Iphone_Uitableview_Drawrect - Fatal编程技术网

Iphone 自定义UITableViewCell未正确隐藏视图

Iphone 自定义UITableViewCell未正确隐藏视图,iphone,uitableview,drawrect,Iphone,Uitableview,Drawrect,我正在使用苹果的自定义表格视图单元格代码,并修改单元格视图中的drawRect代码,使其看起来像我希望的那样。我已将其更改为具有一些UILabel和UIProgressView 如果正在构建单元格的数据没有特定字段,我希望UIProgressView被隐藏。这会起作用一段时间,但是当一个单元格从滚动中被重新调用时,进度视图将再次开始显示,即使我将其设置为hidden=YES。我尝试过不创建ProgressView,除非数据在那里,而且也不起作用 我以为答案在[自我设置需求显示]中,但这似乎没有帮

我正在使用苹果的自定义表格视图单元格代码,并修改单元格视图中的drawRect代码,使其看起来像我希望的那样。我已将其更改为具有一些UILabel和UIProgressView

如果正在构建单元格的数据没有特定字段,我希望UIProgressView被隐藏。这会起作用一段时间,但是当一个单元格从滚动中被重新调用时,进度视图将再次开始显示,即使我将其设置为hidden=YES。我尝试过不创建ProgressView,除非数据在那里,而且也不起作用

我以为答案在[自我设置需求显示]中,但这似乎没有帮助

以下是继续显示的drawRect中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编程,我想确保我做得正确,这样我就可以很好地滚动表格了!