我使用此功能显示弹出 View 以从相机胶卷中选择图像:
func selectImage(sender: UICollectionViewCell){
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum)
{
let imagePickerController = UIImagePickerController()
imagePickerController.delegate = self
imagePickerController.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum
imagePickerController.allowsEditing = false
self.popOver = UIPopoverController(contentViewController: imagePickerController)
self.popOver?.presentPopoverFromRect(sender.frame, inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)
}
}
在上面的代码中,sender.frame 引用带有图像图标(第一个)的 CollectionViewCell
,但如您所见,弹出 View 的箭头位于顶部。
我尝试过 UIPopoverArrowDirection.Down
但输出已连接:
这就是我调用selectImage()
的方式:
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
//conditions to know if the first cell is selected
selectImage(collectionView.cellForItemAtIndexPath(indexPath)!)
}
最佳答案
呈现任何弹出窗口的更通用方法如以下代码片段所示:
self.popOver?.presentPopoverFromRect(sender.frame, inView: sender.superview, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)
关于swift - 弹出窗口出现时方向箭头错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32566917/