UIAlertController的popover变形
Posted
技术标签:
【中文标题】UIAlertController的popover变形【英文标题】:UIAlertController's popover is deformed 【发布时间】:2015-03-22 14:01:47 【问题描述】:我使用 UIToolbar 中的 UIAlertController 向用户展示了一个选项列表,其中包含首选样式的操作表。出现时,popover 的箭头被截断,它的角用两个不同的半径圆化:
据我所见,我用来展示它的代码直接来自文档:
UIAlertController *alertController =
[UIAlertController alertControllerWithTitle:@""
message:@""
preferredStyle:UIAlertControllerStyleActionSheet];
NSArray *actions = @[
[UIAlertAction actionWithTitle:@"Take a Photo"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) ],
[UIAlertAction actionWithTitle:@"Choose from Album"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) ],
[UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) ]
];
for (UIAlertAction *action in actions)
[alertController addAction:action];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
alertController.modalPresentationStyle = UIModalPresentationPopover;
alertController.popoverPresentationController.barButtonItem = myBarButtonItem;
[self presentViewController:alertController animated:YES completion:nil];
这是一个已知的错误吗?我在 ios 8.2 上试用了物理 iPad,在 iOS 8.1 和 8.2 上试用了模拟器。
【问题讨论】:
我遇到了这个问题。你有什么进展吗? 如果将@""
替换为nil
会发生什么?
【参考方案1】:
尝试明确设置 allowedArrowDirections。
例如在 Swift 中:
actionSheet.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.Down;
【讨论】:
我实际上能够重现您的问题,并且它发生在我更改设备方向然后切换回原始方向之后。以上是关于UIAlertController的popover变形的主要内容,如果未能解决你的问题,请参考以下文章
iOS Popover 或 ActionSheet 导致 UISegmentedControl 按钮变灰
swift UIAlertController使用 UIAlertController的宽度 为270
从第一个 UIAlertController 打开第二个 UIAlertController
从 AppDelegate 到 PresentedViewController 的警报:“尝试在...上呈现 UIAlertController 已经在呈现 UIAlertController”