gpt4 book ai didi

响应式 UI 的 ios 应用程序设计

转载 作者:行者123 更新时间:2023-11-29 02:00:33 25 4
gpt4 key购买 nike

我是 iOS 应用程序开发的新手,对用户界面响应性方面的应用程序设计有一个普遍的疑问。是否应该始终有一个单独的线程来处理 UI 内容?例如,我正在开发一个简单的游戏,它应该始终检测滑动手势,除了不断完成一些工作之外,比如用移动对象更新屏幕并为它们设置动画(虽然没有阻塞调用)。该应用程序通常运行良好,但我注意到它有时无法检测到滑动手势,我想知道是否是因为我在主线程中执行所有操作。

我是否应该在主线程中处理滑动手势并在单独的线程中处理其他所有事情?动画怎么样,每个动画也应该有自己的线程吗?还有关于运行循环,在这种情况下线程更好还是运行循环更好? (即使在网上阅读了一些有关运行循环的资料后,我仍然很困惑在哪里使用运行循环)

最佳答案

我建议将 NSOperationQueue 视为简单性和功能性的最佳组合。 (对于简单的事情,GCD 甚至更简单,但随着您的要求增加,几乎无法控制。)

一个常见的模式是接收输入(在主线程上),将其处理移至后台,同时请求返回主线程进行 UI 更新。这是一个关于如何构建它的模板:

@interface QueueUser : NSObject
@property (nonatomic, strong) NSOperationQueue *workQueue;
@end

@implementation QueueUser
- (instancetype)init {
self = [super init];
if (self) {
_workQueue = [[NSOperationQueue alloc] init];
_workQueue.maxConcurrentOperationCount = 1;
_workQueue.name = @"ca.philmills.Test-Background";
}
return self;
}

- (void)handleInput {
[self.workQueue addOperationWithBlock:^{
// Do work that may take some time
// -->

[[NSOperationQueue mainQueue] addOperationWithBlock:^{
// Update the UI
// -->

}];
}];
}
@end

关于响应式 UI 的 ios 应用程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30438142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com