Etiketler ‘ autosizing

iPhone Autosizing

Ekim 22, 10 Yazan: akın

Dün yazdığım Rotation konulu yazıda ekranda kullandığınız controllerin “evrilip çevrilme” esnasında kendiliğinden yer ve boyut değiştirdiğinden bahsetmiştim. Bunun anlamı aslında herhangi bir kod yazmanızın gerekmediği idi. Tek yapmanız gereken Size Inspector’da Autosizing bölümünde ilgili controlünüzün ayarlarnı yapmaktı.

Bugün biraz daha detaya inmek istiyorum. Ekrandaki kontroller, telefon yan yatırıldığında veya dikleştirildiğinde, her zaman muntazam bir şekilde yeni ekrana yerleşmeyebiliyorlar. Ekranınızda çok fazla control kullanmışsanız (button,textbox..vs) telefonun duruşu değiştiğinde birbirlerinin üstlerine girebiliyorlar. Bu sorunu ortadan kaldırmak için biraz elinizi kirletip kod yazmanız gerekiyor.

Rotation anında iPhone arka planda (void)willAnimateRotationToInterfaceOrientation methodunu çağırmaktadır. Bu methodu override edip kendi kodunuzu çalıştırabilirsiniz. Kontrolleri yeni ekranda yerleştirmek için Apple’ın sağladığı Core Graphics classını kullanabilirsiniz.

(void)willAnimateRotationToInterfaceOrientation methoduna aşağıdaki kodu eklerseniz ekranınızda butonunuz istediğiniz noktaya yerleşecektir.

if(intOrientation == UIInterfaceOrientationPortrait || intOrientation == UIInterfaceOrientationPortraitUpsideDown)

{

button1.frame = CGRectMake(20,20,125,125);

}

else

{

button1.frame = CGRectMake(150,20,125,125);

}

Ekrandaki controllerin yerini değiştirmek için frame property’sini kullanmamız gerekiyor. intOrientation değişkeni, methodun aldığı bir parametredir ve telefonun yeni pozisyonunu size bildirmektedir.

http://fizy.com/#s/1m7bhj

[del.icio.us] [Facebook] [Fark] [Faves] [Furl] [Google] [MySpace] [MyWeb] [Newsvine] [Reddit] [Slashdot] [StumbleUpon] [Windows Live] [Yahoo!] [Email] 

iPhone AutoRotation – AutoSizing

Ekim 21, 10 Yazan: akın

Eski verilerimi kaybetmenin dayanılmaz hafifliğiyle ilk teknik yazımı yazmaya karar verdim.p Aslında tam anlamıyla teknik bir yazı sayılmaz. İçinde bolca kod olmayacak sadece iPhone’larda “rotation” dediğimiz yani telefonu yana yatırma, evirme çevirme hareketlerinin çalışma mantıklarını açıklayacağım.

Böyle bir yazı yazmamın nedeni biraz önce msn’den çok pis laf yemem. Öyle böyle değil:) En basiti şuydu “bir aydır uğraşıyorsun nerde uygulama?” ve daha neler neler.:) (tam bu sırada düzeltme geldi, bir ay değilmiş 3 aydır uğraşıyormuşum!) Hatta aynen şöyle geldi: “1 aymı dedim, 3 ay olacaktı o”.. neyse..

Şu anda bu yazıyı okuyup da iPhone’u eline almamış bir ziyaretçi yoktur heralde? Yoktur tabii. iPhone’lardaki en güzel ve havalı özelliklerden biri telefonu yatırdığınızda veya ters çevirdiğinizde, kısaca evirip çevirdiğinizde telefonun ekranın farklı tepkiler vermesi. Örnek vermek gerekirse forex yazılımlarında borsa bilgilerini görmek için telefonu yana yatırmanız gerekiyor fln..

iPhone ekranın iki modu vardır. Telefonun dikey duruşuna portrait yatay duruşuna ise landscape deniyor. Kullanıcı telefonun duruşunu değiştirdiğinde active viewcontroller yazılımınıza bu harekete izin verip vermediğinizi soracaktır. Eğer sizden YES cevabını alırsa, ekran hemen harekete uygun olarak yatay veya dikey olacaktır. Bu noktada Autosizing devreye giriyor ve telefonun yatay veya dikey olmasına göre ekran içindeki controllerinizin boyutlarını otomatik olarak değiştiriyor. Herşey ne kadar da kendi kendine oluyor değil mi? iPhone’da yazılım geliştirmenin en güzel yanı da bu zaten, ayrıntı bilmenizi istiyor ama ayrıntıları uygulamakla uğraşmanızı istemiyor.

Sanırım bu sorma işleminde telefonun duruşunun değiştiğini ve kendinize özel kodları yazmaya başlayabileceğinizi belirtmeme gerek yok. Mesela ekranın değişmesi için yapmanız gereken “comment” lenmiş kodları çalışır hale getirmeniz gerekir. Yani (BOOL)shouldAutorotateToInterfaceOrientation methodunu çalışır hale getirmeniz yetecektir.

Bu method aynı zamanda bir parametre almaktadır. interfaceOrientation parametresi telefonun hangi yöne dönderildiğini size verecektir. Bu bilgi ile daha spesifik özellikler ekleyebilirsiniz.

Son olarak, size gelen parametrenin hangi bilgileri içerebileceğiniz belirteceğim. Parametre telefonun dönderilişine göre 4 değer alacaktır.

- UIInterfaceOrientationPortrait // Telefonun normal duruma gelmesi

- UIInterfaceOrientationPortraitUpsideDown // Telefonun ters çevrilme durumu. Apple bu hareketi pek önermiyor

- UIInterfaceOrientationPortraitLandscapeLeft // Sola yatırılması

- UIInterfaceOrientationPortraitLandscapeRight // Sağa yatırılması

Unutmadan şunu söylemek istiyorum, Landscape modunda, telefonun statusbar ı ortadan kaybolacaktır. Yani pil durumu, saat bilgisi gibi bilgiler ekrandan gidecektir. Kullanıcının bu bilgilerden mahrum kalacağını hep dikkate alın!

Happy Development..

http://fizy.com/#s/1d3b7w

[del.icio.us] [Facebook] [Fark] [Faves] [Furl] [Google] [MySpace] [MyWeb] [Newsvine] [Reddit] [Slashdot] [StumbleUpon] [Windows Live] [Yahoo!] [Email]