Xcode 6 yeni özelliği vardır yazı ve yazı tipi boyutları içinde UILabel
, UITextField
ve UIButton
sağ Film şeridinde, mevcut cihaz yapılandırmanın boyutu sınıfına göre otomatik olarak ayarlanabilir. Örneğin, UILabel
"herhangi bir genişlik, kompakt yükseklik" (yatay iPhone'larda olduğu gibi) yapılandırmalarında 12 yazı tipi boyutunu ve "normal genişlik, normal yükseklik" yapılandırmalarında ( iPad'ler gibi ) 18 boyutunu kullanacak şekilde ayarlayabilirsiniz . Daha fazla bilgiye buradan ulaşabilirsiniz:
developer.apple.com/size_class
Bu, teoride harika bir özelliktir çünkü cihaz yapılandırmasına bağlı olarak UI özelliklerinde farklı yazı tiplerini programlı olarak ayarlamayı gereksiz hale getirebilir. Şu anda, yazı tiplerini aygıt türüne göre ayarlayan bazı koşullu kodum var, ancak açıkçası, bu, yazı tiplerini uygulamanın her yerinde programlı olarak ayarlamam gerektiği anlamına geliyor. Bu yüzden başlangıçta bu özellik beni çok heyecanlandırdı, ancak benim için ciddi bir gerçek kullanım sorunu olduğunu keşfettim (belki bir hata). Ben karşı inşa ettiğimi Not SDK 8 ve minimum dağıtım hedefi koyarak iOS 8 bu iOS eski sürümleri ile uyumluluk ilgisi yoktur, bu yüzden.
Sorun şudur: Farklı boyut sınıfları için farklı yazı tipi boyutları ayarlar ve iOS tarafından sağlanan "Sistem" yazı tipini kullanırsam , her şey beklendiği gibi çalışır ve yazı tipi boyutları boyut sınıfına göre değişir. Uygulamam tarafından sağlanan özel bir yazı tipi kullanırsam (evet, programlı olarak çalıştığı için uygulama paketimde doğru şekilde kurdum) ve özel yazı tipini bir XCode 6 film şeridinde beklendiği gibi çalışan bir etikete ayarlarsam . Ancak film şeridinde farklı boyut sınıfları için farklı boyutlarda özel yazı tipi kullanmaya çalıştığımda, aniden çalışmıyor. Yapılandırmadaki tek fark, seçtiğim yazı tipidir (Sistem yazı tipine karşı özel bir yazı tipi). Bunun yerine, tüm yazı tipleriCihaz ve simülatör olarak varsayılan sistem yazı tipi de varsayılan boyutu ne olursa olsun, boyut sınıfına ait (ve bu film şeridi belirtilen gerçek bir sistem yazı ikame olduğu hata ayıklayıcı vasıtasıyla belirlenmiş). Yani temel olarak, boyut sınıfı özelliği özel yazı tipleri için bozuk görünüyor. Ayrıca, ilginç bir şekilde, özel yazı tipleri, görünüm denetleyicisi için XCode 6 "Önizleme" bölmesinde boyutu düzgün bir şekilde görüntüler ve ayarlar: yalnızca gerçek iOS sisteminde çalışırken çalışmayı durdurur (bu da beni doğru şekilde yapılandırdığımı düşündürür) .
Birden fazla farklı özel yazı tipi denedim ve bunların hiçbirinde işe yaramıyor gibi görünüyor, ancak bunun yerine "Sistem" kullanırsam her zaman işe yarıyor.
Her neyse, Xcode 6'da bu sorunu gören var mı?
Bunun iOS 8, Xcode veya başka bir şeyde bir hata olup olmadığına dair herhangi bir fikir
Yanlış mı yapıyorum
Bulduğum tek geçici çözüm, dediğim gibi, yazı tiplerini programlı olarak iOS'un yaklaşık üç sürümünde olduğu gibi ayarlamaya devam etmektir, çünkü bu işe yarıyor.
Ancak, özel yazı tipleriyle çalışmasını sağlayabilirsem bu özelliği kullanabilmeyi çok isterim. Sistem yazı tipini kullanmak tasarımımız için kabul edilemez.
EK BİLGİ: Xcode 8.0'dan itibaren, hata düzeltildi.