iOS调用transitionWithView时出现不必要的延迟:

标签 ios ios-animations

在我调用 transitionWithView 和动画实际在屏幕上开始之间,我遇到了很长的延迟(大约 6 秒)。是因为我正在从处理程序或其他东西调用 transitionWithView 吗?

- (IBAction)saveToCal:(id)sender{
    LBWrapperView *wrapper = (LBWrapperView*)self.parentViewController;
    EKEventStore *store = [EKEventStore new];
    [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        if (!granted) { return; }
        EKEvent *event = [EKEvent eventWithEventStore:store];
        event.title = wrapper.lunch.title;
        ...
        event.calendar = [store defaultCalendarForNewEvents];
        NSError *err = nil;
        [store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];
        if (!err){
            [UIView transitionWithView:self.addToCalendarBtn duration:1.0 options:UIViewAnimationOptionCurveLinear animations:^{
                self.addToCalendarBtn.alpha = 0.0;
            } completion:nil];

        }
    }];
}

编辑: 我在调用时也遇到了同样的问题:

[UIView animateWithDuration:1.0 animations:^{
    self.addToCalendarBtn.alpha = 0.0;
}];

最佳答案

你确定你在主线程下运行吗?使用其他线程也会使用户界面操作变得迟缓。

您可以使用以下代码将您的 UI 操作更改为主线程:

dispatch_async(dispatch_get_main_queue(), ^{
    [UIView transitionWithView:self.addToCalendarBtn duration:1.0 options:UIViewAnimationOptionCurveLinear animations:^{
            self.addToCalendarBtn.alpha = 0.0;
     } completion:nil];
});

关于iOS调用transitionWithView时出现不必要的延迟:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924199/

相关文章:

ios - 使用 CABasicAnimation(CAAnimation) 自定义交互过渡

ios - UIView 动画 shadowPath 不遵循

ios - 带有尾随约束约束不稳定问题的 Objective-c 动画

ios - 尝试从 XCAssets 读取数据文件时获取 nil 资源 URL

ios - 在第一个 IOS 项目 Xcode 4 中获取信号 SIGABRT

iOS Facebook 获取好友列表

ios - Swift 类函数在 for-in 循环后返回空

ios - 使用 UIViewControllerTransitionCoordinator animateAlongsideTransition 方法

ios - 根据键盘的可用性平滑地隐藏和显示按钮

ios - 如何根据用户选择组合数组?