1

我试图在一个单独的线程中分配一个 UIDatePicker(iPhone 4 的性能提升),并且由于某种原因,以下代码绘制了一个黑框(日期选择器应该去的地方),大约 20-30 秒后显示日期选择器。

@property (nonatomic, strong) dispatch_queue_t backgroundQueue;


    dispatch_async(self.backgroundQueue, ^{
        self.datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, self.deviceRect.size.width, self.datePicker.frame.size.height)];
        [self.datePicker addTarget:self action:@selector(didSelectDate:) forControlEvents:UIControlEventValueChanged];

        dispatch_async(dispatch_get_main_queue(), ^{
            [self.view addSubview:self.datePicker];
    });

});

我知道线程代码有效,因为我添加了一个冗长的过程并在完成时添加了一个 UIView 并且一切都按预期显示。我想这样做的原因是因为在 iPhone 4 上,UIDatePicker 在第一次显示时会滞后。您可以通过转到 Apple 日历应用程序并添加日期来看到这一点,在显示 UIDatePicker 之前存在明显的延迟。

4

0 回答 0