Jawaban:
Hai Namratha, Jika Anda bertanya tentang mengubah teks dan status aktif / nonaktif dari UIButton, hal itu dapat dilakukan dengan mudah seperti berikut;
[myButton setTitle:@"Normal State Title" forState:UIControlStateNormal]; // To set the title
[myButton setEnabled:NO]; // To toggle enabled / disabled
Jika Anda telah membuat tombol di Interface Builder dan ingin mengaksesnya dalam kode, Anda dapat memanfaatkan fakta bahwa tombol tersebut diteruskan sebagai argumen ke IBAction
panggilan:
- (IBAction) triggerActionWithSender: (id) sender;
Ini bisa terikat ke tombol dan Anda akan mendapatkan tombol dalam sender
argumen saat tindakan dipicu. Jika itu tidak cukup (karena Anda perlu mengakses tombol di tempat lain selain di tindakan), nyatakan outlet untuk tombol:
@property(retain) IBOutlet UIButton *someButton;
Kemudian dimungkinkan untuk mengikat tombol di IB ke pengontrol, kode pemuatan NIB akan mengatur nilai properti saat memuat antarmuka.
[myButton setTitle: @"myTitle" forState: UIControlStateNormal];
Gunakan UIControlStateNormal
untuk menyetel judul Anda.
Ada beberapa status yang disediakan UIbuttons, Anda dapat melihat-lihat:
[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];
Jika seseorang, yang mencari solusi di Swift, mendarat di sini, itu adalah:
myButton.isEnabled = false // disables
myButton.setTitle("myTitle", for: .normal) // sets text
Dokumentasi: isEnabled , setTitle .
Kode lama:
myButton.enabled = false // disables
myButton.setTitle("myTitle", forState: UIControlState.Normal) // sets text
Untuk Mengubah Judul Tombol:
[mybtn setTitle:@"My Button" forState:UIControlStateNormal];
[mybtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
Untuk Nonaktifkan:
[mybtn setEnabled:NO];
Di Swift 3, Anda cukup mengubah judul tombol dengan:
button.setTitle("Title", for: .normal)
dan Anda menonaktifkan tombol dengan:
button.isEnabled = false
.normal
sama seperti UIControlState.normal
karena jenisnya disimpulkan.
SWIFT 4 dengan ekstensi
set:
// 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)
}
}
dan gunakan:
yourBtn.setAllStatesTitle("btn title")
Jika Anda ingin mengubah judul sebagai respons untuk diketuk, Anda dapat mencoba ini di dalam metode IBAction tombol di delegasi pengontrol tampilan Anda. Ini mengaktifkan dan menonaktifkan obrolan suara. Menyiapkan obrolan suara tidak tercakup di sini!
- (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 tentu saja dikhususkan untuk obrolan suara, tetapi Anda dapat menggunakan properti boolean lokal untuk mengontrol sakelar.