iphone - iOS 7 UIRefreshControl tintColor 不适用于 beg

我正在尝试在我的 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/

相关文章:

ios - 如何调用 iPhone map 以获取当前位置作为起始地址的方向

objective-c - 有什么方法可以加粗 NSString 的一部分?

ios - 在主线程上调用方法?

ios - 找不到符号 : kUTTypeImage

ios - 是否可以调试 "Terminated due to memory error"?

ios - 如何检查是否为 64 位构建了静态库?

objective-c - 在 Objective-C 中从字符串中删除空格

ios - NSPredicate 用于测试 NULL 和空白字符串

ios - 如何为 NSDate 添加一个月?

objective-c - 删除 NSString 的最后一个字符