我正在尝试在我的 UIRefreshControl 上设置 tintColor(在 iOS 7 上构建)。
我在 Storyboard 中启用了 tableViewController 的刷新,然后在我的 ViewController viewDidLoad
方法中我执行了以下操作:
[self.refreshControl setTintColor:[UIColor redColor]];
所以现在,当我拉刷新时,刷新控件的颜色确实是红色:
我希望我的 View 在它出现时自动更新,所以我做到了:
- (void)viewDidAppear:(BOOL)animated{
[self.refreshControl beginRefreshing];
}
根据 https://stackoverflow.com/a/16250679/1809736,它没有显示纺车, 我加了
[self.tableView setContentOffset:CGPointMake(0, -self.refreshControl.frame.size.height) animated:NO];
强制显示它。 它显示它,但现在它恢复为默认颜色:
如果我之后尝试手动拉刷新,它是红色的。
我尝试在 iOS6 上构建它,它可以正常工作,那么这是 iOS7 的错误吗?
P.S.:模拟器没有问题,我尝试在设备上构建它,同样的错误。
P.P.S:我建立了一个示例项目,你能告诉我你是否有同样的错误,或者我的代码是否有问题?这是链接:http://d.pr/f/pGrV
非常感谢!
最佳答案
嘿,刚刚偶然发现这个问题。
有趣的是,我通过先设置 contentOffset 然后调用 beginRefreshing 来修复我的代码
if(self.tableView.contentOffset.y == 0){
self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);
[self.refreshControl beginRefreshing];
}
您可能想要为这个过程设置动画:
[UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^(void){
self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);
} completion:^(BOOL finished) {
[self.refreshControl beginRefreshing];
}];
希望对你有所帮助。
W
关于iphone - iOS 7 UIRefreshControl tintColor 不适用于 beginRefreshing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19026351/