我正在尝试调整 UILabel 的大小以适合其中的文本。事情看起来很简单,但这就是我正在做的:
[GKTurnBasedMatch loadMatchWithID:[matchReceived matchID] withCompletionHandler:^(GKTurnBasedMatch *updatedMatch, NSError *error){
NSPropertyListFormat plf;
NSMutableDictionary* gameData = [NSPropertyListSerialization propertyListWithData:updatedMatch.matchData options:NSPropertyListMutableContainersAndLeaves format:&plf error:nil];
myLabel.text = [gameData objectForKey:@"DictionaryText"];
[myLabel sizeToFit];
}
如果我将文本的设置添加调整大小以适应延迟几秒钟的 performSelector,myLabel 会根据需要调整大小。但是我需要标签在游戏数据加载后立即更新。
我尝试在 MainThread 上执行,但没有成功。
有什么想法吗?
最佳答案
首先,任何与 UI 交互的代码都必须在主线程上执行。所以很可能你的问题的一部分来自于不在主线程上。我见过后台线程上的 UI 代码导致的各种奇怪行为。
一旦你在主线程上有了它,你就可以开始诊断真正的问题了。很难说问题出在哪里,但我想到的一件事是,这可能是一个与约束相关的问题。
关于iOS 可能的线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433053/