Лист действия не показывает Кнопку отмены на iPad

Если вы строго определяете функцию самостоятельно, и это относительно короткое определение, решение без зависимостей должно определять функцию в строке и присваивать eval () выражения вашей функции.

Например.

funcstring = 'lambda x: x> 5'
func = eval(funcstring)

, а затем необязательно присоединить исходный код к функции:

func.source = funcstring
23
задан 3 May 2010 в 19:27
поделиться

4 ответа

Мне удалось решить эту проблему, установив actionSheetStyle:

actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;

UIActionSheetStyleBlackTranslucent также работает. Я показываю лист действий из контроллера модального представления, который, я полагаю, технически не является «всплывающим контроллером», как сказано в руководстве, но не вижу, что кнопка «Отмена» на листе действий выглядит неправильно, когда она появляется поверх модального представления. Все, что видит пользователь, - это одна страшная красная кнопка без видимой альтернативы.

Возможно, я мог бы изменить модальный контроллер представления на popovercontroller, но тогда он не был бы модальным, каким он должен быть.

- Обновление -

Это было весело, пока это длилось, но это больше не работает в iOS 4.2.
Я перешел на использование UIAlertView вместо UIActionSheet.
У меня больше нет крутой красной кнопки, но она выполняет свою работу.

1
ответ дан 29 November 2019 в 01:40
поделиться

Это является частью дизайна пользовательского интерфейса и руководящих принципов . В разделе «Лист действий» они говорят:

Не включайте кнопку «Отмена», потому что люди могут нажимать за пределами всплывающего окна, чтобы отклонить лист действий, не выбирая одну из других альтернатив.

Похоже, что SDK скрывает кнопку специально для вас . Я не уверен, что есть решение, но, возможно, вы могли бы добавить свою собственную кнопку и установить cancelButtonIndex в соответствие. Или вы можете переключиться на UIAlertView.

39
ответ дан Colin Gislason 29 November 2019 в 01:40
поделиться

Похоже, в iOS 4.2.1 вы можете вручную добавить свою собственную кнопку «Отмена», как обычную кнопку:

[actionSheet addButtonWithTitle:@"Cancel"];

И затем установить:

actionSheet.cancelButtonIndex = <your index>;

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

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

2
ответ дан Kristian Glass 29 November 2019 в 01:40
поделиться

У меня возникла та же проблема, когда я пытался показать ActionSheet в представлении, которое было в другом модальном представлении, например вид был невидим. Хотя View не был нулевым, он выглядит глубоко в фреймворке, но это означает, что когда он не показан.

Я решил проблему, установив другое свойство UIModalPresentationStyle modalPresentationStyle, чтобы вид стал видимым.

view.modalPresentationStyle = UIModalPresentationFormSheet;
1
ответ дан poupou 29 November 2019 в 01:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: