我正在尝试显示(AlertController)操作表。但是我在控制台和#34; < _UIPopoverBackgroundVisualEffectView 0x7fd65ef76ec0>被要求动画其不透明度。这将导致效果出现断裂,直到不透明度返回到1."
这是我的代码: -
extension GroupDataView {
func callDot (sender : UIButton)
{
let alert = UIAlertController(title: nil, message: nil,
preferredStyle: .actionSheet)
alert.addAction(UIAlertAction(title: "Edit Group", style: .default , handler:{ (action)in
print("User click Edit Group")
}))
alert.addAction(UIAlertAction(title: "Create Folder", style: .default , handler:{ (action)in
print("User click Create Folder button")
}))
alert.addAction(UIAlertAction(title: "Delete Group", style: .destructive , handler:{ (action)in
print("User click Delete Group button")
}))
if let popoverController = alert.popoverPresentationController {
popoverController.sourceView = sender
popoverController.sourceRect = sender.bounds
self.present(alert, animated: true, completion: {
print("completion block")
})
}
else
{
self.present(alert, animated: true, completion: {
print("completion block")
})
}
}
}
我不知道为什么在控制台中显示此警告。 ActionSheet正在准备但是如何删除该警告? 感谢
答案 0 :(得分:5)
请参阅Apple开发者论坛上@Hardy的回答: Warning message from UIPopover †
...似乎是iOS中的一个错误。但它似乎并不重要。虽然 - 我相信 - 有时UIAlertController下面的区域没有正确绘制。我可以在很短的时间内看到黑色背景闪烁,虽然底层视图的背景不是黑色。
†在Google here
上缓存答案 1 :(得分:4)
我遇到了同样的问题,我通过在animated: false
或/和self.present
函数中设置self.dismiss
来解决此问题。请参阅https://forums.developer.apple.com/thread/53677
答案 2 :(得分:-1)
我意识到这是一个老问题,但我只是遇到了同样的问题,我发现了一个解决方法,将显示延迟了0.001秒,所以当你通常调用这个函数时我用这个代码来延迟
[self performSelector:@selector(viewBookmark:) withObject:bookmarkBarButton afterDelay:0.001];
请原谅OBJ-C,但swift中的类似延迟应该会导致同时不显示2个视图的结果相同。