2015-09-14 3 views
0

Я использую эту функцию, чтобы показать вид всплывающего выбрать изображение из камеры ролл:Неправильное направление стрелки, когда всплывающее окно появляется

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 с изображением (первый), но, как видите, стрелка всплывающего окна находится в верхней части.

enter image description here

Я попытался UIPopoverArrowDirection.Down, но выход был подключен: enter image description here

Это, как я называю selectImage():

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
//conditions to know if the first cell is selected 
    selectImage(collectionView.cellForItemAtIndexPath(indexPath)!) 
} 
+1

замените эту строку следующим образом: 'self.popOver? .presentPopoverFromRect (sender.frame, inView: sender.superview, allowedArrowDirections: UIPopoverArrowDirection.Any, animated: true)' – Nishant

+0

@Nishant Post - это ответ, поэтому я могу отметить его , – Maysam

ответ

0

Более общим способом представления ЛЮБОГО поповера является как показано в следующем фрагменте кода:

self.popOver?.presentPopoverFromRect(sender.frame, inView: sender.superview, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true) 
+0

что мне делать, если мой отправитель является вторым элементом LeftBarButtonItem ...? –