簡體   English   中英

iOS 9兼容版NSTimer scheduledTimerWithTimeInterval:重復:阻止:?

[英]iOS 9 compatible version of NSTimer scheduledTimerWithTimeInterval:repeats:block:?

我在iOS 10中使用以下代碼,但是當我在iOS 9中運行它時崩潰了。 我不認為NSTimer scheduledTimerWithTimeInterval:重復:塊:支持iOS 9.如何實現可在iOS 8-10中運行的計時器?

static NSTimer* timer = nil;

- (void)documentInteractionControllerWillBeginPreview:(UIDocumentInteractionController *)controller
{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.1 repeats:YES block:^(NSTimer * _Nonnull timer) {
        [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }];
}

-(void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller
{
    [timer invalidate];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

您似乎正在使用iOS10中引入的功能。 您在鏈接的頁面下方是iOS 2中的一個功能。

https://developer.apple.com/documentation/foundation/nstimer/1408356-timerwithtimeinterval?language=objc

改用它。

這解決了它:

static NSTimer* timer = nil;

- (void)documentInteractionControllerWillBeginPreview:(UIDocumentInteractionController *)controller
{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(hideStatusBar) userInfo:nil repeats:YES];
}

-(void)hideStatusBar
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

-(void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller
{
    [timer invalidate];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM