8
Eyl

Bugünkü eğlencemiz bir öncekine çok benziyor. Ancak bu sefer label ya da button gibi sık kullanılan öğelerle değil hep gözümüzün önünde olsa da pek dikkatimizi çekmeyen navigasyon çubuğuyla (UINavigationBar) oynayacağız.

UINavigationItem’ın ayarları native uygulama görünümü istemediğimiz bir çok uygulama için yetersiz kalıyor. Bu noktada NavigationItem’ın title property’sini bir kenara bırakıp ilgimizi titleView property’si üzerine yoğunlaştırıyoruz. titleView property’sine değer olarak herhangi bir UIView nesnesi verebiliyorsunuz, bu örnekte UILabel kullanacağım ancak biraz egzersizle farklı fontlar kullanarak yazı yazabilirsiniz ;)

Değişik renkli başlıkları farklı view controller’larda kullanabileceğimizi düşünerek verdiğimiz metni bir label’ın içine yazıp bize o label’ı döndüren bir fonksiyon yazarak başlıyoruz.

+ (UILabel *) labelForNavigationItem:(NSString*) text
{
UILabel *titleView = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 120, 30)] autorelease];
[titleView setFont:[UIFont boldSystemFontOfSize:16.0]];
titleView.backgroundColor = [UIColor clearColor];
titleView.textAlignment = UITextAlignmentCenter;
titleView.textColor  = [UIColor colorWithRed:.80784314 green:.77647079 blue:.50980392 alpha:1.0];
titleView.textColor = [UIColor whiteColor];
titleView.text = text;

return titleView;
}

İlgili view controller’ın viewDidLoad methodu içinde navigationItem’ın titleView property’sine değer atayarak işimizi bitiriyoruz.

self.navigationItem.titleView = labelForNavigationItem:@"Menu";

labelForNavigationItem fonksiyonunu zenginleştirmek ve yazınıza görsellik katmak size kalmış.

UILabel kullandığım bir örnek:

Custom NavigationItem title

Başka bir uygulamada UILabel yerine UIImageView kullandım, demem o ki diğer UIView nesnelerine ihtiyacınız olduğunda hiç çekinmeyin bu kodlarda birkaç değişiklik yaparak sorunsuzca kullanılabiliyor.

Bu yazının puanları da Sergio Morales‘e gidiyor.

4
Eyl

iOS platformu için uygulama geliştiriyorsunuz diyelim, tasarımınız gereği sistemdeki fontlardan başka bir font kullanmanız gerekiyor ya da sadece değişiklik olsun diye bunu yapmak istiyorsunuz belki de. Benim gibi platformun teknik detaylarını bilmeyen bir tasarımcı başınıza iş açmış bile olabilir :)

Öncelikle bu çözümün sadece iOS SDK 4 ve üzeri sürümlerde çalışacağını belirtelim. Eğer bu bir sorun değilse aşağıdaki adımları takip ederek sonuca ulaşabilirsiniz.

  1. Kullanmak istediğiniz font dosyasını (TTF/OTF) XCode’da projenize ekleyin.
  2. Projenizin info.plist (projeadı-info.plist de olabilir) dosyasına ”Fonts provided by application” isimli bir anahtar ekleyin.
    • Eğer birden fazla font kullanacaksanız bu anahtarın tipini Array yapmayı unutmayın.
    • Anahtarın değeri olarak eklediğiniz font dosyasının adını (uzantısıyla birlikte) yazın ve dosyayı kaydedin.
  3. Kodun içinde [UIFont fontWithName:@"YeniFontunAdı" size:16] şeklinde kullanabilirsiniz.
  4. Buradaki “YeniFontunAdı” eklediğiniz dosyanın adı değil bilgisayarınızdaki görünen adıdır. Örnek vermek gerekirse ”bauhaus_med.ttf” dosyasını kullanmak istediğinizde ”YeniFontunAdı” yerine ”Bauhaus Medium” yazmalısınız. Dikkat edilecek bir husus da bazı fontların birden fazla ismi olmasıdır. Hata yapmamak için fontu bilgisayarınızda açıp kontrol edin.

UILabel, UITextView ve UIButton gibi setFont metodu olan her türden nesne için kullanabilirsiniz.
UIButton ile yapılmışı:

Custom Font in UIButton

İlk üç madde için puanlar BeefyApps‘e giderken son madde için birkaç puan da Shang Liang‘a gidiyor.