2017-02-21 9 views
1

У меня есть popover, где SourceRect - кнопка настройки (кнопка со значком шестеренки). Позиция popover верна для всех ориентаций устройства, за исключением LandscapeLeft.UIPopoverPresentationController не отображается в правильном положении

Я поставил якорь от застройщика XCode интерфейса и установить исходный прямоугольник программно:

var poc = segue.DestinationViewController as PVPencilOptionsController; 
poc.ViewModel = this.ViewModel.ColorPicker; 
var ppc = (UIPopoverPresentationController)poc.PresentationController; 
ppc.SourceRect = this.PVEditIssuePhotoPencilOptionsButton.Frame; 

Ниже результат позиции поповер:

Портрет/вниз (правильный):

Portrait and upside down

Пейзаж Правый (верный):

Landscape Right

Пейзаж левый (неправильно)

Landscape Left

Как вы можете видеть, если ориентация устройства Пейзаж слева, существует разрыв между поповер стрелкой и кнопки настройки.

Как узнать, откуда взялся этот пробел?

ответ

0

У меня были проблемы с simlar, и все было связано с тем, что я вычислял свой размер и мое позиционирование в неправильном месте, иногда используя неправильные значения. Там две вещи, которые я хотел бы предложить, чтобы решить вашу проблему:

1. Выполните все вычисления положения/проклейки в LayoutSubviews: переопределять значение LayoutSubviews в контроллере и рассчитать вашу информацию о местоположении там. После базового вызова.

2. Размеры выходов кадра, а также границы: Таким образом вы можете видеть, что у вас есть и где вы хотите. Сделайте это до и после макета, чтобы увидеть разницу.

+0

Я пробовал оба ваших решения, но я все еще не могу найти проблему. Рамка и границы правильны, позиция SourceRect тоже. – currarpickt

+0

@currarpickt это облом. Другой способ решить проблему определения местоположения и размера, задав цвета фона элементов, которые я пытаюсь установить, и элемент, в который он помещен. Просто чтобы увидеть, все ли как ожидается. Это единственный другой способ увидеть, как вы приближаетесь к решению этого. –

+0

Я пробовал это, менял каждый цвет фона, и все находится в правильном положении. – currarpickt