Güncelleme 3: Dağıtım hedefiniz 7.1'e ayarlanmışsa,
bu uyarı numberOfLines
1 dışında herhangi bir şeye ayarlanmış etiketler tarafından da tetiklenebilir . Bu, yeni tek görünümlü projeyle tamamen tekrarlanabilir.
Yeniden Oluşturma Adımları:
- Yeni bir tek görünüm, objektif-c projesi oluşturun
- Dağıtım Hedefini 7.1 olarak ayarlayın
- Projenin film şeridini aç
- Verilen görünüm denetleyicisine bir etiket bırakın
- Bu etiket için numberOfLines değerini 2 olarak ayarlayın.
- derleme
Aşağıdaki radarı hazırladım:
rdar: // problem / 18700567
Güncelleme 2:
Maalesef bu, Xcode 6'nın yayın sürümünde tekrar bir şeydir. Başına Charles A. aşağıdaki yorum:
Bu uyarıyı yanlışlıkla kolayca tanıtabileceğinizi belirtmek gerekir ve uyarının kendisi, suçlu olan etiketi bulmaya yardımcı olmaz. Bu karmaşık bir hikaye tahtasında talihsiz bir durumdur. Film şeridini bir kaynak dosyası olarak açabilir ve <label(?!.*preferredMaxLayoutWidth)
tercih edilen bir MaxLayoutWidth niteliğini / değerini atlayan etiketleri bulmak için normal ifadeyle arama yapabilirsiniz . Bu tür satırlara preferMaxLayoutWidth = "0" eklerseniz, müstehcen olarak işaretlemek ve 0 değerini ayarlamakla aynıdır.
Güncelleme 1:
Bu hata şimdi Xcode 6 GM'de düzeltildi.
Orijinal Yanıt
Bu, Xcode6-Beta6 ve XCode6-Beta7'deki bir hatadır ve şimdilik güvenle göz ardı edilebilir.
Elma Geliştirici forumlarda Bir Apple mühendisi vardı bu hata hakkında söylenecek:
Tercih edilen maksimum düzen genişliği, içeriğine uyacak şekilde otomatik olarak dikey olarak büyümesini sağlayan UILabel'da bir otomatik düzen özelliğidir. 6.0'dan önceki Xcode sürümleri, çok satırlı etiketler için tasarım sırasında geçerli sınır boyutuna tercih edilen MaxLayoutWidth değerini ayarlayacaktır. Yatay mizanpajınız değiştiyse, tercih edilenMaxLayoutWidth öğesini çalışma zamanında manuel olarak güncellemeniz gerekir.
iOS 8, çalışma zamanında tercih edilen MaxLayoutWidth öğesinin otomatik olarak hesaplanması için destek ekledi ve bu da çok satırlı etiket oluşturmayı daha da kolay hale getirdi. Bu ayar iOS 7 ile geriye doğru uyumlu değildir. Hem iOS 7 hem de iOS 8'i desteklemek için Xcode 6, boyut denetçisinde tercih edilen MaxLayoutWidth için "Otomatik" veya "Açık" seçmenizi sağlar. Malısın:
En iyi deneyim için iOS 8'i hedefliyorsanız "Otomatik" i seçin. <İOS 8'i hedefliyorsanız "Açık" ı seçin. Ardından, ayarlamak istediğiniz tercih edilen MaxLayoutWidth değerini girebilirsiniz. "Açık" seçeneği etkinleştirildiğinde, kutuyu işaretlediğiniz sırada geçerli sınır boyutu varsayılan olarak belirlenir.
(1) otomatik düzeni kullanıyorsanız, (2) çok satırlı bir etiket için "Otomatik" ayarlanmışsa [bunu etiketin boyut denetçisinde kontrol edebilirsiniz] ve (3) dağıtım hedefiniz <iOS 8.
Hata, bu uyarının otomatik olmayan belgeler için göründüğü anlaşılıyor. Bu uyarıyı görüyorsanız ve otomatik düzen kullanmıyorsanız uyarıyı yoksayabilirsiniz.
Alternatif olarak, film şeridindeki dosya denetçisini veya söz konusu xib'i kullanarak sorunu çözebilir ve "Şunun için derlemeler" i "iOS 8.0 ve Üstü için Yapılar" olarak değiştirebilirsiniz.