Ответы:
Привет, Намрата! Если вы спрашиваете об изменении текста и включенного / выключенного состояния UIButton, это можно легко сделать следующим образом;
[myButton setTitle:@"Normal State Title" forState:UIControlStateNormal]; // To set the title
[myButton setEnabled:NO]; // To toggle enabled / disabled
Если вы создали кнопки в Интерфейсном Разработчике и хотите получить к ним доступ в коде, вы можете воспользоваться тем фактом, что они передаются в качестве аргумента для IBAction
вызовов:
- (IBAction) triggerActionWithSender: (id) sender;
Его можно привязать к кнопке, и вы получите кнопку в sender
аргументе при запуске действия. Если этого недостаточно (потому что вам нужно получить доступ к кнопкам где-то еще, а не в действиях), объявите выход для кнопки:
@property(retain) IBOutlet UIButton *someButton;
Затем можно привязать кнопку в IB к контроллеру, код загрузки NIB установит значение свойства при загрузке интерфейса.
[myButton setTitle: @"myTitle" forState: UIControlStateNormal];
Используйте, UIControlStateNormal
чтобы установить заголовок.
Есть несколько состояний, которые предоставляют UIbuttons, вы можете посмотреть:
[myButton setTitle: @"myTitle" forState: UIControlStateApplication];
[myButton setTitle: @"myTitle" forState: UIControlStateHighlighted];
[myButton setTitle: @"myTitle" forState: UIControlStateReserved];
[myButton setTitle: @"myTitle" forState: UIControlStateSelected];
[myButton setTitle: @"myTitle" forState: UIControlStateDisabled];
Если кто-то, ищущий решение в Swift, попадет сюда, это будет:
myButton.isEnabled = false // disables
myButton.setTitle("myTitle", for: .normal) // sets text
Документация: isEnabled , setTitle .
Старый код:
myButton.enabled = false // disables
myButton.setTitle("myTitle", forState: UIControlState.Normal) // sets text
Чтобы изменить заголовок кнопки:
[mybtn setTitle:@"My Button" forState:UIControlStateNormal];
[mybtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
Для отключения:
[mybtn setEnabled:NO];
В Swift 3 вы можете просто изменить заголовок кнопки:
button.setTitle("Title", for: .normal)
и вы отключите кнопку:
button.isEnabled = false
.normal
то же самое, UIControlState.normal
потому что тип является предполагаемым.
SWIFT 4 с расширением
устанавливать:
// set button label for all states
extension UIButton {
public func setAllStatesTitle(_ newTitle: String){
self.setTitle(newTitle, for: .normal)
self.setTitle(newTitle, for: .selected)
self.setTitle(newTitle, for: .disabled)
}
}
и используйте:
yourBtn.setAllStatesTitle("btn title")
Если вы хотите изменить заголовок в ответ на нажатие, вы можете попробовать это внутри метода IBAction кнопки в делегате контроллера представления. Это включает и выключает голосовой чат. Настройка голосового чата здесь не рассматривается!
- (IBAction)startChat:(id)sender {
UIButton *chatButton = (UIButton*)sender;
if (!voiceChat.active) {
UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Voice Chat"
message:@"Voice Chat will become live. Please be careful with feedback if your friend is nearby."
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
[voiceChat start];
voiceChat.active = YES;
[chatButton setTitle:@"Stop Chat" forState:UIControlStateNormal];
}
else {
[voiceChat stop];
UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Voice Chat"
message:@"Voice Chat is closed"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
voiceChat.active = NO;
[chatButton setTitle:@"Chat" forState:UIControlStateNormal];
}
}
voiceChat, конечно, специфичен для голосового чата, но вы можете использовать свое локальное логическое свойство для управления переключателем.