我在包含UIProgressView的iOS故事板上有一个原型单元。

定期执行的后台进程会通知委托它已经开始。该委托应使UIProgressView在表单元格上可见,但这没有发生。即使我可以看到该委托被调用,也不会导致UIProgressView出现。

委托方法尝试获取指向UIProgressView的指针,如下所示:

  UIProgressView* view = (UIProgressView*) [[[self tableView:myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]] contentView] viewWithTag:MyProgressViewTag];


其中viewWithTag设置为UIProgressView的标签。

我尝试调用[myTableView reloadData][myTableView setNeedsDisplay]尝试强制重新绘制单元格,但是它没有用。

有任何想法吗?

最佳答案

您从tableView的数据源请求一个新的单元格,则您获得的单元格不是tableView的一部分。

您需要一个已经在tableview中的单元格,因此向tableView询问该单元格。

尝试这个:

UIProgressView* view = (UIProgressView*) [[[myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]] contentView] viewWithTag:MyProgressViewTag];


并确保您从mainThread调用此方法。您不能通过不是主线程的线程来操作UI对象。

关于objective-c - UIProgressView没有出现在UITableViewCell上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9418437/

10-10 20:33