2014-10-09 16 views
11

Bu nedenle, renkli gezinti çubukları ve bu çubuklardaki başlığın yazı tipi ve UIBarButtonItems öğesinin yazı tipi beyaz ve belirli bir yazı tipinde olması gereken bu uygulamayı yazıyorum. Ben .. AppDelegate içindeXcode 6.1 titleTextAttributes

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : UIFont(name: "SourceSansPro-Regular", size: 22), NSForegroundColorAttributeName : UIColor.whiteColor()] 
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName : UIFont(name: "SourceSansPro-Regular", size: 22), NSForegroundColorAttributeName : UIColor.whiteColor()], forState: .Normal) 

bunu başarmak için bu 2 çizgi kullanılan Fakat Xcode 6.1 ile ben bu satırların her birinde bir hata alıyorum ve gerçekten, bilmiyorum

.. araçlarında enter image description here

Metin öznitelikleri [NSObject: AnyObject] ?. Tam olarak yazdığım şey buydu .. Bunun için bir çözümü olan var mı?

cevap

37

Sorun şu ki, nil'u döndürebilmesi için UIFont'un başlatıcısını 6.1'de değiştirdiler. Bu doğru davranıştır, çünkü yanlış yazı tipi adı girerseniz, UIFont'u başlatmanın bir yolu yoktur. Bu durumda, sözlüğünüz, [NSObject: AnyObject] ile aynı olmayan [NSObject: AnyObject?] olur. Önce yazı tiplerini başlatabilir ve daha sonra if let sözdizimini kullanabilirsiniz. Burada emin yazı nesnesi olacak nil örtük Çizelgesi isteğe bağlı sözdizimini kullanabilirsiniz edilemez ise bu

let font = UIFont(name: "SourceSansPro-Regular", size: 22) 
if let font = font { 
    UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : font, NSForegroundColorAttributeName : UIColor.whiteColor()] 
} 

yapmak Veya nasıl olduğunu. Bu durumda çalışma zamanı çökme riskini alıyorsunuz. İşte nasıl yapılacağı.

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : UIFont(name: "SourceSansPro-Regular", size: 22)!, NSForegroundColorAttributeName : UIColor.whiteColor()] 
+0

Evet, işte bu! Çok teşekkür ederim. Sanırım bir başlatıcı nil'i iade edebilir ama mantıklıdır .. :) – Ben

+0

Teşekkür ederim! –

İlgili konular