2010-10-07 3 views

ответ

35

Смотрите мою реализацию здесь: https://github.com/werner77/WEPopover

Он имеет такой же интерфейс, как UIPopoverController но обобщается для iPhone и с поддержкой видом пользовательского фона.

+0

Пробовал. Отличная работа. –

+0

Очень полезно. Отличная работа! – Jyotsna

+0

Есть ошибки. 1. Сбой, если делегат не реализует shouldDismissPopover (легко фиксируется). Поскольку вы объявили этот метод как необязательный, не реализующий метод является правильным поведением. 2. Не меняет размеры, когда popoverContentSize изменяется, пока отображается popover. Это нелегко исправить (по крайней мере, не за 10 минут, которые я пытался, но я сделаю это в любом случае, потому что в версии UIKit есть фатальные ошибки дизайна). Постскриптум Я с удовольствием поделюсь своими исправлениями, для этого мне нужен ваш адрес электронной почты - не знаю, как отправить запрос на перенос с помощью клиента GitX, который я использую. – Soonts

0

В принципе, лучший способ сделать это, чтобы реализовать пользовательские UIAlertView подклассов, которые выглядят/ведут себя, как вы хотите, с помощью пользовательской анимации и быть в состоянии нажать позади и исчезают (если вы хотите, что функциональность, как и UIPopoverController имеет его)

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

2

Существует причина, по которой UIPopoverController не является стандартным элементом пользовательского интерфейса на iPhone, поскольку пространство экрана ограничено. Наличие popover, это легко читаемый, подразумевает, что довольно много экрана iPhone будет рассмотрено popover. Возможно, вам следует пересмотреть свое решение пользовательского интерфейса.

Возможно обложкаВертикально-модальный вид?

+2

Это неправда. В MapKit есть недокументированный UICalloutView, который выполняет аналогичную задачу. Он не должен быть таким же большим, как PopoverController, но достаточно для отображения некоторого четко определенного представления содержимого, которое я передаю ему. –

+0

Думаю, я напишу UICalloutView вне MapKit. Спасибо за предложение. –

5

Я предоставил другой альтернативный SGPopoverController по адресу http://github.com/KJoyner/SeaGlass. Подобно WEPopover, у этого есть аналогичный интерфейс с UIPovoerController, но работает на iPhone. Эта версия обрабатывает больше угловых случаев, работает как модально, так и немодуально, поддерживает перекрестные представления и многое другое.

+0

Удивительный, я скоро проверю его. –

+0

Я не нашел SGPopoverController все это замечательно. У этого есть вопросы рендеринга, когда стрелки находятся рядом с углами, для одного. Во-вторых, отсутствует метод currentPopoverFromBarButtonItem. Если вам нужна замена для UIPopoverController, это еще не все. – TomSwift

+0

Какие проблемы с рендерингом у вас есть?Можете ли вы ввести проблему в github, и я посмотрю на нее. –

3

Создать UIPopover + iPhone.h

#import <Foundation/Foundation.h> 

@interface UIPopoverController (overrides) 
+ (BOOL)_popoversDisabled; 
@end 
+3

Просто обратите внимание, что это не будет одобрено в обзоре App Store, так как это частный var. – runmad

+0

Может работать, если вы не используете подход категории, но подклассифицируете UIPopoverController. – stigi

1

Найдено другой мерзавец. Выглядит более активно и активно поддерживается. он использует QuantzCore для рисования popover, который выглядит так же элегантно, как и SDK от iOS. Только для справки: https://github.com/50pixels/FPPopover

Смежные вопросы