Autolayout'tan önce önemsiz bir scrollview kurulumuna ulaşmak için Karışık ve Saf Autolayout yaklaşımlarının çeşitli çözümlerini denemek için iki gün geçirdim ve şimdi resmi - çok aptal olmalıyım. Bunu çoğunlukla Storyboard'da ayarlıyorum (iyi, sadece olduğu gibi).
İşte benim yardım isteğim.
Viewtree:
UIView
-UIView
-UIView
..-UIScrollview
...-UIButton
...-UIButton
...-UIButton
Düğmeler yatay olarak kaydırılmalıdır (soldan sağa ve tersi). Birisi saf Autolayout kullanarak bunu başarmak için kısıtlamaları nasıl ayarlayacağını lütfen bana bildirin ???
-
Karışık yaklaşımı denedim, şöyle:
UIView
- UIView
- UIView
..-UIScrollview
...-UIView (contentview)
....-UIButton
....-UIButton
....-UIButton
... ve Apple TechNote'a göre contentview
ve translatesAutoresizingMaskIntoConstraints
ayarları için sabit genişlik ve yükseklik kısıtlamaları ayarlama. Düğmeler ve kaydırma görünümü kısıtlamalar kullanılarak ayarlanır. Bu scrollview kaydırma (yay) alır ama ne yazık ki, çok ileri kaydırır! Bildiğim kadarıyla, kaydırma genişliği bir şekilde contentview ne ??? !!! ???
Saf autolayout yaklaşımını hem birlikte hem de contentview
olmadan denedim . Tüm görünümler translatesAutoresizingMaskIntoConstraints=NO
hariç self.view
. Düğmeler sabit genişlik / yükseklik kısıtlamalarına sahiptir ve kaydırma görüntüsünün dört kenarına sabitlenir. Hiçbir şey kayar.
Bu yüzden neden düzgün çalışamadığım konusunda şaşkınım. Herhangi bir yardım çok takdir ve başka bir bilgiye ihtiyacınız varsa, lütfen sorun!
Çözüm ile yükseltilmiş ekran görüntüsü - buttonZ kısıtlamaları:
@ Jamie Forrest DÜZENLEME Böylece çözüm son düğme yanlış takip kısıtlaması olduğu ortaya çıkıyor. 6441 yerine, verdiğim değer negatifti, -6441. Zor olan şey, film şeridinde değeri ayarlarken, Pin araç çubuğunda iki seçenek olmasıdır:
Geçerli Tuval Değeri negatiftir (kaydırmaya neden olmaz) ve aşağıdaki seçenek pozitiftir (kaydırmayı etkinleştirir). Bu aptal değilim ama en azından yarı kör olduğum anlamına geliyor. Her ne kadar savunmam için XCode'un "yanlış" ayar için bir hata göstermemesi biraz rahatsız edici değil mi?
TEKRAR DÜZENLENDİ Şimdi bu komik ... sondaki değeri -6441'den (kaydırma yok) 6441 etkin kaydırma olarak değiştiriyor. Ancak eski arkadaşım "çok fazla içerik boyutu" geri döndü ve olması gerekenden iki kat daha büyük bir içerik boyutuna yol açtı! Doğru içerik kaydırmasını elde etmenin çözümü, izleyen kısıtlamayı SIFIR olarak ayarlamaktı! Storyboard'da çalışırken ancak @Infinity James'in koduna bakarken bu açık değildir, olması gereken şey budur.
contentSize
bir ait UIScrollView
kullanan tek oto düzeni. Ve contentSize
ne kadar kaydırma yapabileceğinizi tanımlar. Bu yüzden sonunda bunu manuel olarak bir yere ayarlamanız gerekecek. Geri kalanı için, görünüm çerçevelerini birbirine göre ayarlamak için düzen kısıtlamalarını kullanabilirsiniz.