Yanıtlar:
Hey Namratha, Bir UIB düğmesinin metnini ve etkin / devre dışı durumunu değiştirmek hakkında soru soruyorsanız, aşağıdaki gibi oldukça kolay bir şekilde yapılabilir;
[myButton setTitle:@"Normal State Title" forState:UIControlStateNormal]; // To set the title
[myButton setEnabled:NO]; // To toggle enabled / disabled
Arabirim Oluşturucu'da düğmeleri oluşturduysanız ve bunlara kodda erişmek istiyorsanız, IBAction
çağrılara bir argüman olarak aktarılmalarından yararlanabilirsiniz :
- (IBAction) triggerActionWithSender: (id) sender;
Bu düğmeye bağlanabilir sender
ve eylem tetiklendiğinde düğmeyi argümanda alırsınız . Bu yeterli değilse (çünkü düğmelere eylemler dışında bir yerden erişmeniz gerektiğinden), düğme için bir çıkış belirtin:
@property(retain) IBOutlet UIButton *someButton;
Daha sonra IB'deki düğmeyi kontrolöre bağlamak mümkündür, NIB yükleme kodu arabirimi yüklerken özellik değerini ayarlayacaktır.
[myButton setTitle: @"myTitle" forState: UIControlStateNormal];
UIControlStateNormal
Başlığınızı ayarlamak için kullanın .
UI butonlarının sağladığı birkaç durum vardır, bir göz atabilirsiniz:
[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'de çözüm arayan biri buraya inmiş olsaydı:
myButton.isEnabled = false // disables
myButton.setTitle("myTitle", for: .normal) // sets text
Dokümantasyon: isEnabled , setTitle .
Eski kod:
myButton.enabled = false // disables
myButton.setTitle("myTitle", forState: UIControlState.Normal) // sets text
Düğme başlığını değiştirmek için:
[mybtn setTitle:@"My Button" forState:UIControlStateNormal];
[mybtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
Devre Dışı Bırakmak için:
[mybtn setEnabled:NO];
Swift 3'te, bir düğmenin başlığını şu şekilde değiştirebilirsiniz:
button.setTitle("Title", for: .normal)
ve düğmeyi şu şekilde devre dışı bırakırsınız:
button.isEnabled = false
.normal
UIControlState.normal
tür çıkarıldığı için aynıdır .
Uzantılı SWIFT 4
Ayarlamak:
// 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)
}
}
ve kullan:
yourBtn.setAllStatesTitle("btn title")
Başlığı dokunulmaya bir yanıt olarak değiştirmek istiyorsanız, bunu görünüm denetleyicisi temsilcinizdeki düğmenin IBAction yöntemi içinde deneyebilirsiniz. Bu, sesli sohbeti açar ve kapatır. Sesli sohbeti kurma burada ele alınmamaktadır!
- (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 elbette sesli sohbete özeldir, ancak anahtarı kontrol etmek için ow yerel boole özelliğinizi kullanabilirsiniz.