gpt4 book ai didi

ios - 获取 UIPopoverBackgroundVisualEffectView 的警告

转载 作者:可可西里 更新时间:2023-11-01 04:33:06 25 4
gpt4 key购买 nike

我在我的 View 中显示了一个 UIActionSheet,其中一个操作表的按钮显示了另一个操作表。当我在 iPad 上展示第二个操作表时,我在日志中收到这条警告消息:

UIPopoverBackgroundVisualEffectView is being asked to animate its opacity. This will cause the effect to appear broken until opacity returns to 1.

这是我的代码:

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Option"] delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Sort", nil];
actionSheet.tag = 1;
[actionSheet showInView:self.view];

在委托(delegate)中:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
[self showSortAction];
}

-(void)showSortAction {
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Sort By" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"A-Z", @"Z-A", @"Newer to older", @"Older to newer", nil];
actionSheet.tag = 2;
[actionSheet showInView:self.view];
}

最佳答案

我的猜测是第二个操作表的显示导致第一个操作表的不透明度发生变化,从而触发您看到的警告。不要从 -actionSheet:clickedButtonAtIndex: 中调用 -showSortAction,而是从 -actionSheet:didDismissWithButtonIndex: 中调用它。这使第一个操作表有足够的时间在第二个操作表开始动画之前从屏幕上消失。(请参阅 UIActionSheetDelegate documentation – 具体来说,clicked 和 did-dismiss 方法的详细文本。)

虽然我们在讨论这个主题,但请注意 UIActionSheet documentation表示它已从 iOS 8 开始弃用。除非您针对 iOS 7 或更早版本进行编程,否则请考虑尽快过渡到 UIAlertController。

关于ios - 获取 UIPopoverBackgroundVisualEffectView 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41978087/

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