Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone activityIndicatorViewStyle只能设置一次?_Iphone_Objective C_Ios_Ipad - Fatal编程技术网

Iphone activityIndicatorViewStyle只能设置一次?

Iphone activityIndicatorViewStyle只能设置一次?,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我似乎不能多次设置activityIndicatorViewStyle。代码如下: self.loadingIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 20.0f, 20.0f)]; [self.loadingIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; [self.load

我似乎不能多次设置activityIndicatorViewStyle。代码如下:

self.loadingIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 20.0f, 20.0f)];
[self.loadingIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
[self.loadingIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];

输出总是灰色的。第二次尝试设置样式似乎没有成功。这是一个bug吗?

我惊讶地发现activityIndicatorViewStyle属性不是只读的。但是,考虑到唯一记录在案的初始值设定项方法是initWithActivityIndicatorStyle:,我非常确定该类是用一种样式初始化的,而不是动态更改

如果您需要在两者之间切换,我建议您将旧的换成新的:

UIActivityIndicatorView *newView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorViewStyle:...];
newView.center = self.loadingIndicator.center;
[[self.loadingIndicator superview] addSubview:newView];
[self.loadingIndicator removeFromSuperview];
self.loadingIndicator = newView;
[newView release];

嗯,奇怪。我只是在想为什么你会希望它们从灰色变成白色。过渡将是即时的,你不会注意到它。无论如何。。。在改变风格之前试着释放它。?@Legolas上面的代码只是为了实验。我的真正意图是在该指示器位于popover内时切换样式。activityIndicatorViewStyle属性在初始化后肯定是可更改的。尝试iOS5测试版,看看问题是否依然存在。如果有,请提交一个bug。谢谢,这也是我的怀疑。苹果应该正确地记录这一点。