Xcode 11 yeni sınırlama ekle sıfır kümesi: varsayılan / standart yerine set değerini kullan


74

Autolayout'u bu şekilde denetlemek / göreceli görünüme (loooong zamanı için) basit kısıtlamalar eklemek için yeni kısıtlamalar eklemek için kullanıyordum:

resim açıklamasını buraya girin

Ancak, son zamanlarda en son xcode (11.3.3 veya sadece 11.3 / 11C29) güncellendi sonra, ben bu garip sorun var: sabit = 0 ayarladığınızda, her zaman bu gibi istenmeyen bir şekilde kısıtlamalar üretir:

resim açıklamasını buraya girin

Ve varsayılan değer bir şekilde 20 gibi görünüyor ve görüşümü çok yanlış gösteriyor (0, 20'ye kıyasla?)

Bu gibi kısıtlamayı düzenleyerek düzeltirseniz:

resim açıklamasını buraya girin

Sonra tekrar düzelir (resim, kısıtlamaları düzenledikten sonra, düzenlenmeden önce sabit = gösterir Standard)

Sorunun nasıl tanımlanacağını bile bilmiyorum, ancak add new constraintstandart / varsayılan yerine arzu noktamı kullanmak için bu yeni sorunu nasıl düzeltebilirim ?

Güncelleme:

Görünüşe göre sadece denetleme kısıtı olduğunda. Tho düzeltmek için hiçbir ipucu yok.

Nisan-01-2020 Güncellemesi:

Xcode11.4 bunu düzeltti.


2
Burada da aynı problem. Sanırım bu 11.3 UPD'ye güncelleme yaptığımda ilk kez ortaya çıktı: Aynı proje, xcode'un aynı sürümüne sahip başka bir makinede bu sorunu yaşamıyor. Belki IDE yapılandırmasıyla ilgilidir ya da IDE'nin kendisinin bir hatasıdır.
Dmitrij Rogov

1
Burada da aynı sorun var. Xcode 11.3 (11C29) kullanılması.
user525504

1
Aynı sorun Sürüm 11.3 (11C29)
user832

1
@DmitrijRogov Bazen daha önce hatırladım (xcode 8,9 veya 10), standarddeğeri tanımlamamıza yardımcı olan bir yer var (bunun yerine 10 veya 0 ayarlayabiliriz default = 8) ama şimdi nerede olduğunu unuttum. Veya özelliği kaldırmış olabilirler mi?
Eddie

5
Bu beni deli ediyor
Buyin Brian

Yanıtlar:


37

Bir hata gibi görünüyor (Apple ile dosyalamayı unutmayın). İşte basit bir çözüm:

"Popover" içindeki sayıyı yazarken yazmak yerine 0yazın 0.01. Bu, sayının gizemli bir şekilde "Standart" a değişmesini önleyecektir. Tamam, 0.01aynı değil 0ama farkı anlayamayacak kadar yakın ve en azından geri dönüp daha sonra değiştirmek zorunda değilsin.

DÜZENLEME Apple bu hata Xcode 11.4 giderilecektir söylüyor:

Kısıtlama açılır pencere düzenleyicilerine 0 sabiti girilmesini engelleyen bir hata düzeltildi. (54076090)


1
etrafında güzel bir çalışma, teşekkürler!
Eddie

1
Harika! Bu sorun ne can sıkıcı olabilir ..
Joaquin Pereira

0 yerine 0.01 kullandığımda iyi çalışıyor
Teja

Ancak ikinci kez 0'a ayarlamak işe yarar. Neden 0.01 ile uğraştınız? Yine de oldukça can sıkıcı. İyi bir şey bir hata ve bir "özellik" değil.
Vlad Rusu

11

@Matt geçici çözümü çalışırken, yalnızca 0,01 olarak ayarlayabileceğinizi ve sonra 0 olarak değiştirebileceğinizi eklemek istiyorum, yine standart değere değişmeyecek. Not: Xcode 11.3


Benim için onu 0 olarak değiştirdiğimde tekrar "standart" olarak değişir. Xcode 11.3.1.
John Scalo

10

Xcode 11.3.1'den itibaren:

Bulduğum en güzel ve en hızlı çözüm şöyledir:

-0Kısıtlama alanına yazmanız yeterlidir . Xcode negatifi atmış gibi görünüyor ve doğru davranıyor, bu da 0.01her şey için okuduğundan daha iyi .

Tüm kısıtlamaları bir kerede bir tane yapmak veya daha sonra düzenlemek ve düzenlemek zorunda kalmadan aynı anda ekleyebilirsiniz.

Xcode değerleri şu şekilde görüntüler

Gerçekten aptalca bir davranış gibi görünüyor. Apple'ın bunu kasten yapmasının bir nedeni var mı?

Düzenleme: Bu sinir bozucu olan her zaman çalışmıyor gibi görünüyor . Ben sadece bir UIImageView Superview 0 göstermek vardı, ama yine de görsel olarak varsayılan değer (20). Davranış tamamen mantıksız olduğundan, bu gerçekten IB ile ilgili bir hata gibi görünüyor.


9

Bu davranış Xcode 11.4: sürüm notları giderilmiş gibi görünüyor

Kısıtlama açılır pencere düzenleyicilerine 0 sabiti girilmesini engelleyen bir hata düzeltildi. (54076090)


Orijinal Yanıt:

Ben de bu davranışı çok buldum, 1 x 1 kısıtlamaları eklemeye çalıştım ve Xcode aslında 0 değerine saygı duydu.

Benim görüşüm.


Evet, sadece notlarda da iyi olduğunu fark ettim.
matt

5

Bunun bir çözüm olmadığını biliyorum, ancak her kısıtlamadan geçmenizi önlemek için geçici çözüm için, sadece '0' yerine '-0' eklerseniz istenen davranışı elde ettiğinizi öğrendim, ancak bir tane eklemelisiniz her seferinde kısıtlama.


bu aslında iyi bir seçenektir, kısıtlamaları oluşturduğunuzda bir '-0' eklenmesi müfettişte '0' olur, oraya gitmeye ve onları değiştirmeye gerek yoktur
busta117

1

Aslında bu sorunu çözmenin bir yolu yok

ancak en iyi geçici çözüm kısıtlamaları sıfıra tek tek eklemektir.


0

standart olarak görmezden gelin.

ekledikten sonra kısıtlamayı (mavi çizgi) ve denetçiyi tıklatarak özelliği sınırlayın ve 0 olarak ayarlayın.

bu benim için çalışıyor


0

Hala bu hatayı yaşıyoruz (Xcode 11.3.1). Kısıtlamaları "standart" olarak ekleyip mavi sınır çizgilerini tıklayıp boyut denetçisinin altındaki "sabit" değerini 0 olarak ayarlayarak düzeltildi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.