Picproje Elektronik Sitesi

BİLGİSAYAR => Gömülü İşletim Sistemleri => IOS => Konuyu başlatan: z - 16 Temmuz 2013, 05:31:07

Başlık: Buton uzerindeki texti runtime asamasinda degistirmek
Gönderen: z - 16 Temmuz 2013, 05:31:07
Butona basildiginda sozkonusu butonun textini degistirebiliyorum.

Fakat bir butona basildiginda diger butonlarin uzerindeki texti degistirmek istiyorum ve bunu beceremedim.

Ornek kod verebilirmisiniz?

Başlık: Ynt: Buton uzerindeki texti runtime asamasinda degistirmek
Gönderen: z - 17 Temmuz 2013, 00:57:29
Mevcut uygulamamda Uzerinde Deg yazan bir buton var. Bu butona basinca Deg yazisi Rad'a donusuyor.
Bir kez daha bazarsam bu kez Rad yazisi Deg'e donusuyor.

Buna iliskin  kodum asagida

- (IBAction)ButonDeg:(UIButton *)sender {
    DegRadToggle=(DegRadToggle+1)&1;
    if(DegRadToggle==0) [sender setTitle:@"Deg" forState:UIControlStateNormal];
    else [sender setTitle:@"Rad" forState:UIControlStateNormal];
}


Burada hic sorun yok. Sender olarak gelen parametre zaten basilan butana ait.

[sender setTitle:@"Deg" forState:UIControlStateNormal]; satirinda sender'e ait Title kolayca degistirilebilmekte.

Asil yapmak istedigime gelirsek

Uzerinde Inv yazan butona basinca diger tum butonlarin text degerleri degisecek. Mesela Sin butonu Asin, cos butonu Acos seklinde text deger degistirecek.

Mevcut yazim seklinde butonlarin adi yok. (Sifirdan IOS ogrenmiyorum, orneklere bakarak yaziyorum)

Buton adi olmadigi icin [sender setTitle:@"Deg" forState:UIControlStateNormal]; satirindaki sender parametresine nasil bir deger verecegimi bilemiyorum.

Umarim sorunum daha anlasilir olmustur.
Başlık: Ynt: Buton uzerindeki texti runtime asamasinda degistirmek
Gönderen: teknikelektronikci - 17 Temmuz 2013, 10:11:28
methodun üzerine gelip ctrl basinca reference aciliyor buna göz gezdirdinizmi? bildigim kadariyla burdaki sender sadece settitle methoduna ait parametre sender degil de baska bir sey olur :/
Başlık: Ynt: Buton uzerindeki texti runtime asamasinda degistirmek
Gönderen: z - 17 Temmuz 2013, 11:44:41
Benim gördüğüm kadarıyla sorun şöyle;

Tasarım aşamasında Butona isim falan vermiyoruz. Bunun yerine buton clicklenince işleyeceği fonksiyonun adı isteniyor bizden.
Kodumuzu da bu fonksiyona yazıyoruz.

Mesela run time aşamasında bu butona basıldığında kendi text değerini değiştirmek istersek click rutini içinde sender'in textine şunu yaz diyoruz. Sender zaten bu butonla ilgili parametre içeriyor.

Fakat bir başka butonun textini başka bir butonun rutininden değiştirmek için bir isme ishityacım var. Butona da isim vermemiştik. Nasıl olacak? Bana bu kısım sorun oldu.

Label'a yazı yazmak sorun değil. Aynı mantıkla buton davranış şeklini action haricinde bir de  outlet (yanlış yazmış olabilirim) tanımlarsam tanımda sorun olmuyor fakat bu fonskiyon içinde text değerini değiştirdiğim komuta sürekli hata veriyor ve derleme yapılmıyor.

Dili, ortamı sıfırdan öğrenecek zamanım yok sorun da burada zaten.
Başlık: Ynt: Buton uzerindeki texti runtime asamasinda degistirmek
Gönderen: teknikelektronikci - 17 Temmuz 2013, 12:56:56
hmm siz buton 1 click funktionu icinde, baska bir butonun ismini degistirmek istiyorsunuz dogrumudur?

bu sizmisiniz yoksa ?
http://stackoverflow.com/questions/11141697/xcode-how-to-change-the-text-of-a-button-when-another-button-is-pressed (http://stackoverflow.com/questions/11141697/xcode-how-to-change-the-text-of-a-button-when-another-button-is-pressed)

mesaj birleştirme:: 17 Temmuz 2013, 12:58:23

hocam siz bu projenizi önce cocoa icin yazsaniz ? orda alismak daha kolay ios programlama kadar zor gelmedi bana :/
Başlık: Ynt: Buton uzerindeki texti runtime asamasinda degistirmek
Gönderen: z - 17 Temmuz 2013, 13:22:54
Stackoverflowda sorulan soru benim sorunum aynısı (ben sormadım). Fakat verilen cevap, butonun kod ile bağlantısını içermediği için işime yaramadı.

O koda uygun connection yapmaya kalktığımda derlemede hata alıyorum.

Aslında sorumun cevabı Xcode sistemini anlamak açısından çok önemli.
Başlık: Ynt: Buton uzerindeki texti runtime asamasinda degistirmek
Gönderen: z - 19 Temmuz 2013, 21:37:50
Nihayet cozumu buldum. Daha guzel bir yontem ogreninceye kadar bu isimi gorecek.

Kullandigimiz butonlarin herbirinin tag alanina tasarim asamasinda deger atiyoruz. Default degeri hepsinin 0.
Iki butondan olusan ornegimde 1. butonun tag degerini 1, 2. butonun tag degerini de 2 yaptim.

Asagidaki kod orneginde 1. butona bastigimizda her iki butonun da ismi degisiyor. Istedigim de tam olarak buydu.


- (IBAction)Buton1:(id)sender {

    UIButton *btn1 = (UIButton*)[self.view viewWithTag:1];
    [btn1 setTitle:@"A1" forState:UIControlStateNormal];

    UIButton *btn2 = (UIButton*)[self.view viewWithTag:2];
    [btn2 setTitle:@"A2" forState:UIControlStateNormal];

}


yada


- (IBAction)Buton1:(id)sender {
        [(UIButton*)[self.view viewWithTag:1] setTitle:@"Asin" forState:UIControlStateNormal];
        [(UIButton*)[self.view viewWithTag:2] setTitle:@"Acos" forState:UIControlStateNormal];
}
Başlık: Ynt: Buton uzerindeki texti runtime asamasinda degistirmek
Gönderen: Klein - 20 Temmuz 2013, 12:09:19
ios kodlama hakkında hiç fikrim yok.
Ama androidde "FindByID" metodu ile komponenti bulup ona göre işlem yapıyoruz. Delphide de "findcomponent" metodu vardı hatırlarsınız. Muhtemelen  böyle bir metod vardır.