Как расширить UIActionSheet, чтобы он соответствовал тексту на iPad?

#objective-c #ipad #uiactionsheet

#objective-c #iPad #uiactionsheet

Вопрос:

Я использую UIActionSheet приложение в ландшафтном режиме в iPad . Некоторые тексты моей кнопки не соответствуют ширине, и они обрезаны с конца. В iPhone это обработано, и кнопки моего листа действий помещаются в рамку, даже если они длинные. Я не понял, почему это отличается в iPad. У вас, ребята, есть какие-нибудь идеи о том, как я могу чего-то добиться, как adjustsFontSizeToFitWidth метод делает с UILabel s?

Вот как я создаю и отображаю свой лист действий:

 UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];

for (NSString *bank in self.getBanksResponse.banks) {
    [actionSheet addButtonWithTitle:bank];
}

[actionSheet showFromRect:self.bankButton.frame inView:self.view animated:YES];
[actionSheet release];
  

Вот скриншот моей таблицы действий:

введите описание изображения здесь

Заранее спасибо…

Ответ №1:

Ваш код кажется прекрасным — у меня есть для вас две идеи:

1) В методе showFromRect, вызываемом из вашего actionsheet, отредактируйте переданный в rect текст, чтобы он был шире, и посмотрите, как это происходит.

2) Если вышеописанное не сработало, то вы можете захотеть создать его подкласс для размещения вашего текста … или посмотреть на UIPopoverController, который мог бы хранить ваши данные в табличном виде.

Комментарии:

1. Я попытался придать листу более широкую рамку, чем рамка моей кнопки, но на этот раз лист действий был сдвинут горизонтально, я имею в виду, что его ширина не изменилась. Если ни у кого нет других идей, я, пожалуй, последую вашему второму совету. Спасибо, Криптон!

2. Обязательно придерживайтесь второй части моего пункта 2) и помните, что UIPopoverController доступен только для iPad. UIActionSheets, как правило, доступны только для iPhone, поэтому обязательно выполните проверку устройства, является ли ваше приложение универсальным.

3. Хорошо, это было бы лучше, я согласен. Приложение предназначено только для iPad, так что я буду в безопасности 🙂