在我调用 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/