UIPopoverController presentPopoverFromBarButtonItem: ... Off-Center - PullRequest
3 голосов
/ 21 марта 2012

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

presenting popover from bar button item

Я хотел бы сдвинуть это на несколько пикселей влево.

Это происходит не во всех UIBarButtonItem экземплярах, я просто создаю их с помощью пользовательских изображений. Так, например, крайний правый элемент кнопки имеет идеально центрированную стрелку, и его экземпляр создается с помощью системного элемента:

[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareButtonWasPressed:)]

Но если я использую пользовательское изображение,

[[UIBarButtonItem alloc] initWithImage:slideshowImage style:UIBarButtonItemStylePlain target:self action:@selector(slideshowButtonWasPressed:)]

... это не в центре. Я попытался отрегулировать imageInsets элемента кнопки, но он растягивает изображение. Есть предложения?

1 Ответ

0 голосов
/ 03 мая 2012

Оказывается, самый простой способ сделать это - реализовать собственный подкласс UIPopoverBackgroundView и использовать его для настройки места отображения стрелки.Это включает в себя множество пользовательских кодов для рисования, и я не смог бы сделать это без дизайнера, но мы все равно хотели создать собственный фон, так что оно того стоило.

До сих пор не знаю, как бы я это исправить без того, что является спорным обходным путем.

...