मैं वर्तमान में स्विफ्ट 4/एक्सकोड 10 में एक सिंगल व्यू ऐप बना रहा हूं जहां स्क्रीन पर एनिमेटेड पृष्ठभूमि और 6 बटन हैं, प्रत्येक बटन एक अलग व्यू कंट्रोलर से जुड़ा हुआ है। जब मैं ऐप चलाता हूं, तो एनिमेटेड बैकग्राउंड सामने की परत पर चला जाता है और सभी बटनों को ब्लॉक कर देता है। मैं इसे कैसे बना सकता हूं ताकि बटन पृष्ठभूमि के सामने दिखाई दें?

समस्या यह है कि, मैंने प्रोग्रामिक रूप से बटन नहीं बनाए, बल्कि इंटरफ़ेस बिल्डर में ऑब्जेक्ट लाइब्रेरी से उन्हें खींचकर गिरा दिया। यही कारण है कि जब मैंने पोस्ट किए गए समाधानों की कोशिश की यहां और यहां, यह काम नहीं किया, क्योंकि मैं नहीं पता नहीं है कि क्या कोई वास्तविक कोड है जो किसी भी बटन का संदर्भ देता है। उदाहरण के लिए, जब मैंने कोशिश की

View.bringSubview(toFront: theButton)

मुझे यकीन नहीं था कि बटन के स्थान पर क्या रखा जाए, या यहां तक ​​​​कि कोड के उस स्निपेट को कहां रखा जाए।

नीचे वह कोड है जो मेरे 'होम स्क्रीन' व्यू कंट्रोलर पर है। मेरा सबसे अधिक दबाव वाला प्रश्न यह है कि मैं बटन को आगे या पीछे की ओर ले जाने के लिए कोड कहां डालूंगा।

import UIKit
import AVFoundation
import AVKit

class ViewController: UIViewController {
    @IBOutlet weak var videoView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        setupView()
    }
    private func setupView() {
        let path = URL(fileURLWithPath: Bundle.main.path(forResource: "Ocean_Waves_slow_motion_videvo", ofType: "mov")!)
        let player = AVPlayer(url: path)

        let newLayer = AVPlayerLayer(player: player)
        newLayer.frame = self.videoView.frame
        self.videoView.layer.addSublayer(newLayer)
        newLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill

        player.play()
        player.actionAtItemEnd = AVPlayer.ActionAtItemEnd.none

        NotificationCenter.default.addObserver(self, selector: #selector(ViewController.videoDidPlayToEnd(_:)), name: NSNotification.Name(rawValue: "AVPlayerItemDidPlayToEndTimeNotification"), object: player.currentItem)
    }
    @objc func videoDidPlayToEnd(_ notification: Notification) {
        let player: AVPlayerItem = notification.object as! AVPlayerItem
        player.seek(to: CMTime.zero)
    }
}

यहां मेरा मेन.स्टोरीबोर्ड कैसा दिखता है। यदि यह मदद करता है, तो पदानुक्रम वर्तमान में है:

देखें > वीडियो देखें > देखें > बटन बटन बटन बटन बटन बटन

1
J. Wu 19 मई 2019, 06:57

1 उत्तर

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

पहला दृश्य -> ​​वीडियो दृश्य -> ​​बटनबीजीव्यू -> बटन बटन बटन बटन बटन बटन

वीडियो दृश्य के सबव्यू के रूप में बटनBgView को न जोड़ें। वीडियो दृश्य और बटनBgView प्रथम दृश्य का सबव्यू होना चाहिए।

पहला दृश्य -> ​​वीडियो देखें

पहला दृश्य -> ​​बटनबीजीव्यू -> बटन बटन बटन बटन बटन बटन

बटन के लिए IBOutlet बनाएंBgView, और उस दृश्य को सामने लाएं

class ViewController: UIViewController {
    @IBOutlet weak var videoView: UIView!
    @IBOutlet weak var buttonsBgView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        setupView()
        buttonsBgView.backgroundColor = .clear
        view.bringSubview(toFront: buttonsBgView)
    }
}
0
RajeshKumar R 19 मई 2019, 04:39