gpt4 book ai didi

ios - 出现 View 时立即打开相机

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

我的应用程序有一个要求,我需要立即打开相机。但是当我看到 ViewController 打开相机需要几秒钟的时间。谁能帮我。我尝试过使用队列 block ,但这不起作用。这是我到目前为止尝试过的代码:==

    - (void)viewDidLoad {

[super viewDidLoad];
[[NSOperationQueue mainQueue] addOperationWithBlock:^ {
[self onClickCamera:nil];

//Your code goes in here
NSLog(@"Main Thread Code");

}];
// dispatch_async(dispatch_get_main_queue(), ^{
// [self onClickCamera:nil];
// });

// dispatch_queue_t queue = dispatch_queue_create("com.example.MyQueue", NULL);
// dispatch_async(queue, ^{
// [self onClickCamera:nil];
//
// // Do some computation here.
//
// // Update UI after computation.
// dispatch_async(dispatch_get_main_queue(), ^{
// // Update the UI on the main thread.
// });
// });


}

- (IBAction)onClickCamera:(id)sender
{
NSLog(@"CALeed");
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = NO;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:NULL];
}

最佳答案

两个问题:

问题 1:

在 viewDidLoad 中, View 尚未完成布局渲染。因此,尝试在仍在渲染的 View 上呈现某些内容显然会增加延迟。只有在 View 完成布局后才会触发呈现相机。

所以把代码从viewDidLoad移到viewDidAppear

 - (void) viewDidAppear {
[super viewDidAppear];
[self onClickCamera:nil];
}

问题 2:

更多的是警告,然后是错误。

为什么还要 [NSOperationQueue mainQueue] addOperationWithBlock: ?? ViewDidLoad 总是只在与序列化主队列本身相关联的主线程上被调用。不必要的上下文切换没有多大意义

关于ios - 出现 View 时立即打开相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44964093/

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