Подтвердить что ты не робот

Изменение позиции стрелки UIActionSheet?

Чтобы показать UIActionSheet на iPad, я сделал это:

[actionSheetX showFromRect:RectX inView:myView animated:YES];

Стрелка указателя вниз указывает, могу ли я изменить эту позицию налево, вверх или вправо, например, при использовании обычного popover?

4b9b3361

Ответ 1

Apple не предоставляет никакого доступа к внутренней структуре для внутренней реализации UIActionSheet showFromRect, но что касается направления стрелок, на самом деле существует очень сложный способ обойти это и способ изменить направление стрелки в желаемое направление.

Трюк должен испортить параметр rect в - (void)showFromRect:(CGRect)rect inView (UIView *)view animated:(BOOL)animated. Apple не документирует этот параметр прямоугольника очень хорошо, но если ваш исходный прямоугольник даст вам направление стрелки вниз, подайте прямоугольник с большой высотой и отрицательным числом origin.y будет толкать всплывающее окно действия вверх таким образом, показано направление стрелки вверх. Это экстремальный взлом, но он последовательно работает в прошивке. Надеюсь, поможет.

Ответ 2

CGRect cellRect = cell.bounds;
cellRect.size.width = cell.frame.size.width * 2;
cellRect.origin.x = -(cell.frame.size.width + 10.0);
[_actionSheet showFromRect:cellRect inView:cell animated:YES];

Благодаря - переоценке.

iPad - контроллер с разделенным изображением: Он отображает лист действий с левой стрелкой в ​​конце ячейки главного представления (таблицы). Стрелка внутри с 10 пикселями в ячейке. Попробуй это. Легко понять логику отображения листа действий. Спасибо - Manraj.

Ответ 3

В документации для метода -showFromRect:inView: указано следующее:

На iPad этот метод отображает лист действий в popover, стрелка которого указывает на указанный прямоугольник представления

Это означает, что вы можете получить его, чтобы отобразить направление стрелки, которое вы хотите, перепутывая прямоугольник. Однако нет причин, по которым я могу подумать, почему вы хотите вручную установить направление стрелки, потому что UIActionSheet автоматически рассчитает наилучшее направление стрелки.