视图在PerformSelectorInBackground中更改其属性

时间:2014-08-22 12:18:57

标签: ios objective-c

我听说说视图的属性只能在主线程中更改,而且永远不会在辅助线程中更改,这会使某些后台处理。

例如,我无法在以后台模式运行的方法中运行以下命令之一:

- addSubview
- removeSubview
- setFrame
- setBackgroundColor
- etc...

不幸的是,似乎出现了问题,我可以在背景模式计划中运行的方法中设置背景,这样做会破坏规则,例如:

-(void)viewDidLoad
[self performSelectorInBackground:@selector(modoOff:) withObject:@"parametro"];
}

-(void)modoOff:(NSString*)valor{

    [self.view setBackgroundColor:[UIColor greenColor]];

}

为什么会这样?将此规则仅适用于旧版本的iOS?我正在使用ARC和ios 7.1。

1 个答案:

答案 0 :(得分:0)

不能在后台线程上更改UI的情况,不应该在后台线程上更改它。我建议您阅读以下原因:http://chritto.wordpress.com/2012/12/20/updating-the-ui-from-another-thread/