我在包含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/