В UIActionSheet у меня есть кнопка uitableview и отмены. По умолчанию кнопка отмены отображается вверху. Я хочу, чтобы он отображался внизу после просмотра таблицы. Как мне это сделать?
Поместите кнопку «Отмена» в UIActionSheet внизу
Ответы (3)
это работа для меня:
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"SomeTitle" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil, nil];
[actionSheet addButtonWithTitle:@"Some Action"];
[actionSheet addButtonWithTitle:@"Cancel"];
actionSheet.cancelButtonIndex = actionSheet.numberOfButtons -1;
person
Alexander Merchi
schedule
29.06.2014
Вы правы. Если вы используете
addButtonWithTitle:
вместо того, чтобы заботиться обо всем этом с помощью инициализатора, вам нужно будет указать индекс кнопки отмены.
- person Kyle Clegg; 21.08.2014
Я попробовал это, и кнопка «Отмена» находится внизу:
menu = [[UIActionSheet alloc] initWithTitle:@"Actionsheet"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"destructive"
otherButtonTitles:@"other1", nil];
menu.actionSheetStyle = UIActionSheetStyleDefault;
[menu addButtonWithTitle:@"Cancel"];
По умолчанию кнопка «Отмена» скрыта, добавление кнопки «Отмена» покажет Это.
НО: если у вас есть дополнительные элементы графического интерфейса на вашем листе действий, вы должны
option1) поместите их, чтобы скрыть другие кнопки (чтобы было место для вашего элемента графического интерфейса). Это твик, но может работать в некоторых ситуациях ИЛИ
option2) вам нужно вручную добавить кнопку на лист действий
Встроенные кнопки Actionsheet не могут свободно выравниваться по нижнему краю, потому что цель этих встроенных элементов графического интерфейса отличается.
См. это: Добавление UIPickerView в UIActionSheet (кнопки внизу )а>
person
nzs
schedule
22.04.2013
это работает, потому что у вас есть пара других кнопок над кнопкой отмены. Но в моем случае у меня нет другой кнопки. это просто таблица и кнопка отмены
- person Arun; 22.04.2013
Наконец, я понимаю вашу настройку, поэтому я думаю, что единственный вариант для вас — добавить UIButton в свой ActionSheet.
- person nzs; 22.04.2013
Что вы можете сделать, чтобы убедиться (для меня это было проблемой), чтобы разместить вашу кнопку uibutton на холсте (кадре) uiactionsheet. Без этого нажатия uibutton не будут отправляться должным образом. Это может произойти, если рамка uiactionsheet не такая большая, как все элементы могут быть правильно размещены на ней.
- person nzs; 22.04.2013
Для пользовательского добавления UIBUtton см. мою ссылку SO в этом посте... и если это работает для вас, вы можете принять мой ответ;)
- person nzs; 22.04.2013
Пример в Swift:
func presentMyActionSheetIOS7() {
let actionSheet: UIActionSheet = UIActionSheet(title: "What do you want to do?", delegate: self, cancelButtonTitle: nil, destructiveButtonTitle: nil)
actionSheet.addButtonWithTitle("Change Transparency")
actionSheet.addButtonWithTitle("Hide Photo")
actionSheet.addButtonWithTitle("Cancel")
actionSheet.cancelButtonIndex = actionSheet.numberOfButtons - 1
actionSheet.showInView(self.view)
}
func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int) {
switch buttonIndex {
case 0:
println("Change Transparency")
case 1:
println("Hide Photo")
case 2:
println("Cancel")
default:
println("Default")
}
}
person
King-Wizard
schedule
12.03.2015