2013-09-30 22 views
32

iOS 7'de UILabel ve UITextView'da Dinamik Türü nasıl destekleyebilirim? IOS 7 için projelerimizden birini uyguluyor ve bu erişilebilirlik özelliğini desteklemek istiyorum. Apple'ın iOS Geliştirici sitesinde bu konuyla ilgili öğreticiyi nasıl bulamıyorum. Herhangi bir link veya örnek kod takdir edilecektir.iOS'ta Etiketlerde Dinamik Tür Nasıl Desteklenir 7

+0

Kontrolü ne iOS 7 Uygulamalarda Dinamik Tipi Destekleyecek bu öğretici [desteklemek için özellikle nasıl, daha fazla bilgi için this excellent post Bkz kullanabilirsiniz .] (http://mythoughtsandexperiments.blogspot.in/2013/12/how-to-support-dynamic-type-in-ios-7.html) –

cevap

57

Yeni UIFont yöntemlerini kullanırsanız, hemen hemen oradasınız demektir - yalnızca değişiklikleri dinlemek için gözlemciyi eklemeniz gerekir.

Belirli bir yazı tipi boyutu ayarlamak yerine, etiketlerinizi tasarlarken preferredFontForTextStyle: ve ilgili yöntemleri kullanmalısınız (Interface Builder kullanıyorsanız, doğrudan denetçide bir stil seçebilirsiniz). Örneğin:

self.label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];

Eğer UIContentSizeCategoryDidChangeNotification dinleyeceği Bunu yaptıktan sonra. Bu bildirimi aldığınızda, etiketlerinizi yeni seçilen boyutu desteklemek için düzenleyiniz (autolayout kullanıyorsanız, bu normal olarak görüntülemelerinize invalidateIntrinsicContentSize göndermek kadar basittir).

Resmi belgeler arıyorsanız, o zaman Text Programming Guide'a bir göz atın.

Swift 3 ve iOS 10. yılında
+0

Arayüzde seçilen stile erişmenin bir yolu yok mu Oluşturucu? Değilse, bu büyük bir gözetim gibi görünüyor. Şimdi onu 2 yerde ayarladım, yani kaçınılmaz olarak senkronizasyondan çıkacak. – MacsimusPrime

+0

'preferFontForTextStyle' bir sistem yazı tipini döndürür, ancak özel yazı tipleriyle bunu yapmanın bir yolu var mı? – kevin

1

Eğer

headline.font = UIFont.preferredFont(forTextStyle: UIFontTextStyleHeadline) 
headline.adjustsFontForContentSizeCategory = true 

öncesi iOS 10.