SORU
2 EKİM 2014, PERŞEMBE


XCode6 Boyutu özel Yazı tipi Boyutlandırma Sınıfları Düzgün w/ çalışmıyor Özel yazı Tipleri

Böyle büyük mükafat 6 UİLabel, UİTextField ve UİButton yazı tiplerini ve yazı tipi boyutlarını otomatik olarak doğru film şeridi içinde geçerli aygıt yapılandırma boyutu sınıfına göre ayarlanabilir, yeni bir özellik vardır. Örneğin, bir dizi UİLabel için kullanmak yazı tipi boyutu 12 "herhangi bir genişlik, kompakt boy" (gibi iPhone yatay) yapılandırmaları ve boyutu 18 "düzenli genişliği, normal boy" yapılandırmaları (gibi iPads). Daha fazla bilgi için:

https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/ChangingtheFontforaSizeClass.html#//apple_ref/doc/uid/TP40014436-CH12-SW1

Bu program aracılığıyla farklı yazı tipleri ayarlamak için gereksiz UI özellikleri aygıt yapılandırma dayalı bir hale gelebilir, çünkü teoride gerçekten harika bir özellik. Şimdi, yazı tiplerini aygıt Türüne göre ayarlayan bazı koşullu kod var, ama açıkçası bu yazı programlı olarak her yerde app boyunca ayarlamak zorunda kalıyoruz. Başlangıçta bu özellik hakkında çok heyecanlanmıştım, ama benim için gerçek kullanımı çok ciddi bir sorun (belki de bir hata) olduğunu buldum. SDK 8 karşı bina ve bu uyumluluk ile ilgisi iOS eski sürümleri ile yani iOS 8 en az bir dağıtım hedef belirliyorum unutmayın.

Sorun şu: Eğer farklı büyüklük sınıfları için farklı yazı tipi boyutlarını, ve "Sistem" font iOS, beklendiği gibi her şey çalışıyor ve yazı tipi boyutunu değiştirmek boyutu sınıfına göre verilir. kullanımı başım belaya girerse Eğer kullandığım bir özel yazı tipi tarafından sağlanan başvurum (evet, ben bunu kurmak için ne kadar doğru bir uygulama paket olarak çalışıyor Program aracılığıyla) ve set özel yazı tipi için bir etiket bir Güncellemelerinden 6 film şeridi, o da çalışıyor beklendiği gibi. Ama farklı büyüklük sınıfları için özel yazı tipi farklı boyutlarda kullanmaya çalıştığımda film, aniden çalışmıyor. Yapılandırmada tek fark benim seçtiğim yazı tipi (Sistem vs özel bir yazı tipi). Bunun yerine, tüm yazı tiplerini göstermek cihazı ve simülatörü olarak varsayılan sistem yazı tipini varsayılan boyutu, boyutu ne olursa olsun sınıf (doğrulanmadı) hata ayıklayıcı, bunun yerine sistem yazı tipi için gerçek bir belirtilen film şeridi). Yani temelde boyutu sınıf özelliği özel yazı tipleri için kırık gibi görünüyor. Ayrıca, ilginç bir şekilde, özel yazı tipleri, aslında görüntü ve boyutunu ayarlayın gerektiği gibi böyle büyük mükafat 6 "Önizleme" bölmesinde için görünümü denetleyicisi: sadece üzerinde çalışırken, gerçek iOS sistem durur çalışma (kendimi düşünüyorum ben yapılandırılması doğru).

Ve onlar için çalışmak görünmüyor, ama her zaman "Sistem" yerine. kullanırsam çalışır birden fazla farklı özel yazı tipleri denedim

Her neyse, kimseye böyle büyük mükafat 6'da bu sorun gören var mı? Bu iOS 8, böyle büyük mükafat, ya da yanlış yaptığım bir şey bir hata olup olmadığı konusunda herhangi bir fikir? Bulduğum tek çözüm dediğim gibi, işe yarıyor çünkü iOS yaklaşık 3 sürümleri için hiçbir şey olmamış gibi set yazı tipleri programlı olarak devam etmektir. Eğer özel yazı tipleri ile çalışmak için alabilirim eğer bu özelliği kullanmak mümkün olmak isterdim. Sistem yazı tipini kullanarak tasarım için kabul edilebilir değildir.

EK BİLGİ: Apple bir yinelenen olarak hata bu konuyu açtım rapor kapalı. Bu yüzden muhtemelen sorunun farkındayız ve bir düzeltme üzerinde çalışıyoruz.

CEVAP
22 Ocak 2015, PERŞEMBE


Hızlı düzeltme:

1) boyutu sınıflar için Sistem yazı tiplerini Ayarlayın

Label attributes inspector

2) Alt UİLabel ve geçersiz "" yöntemi gibi: . layoutSubviews

- (void)layoutSubviews
{
  [super layoutSubviews];
  // Implement font logic depending on screen size
  self.font = [UIFont fontWithName:@"CustomFont" size:self.font.pointSize];
}

Bu arada, ikonik yazı tipleri için çok uygun bir tekniktir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Art Food Kitty - Kelly Eddington

    Art Food Kit

    7 Kasım 2006
  • Kayla Caton - Peet

    Kayla Caton

    23 HAZİRAN 2012
  • RayperEnglishKnight

    RayperEnglis

    24 Kasım 2008