मैं अपने नीचे 3 दृश्यों के साथ एक UIStackView सेट करना चाहता हूं ताकि केंद्र दृश्य केंद्र में स्थित हो और अन्य विचारों को तदनुसार समायोजित किया जा सके, मैं भी सभी 3 दृश्यों के लिए चौड़ाई और ऊंचाई एंकर सेट करने में सक्षम होना चाहता हूं। यह वांछित परिणाम है:

Outcome

मुझे यही मिल रहा है:

Desired Outcome

यह वह कोड है जिसका मैं उपयोग कर रहा हूं:

bottomStackView = UIStackView(arrangedSubviews: [pickerView, downloadContentButton,  shareButton])
    bottomStackView.alignment = .center
    bottomStackView.distribution = .fill
    bottomStackView.axis = .horizontal
    bottomStackView.spacing = 5
    bottomStackView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(bottomStackView)
    
    bottomStackView.anchor(top: nil, leading: view.leadingAnchor, bottom: view.safeAreaLayoutGuide.bottomAnchor, trailing: view.trailingAnchor)
    bottomStackView.heightAnchor.constraint(equalToConstant: 150).isActive = true
    bottomStackView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
    
    pickerView.heightAnchor.constraint(equalToConstant: 120).isActive = true
    shareButton.heightAnchor.constraint(equalToConstant: 150).isActive = true
    shareButton.widthAnchor.constraint(equalTo: pickerView.widthAnchor).isActive = true
    
    downloadContentButton.heightAnchor.constraint(equalToConstant: 30).isActive = true
    downloadContentButton.widthAnchor.constraint(equalToConstant: 30).isActive = true
    
    shareButton.widthAnchor.constraint(equalToConstant: 80).isActive = true
    shareButton.heightAnchor.constraint(equalToConstant: 80).isActive = true
0
StackGU 3 अक्टूबर 2020, 01:42

1 उत्तर

सबसे बढ़िया उत्तर

मुझे लगता है कि आप इस तरह की चीज़ों के पीछे हैं:

enter image description here

या, अगर हम व्यापक हो जाते हैं:

enter image description here

यदि यह विचार है, तो एक महत्वपूर्ण गलती यह है कि जब आप कहते हैं:

bottomStackView.distribution = .fill

आप वास्तव में .equalDistribution चाहते हैं। प्रदर्शित करने के लिए, मैंने पूरी तरह से कोड में उदाहरण बनाया है, ताकि आप सभी सेटिंग्स देख सकें:

let sv = UIStackView()
sv.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(sv)
sv.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 20).isActive = true
sv.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: -20).isActive = true
sv.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -20).isActive = true
sv.heightAnchor.constraint(equalToConstant: 160).isActive = true

sv.distribution = .equalSpacing
sv.alignment = .center

let v1 = UIView()
v1.translatesAutoresizingMaskIntoConstraints = false
v1.widthAnchor.constraint(equalToConstant: 120).isActive = true
v1.heightAnchor.constraint(equalToConstant: 150).isActive = true
v1.backgroundColor = .red
sv.addArrangedSubview(v1)

let v2 = UIView()
v2.translatesAutoresizingMaskIntoConstraints = false
v2.widthAnchor.constraint(equalToConstant: 80).isActive = true
v2.heightAnchor.constraint(equalToConstant: 80).isActive = true
v2.backgroundColor = .yellow
sv.addArrangedSubview(v2)


let v3 = UIView()
v3.translatesAutoresizingMaskIntoConstraints = false
v3.widthAnchor.constraint(equalToConstant: 120).isActive = true
v3.heightAnchor.constraint(equalToConstant: 150).isActive = true
v3.backgroundColor = .blue
sv.addArrangedSubview(v3)
1
matt 3 अक्टूबर 2020, 04:20