मैं स्विफ्ट के लिए नया हूं और मैं जानना चाहता हूं कि मैं किसी सरणी से कुछ मान कैसे ले सकता हूं और उन्हें स्टैक में बटन में बदल सकता हूं। मेरे पास कुत्तों और उनकी जानकारी के साथ एक सरणी है। मैं चाहता हूं कि बटन प्रत्येक कुत्ते का नाम प्रदर्शित करें। कुत्तों की संख्या बदल सकती है, इसलिए सरणी में जो है उसे प्रतिबिंबित करने के लिए मुझे बदलने के लिए स्टैक की आवश्यकता है। मैं वास्तव में खो गया हूं, मुझे पता है कि मुझे इस कोड को व्यू कंट्रोलर में जोड़ने की जरूरत है, लेकिन मुझे इसके समान कुछ भी नहीं मिल रहा है
यह मेरी सरणी है:
var myDogs = [
Dog(name: "Saleks", gender: "Male", speed: 50),
Dog(name: "Balto", gender: "Male", speed: 70),
Dog(name: "Mila", gender: "Female", speed: 20)
]
यह मेरा दृश्य नियंत्रक है:
@IBOutlet weak var buttonsStack: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
for Dog in myDogs {
print("\(Dog.name)")
}
// सरणी में एक नया कुत्ता जोड़ें
@IBAction func buyDogButton(_ sender: UIButton) {
func buyDog() {
myDogs.append(Dog(name: "Dogname", gender: "female", speed: 20))
}
1 उत्तर
मैं यह करूँगा:
यहां बताए अनुसार स्टैक व्यू बनाएं: UIStackView में प्रोग्रामेटिक रूप से दृश्य जोड़ें
लेकिन छवि या लेबल के बजाय, बटन बनाएं
तो कोड इस तरह दिखेगा (डिडलोड को देखते हुए):
var myDogs = [
Dog(name: "Saleks", gender: "Male", speed: 50),
Dog(name: "Balto", gender: "Male", speed: 70),
Dog(name: "Mila", gender: "Female", speed: 20)
]
let stackView = UIStackView(frame: CGRect(x: 40, y: 100, width: 60, height: 100))
stackView.backgroundColor = .red
stackView.axis = NSLayoutConstraint.Axis.vertical
stackView.distribution = UIStackView.Distribution.equalSpacing
stackView.alignment = UIStackView.Alignment.center
stackView.spacing = 16.0
for dog in myDogs {
let button = UIButton() // Need to set the IBAction
button.setTitleColor(.blue, for: UIControl.State.normal)
button.setTitle(dog.name, for: UIControl.State.normal) // "Click"
button.backgroundColor = .red
stackView.addArrangedSubview(button)
}
stackView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(stackView)
//Constraints
stackView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
stackView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
मैंने बटन को काफी दृश्यमान बनाने के लिए पृष्ठभूमि का रंग लाल पर सेट किया है आप सामान्य चौड़ाई वाले बटन रखना चाहते हैं, फिर जब आप बटन बनाते हैं तो उनका फ्रेम सेट करें।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
arrays
एक सरणी एक आदेशित रैखिक डेटा संरचना है जिसमें तत्वों (मूल्यों, चर, या संदर्भों) का एक संग्रह होता है, प्रत्येक को एक या अधिक अनुक्रमित द्वारा पहचाना जाता है। जब सरणियों के विशिष्ट प्रकारों के बारे में पूछा जाता है, तो इसके बजाय इन संबंधित टैगों का उपयोग करें: [वेक्टर], [सरणी सूची], [मैट्रिक्स]। इस टैग का उपयोग करते समय, एक सवाल जो प्रोग्रामिंग भाषा के लिए विशिष्ट होता है, उस प्रश्न को उस प्रोग्रामिंग भाषा के साथ टैग करें जिसका उपयोग किया जा रहा है।