В 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"];
По подразбиране бутонът Отказ е скрит, добавянето на Отказ ще покаже то.
НО: ако имате допълнителни GUI елементи във вашия лист с действия, трябва да го направите
option1) позиционирайте тези, за да скриете други бутони (за да имате място за вашия GUI елемент). Това е ощипване, но може да работи в някои ситуации ИЛИ
опция 2) трябва ръчно да добавите своя бутон към листа с действия
Вградените бутони на Actionsheet не могат да се подравняват свободно към дъното, защото целта е различна за тези вградени GUI елементи.
Вижте това: Добавяне на 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