2014-10-09 30 views
5

Otomatik düzen, kısıtlamanın varsayılan aralığı kullanması gerektiğini belirtmek için - sembolünü kullanır. Bir metrik değeri açıkça ayarlamak zorunda kalmadan bu boşlukta önceliği belirlemenin bir yolu var mı? Örneğin, aşağıdaki görsel biçim, myView ve süper görünümü varsayılan Cocoa/CocoaTouch değerine eşit öntanımlı bir kısıt oluşturacaktır. Örneğin; Ancak bu kısıtlamanın required önceliği vardır.Otomatik düzenlerde varsayılan aralık metriğini görsel biçimde nasıl öncelikler belirlersiniz?

@"H:|-[myView]"

düşük önceliğe ancak açık bir metrik değere sahip bir lider kısıtlamasını yaratacak şu belirtilmelidir:

@"H:|-([email protected])-[myView]"

Ben lider kısıt bir öncelik vermek isterler ama açık bir metrik değil. Sebep şu ki 1) Apple'ın değerinin ne olduğunu tahmin etmek istemiyorum ve 2) Apple bu değeri değiştirirse gelecekteki kanıtlara.

@"H:|-(@750)-[myView]" veya

@"H:|-([email protected])-[myView]" Ama ne kabul edilir dilbilgisi:

İdeal olarak, bunu aşağıdaki gibi bir şey istiyorum. Bunu başarabilecek gizli bir biçim dizesi var mı?

(Ben orada böyle bir şey için iOS ve MacOS arasında bir fark var, ama varsa ben MacOS hedefleme sanmıyorum.)

+0

Mükemmel bir soru. Şu anda aynı sorunun karşısında. Cevabı henüz bulamadınız mı? – Vince

+0

Hayır, üzgünüm. Dokümantasyon, sürüm notları veya WWDC videolarında hiçbir şeye rastlamadı. Bir yol varsa, ya doğru baktım ya da belgesiz. – kennyc

+0

Birisi zaten bunun için bir çözüm buldunuz mu? –

cevap

0

Sen görsel bir biçimde varsayılan aralığı için öncelik ayarlayamıyor kısıtlamaları. Bunu yalnızca bir kısıtlama oluşturduğunuzda yapabilirsiniz.

let constraint = NSLayoutConstraint(item: myView, attribute: .leadingMargin, relatedBy: .equal, toItem: superview, attribute: .leadingMargin, multiplier: 1, constant: 0) 
constraint.priority = 750 

sadece sondaki ve lider leadingMargin ve trailingMargin yerine kullanılması gibi specifiying özelliklere göre varsayılan boşluğu alabilirsiniz.

İlgili konular