这是我初始化UIActivityAndicatorView的代码:
self.indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge];
self.indicator.color = [UIColor colorWithRed:252.0 green:113.0 blue:9.0 alpha:1.0];
self.indicator.center = self.view.center;
[self.view addSubview:self.indicator];
动画开始后 - 指示符出现在适当的位置,但是为白色。为什么忽略颜色属性?
答案 0 :(得分:4)
值在0到1之间浮动。试试这个:
self.indicator.color = [UIColor colorWithRed:252.0/255.0 green:113.0/255.0 blue:9.0/255.0 alpha:1.0];
答案 1 :(得分:0)
我很惊讶所选答案在2015年12月有效,因为无论我在iOS 9.2中做什么,我都无法使用白色来显示任何颜色。这适用于大白旋转器。
我所做的工作是使用alpha为0启动控件,然后在100毫秒后更改颜色并显示它。下面的代码来自我在github上的ATMHud fork:
- (void)setActivity:(BOOL)activity
{
hudView.showActivity = activity;
if (activity) {
[hudView.activity startAnimating];
hudView.activity.alpha = 0;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^
{
// Workaround for bug where Apple ignores the color property
[self changeColor];
} );
} else {
[hudView.activity stopAnimating];
}
}
- (void)changeColor
{
hudView.activity.color = [UIColor blackColor];
[UIView animateWithDuration:.250+_animateDuration animations: ^{ hudView.activity.alpha = 1; }];
}
答案 2 :(得分:0)
请注意,activityIndicatorViewStyle
将根据documentation覆盖color
属性,这一点非常重要:
如果为活动指示器设置颜色,它将覆盖activityIndicatorViewStyle属性提供的颜色。
所以你必须首先设置样式,然后是颜色:
let activityIndicator = UIActivityIndicatorView()
activityIndicator.activityIndicatorViewStyle = .whiteLarge
let myColor = UIColor.colorWithRed(252.0/255.0, green: 113.0/255.0, blue: 9.0/255.0, alpha: 1.0)
activityIndicator.color = myColor
activityIndicator.startAnimating()
那应该是它。