#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, так что я буду в безопасности 🙂