पर हटाने के लिए स्वाइप करें मैं मेल तालिकादृश्य में फ़ंक्शन को हटाने के लिए स्वाइप को दोहराने की कोशिश कर रहा हूं। केवल इस बार मुझे इसे संग्रहदृश्य पर बनाने की ज़रूरत है, लेकिन मुझे थोड़ा कठिन समय मिल रहा है। यह एक क्षैतिज स्क्रॉलिंग सूची है जिसे हटाने के लिए स्वाइप करें। मुझे पहले से ही काम करना स्वाइप हो गया है लेकिन कार्यक्षमता को हटाने या अनदेखा करने के लिए मुझे हटाने/टैप करने के लिए स्वाइप सेट करने की आवश्यकता के बारे में एक कठिन समय लग रहा है।संग्रह दृश्य
तो मैं निम्नलिखित collectionview उपयोग कर रहा हूँ:
func buildCollectionView() {
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
layout.minimumInteritemSpacing = 0;
layout.minimumLineSpacing = 4;
collectionView = UICollectionView(frame: CGRect(x: 0, y: screenSize.midY - 120, width: screenSize.width, height: 180), collectionViewLayout: layout)
collectionView.dataSource = self
collectionView.delegate = self
collectionView.register(VideoCell.self, forCellWithReuseIdentifier: "videoCell")
collectionView.showsHorizontalScrollIndicator = false
collectionView.showsVerticalScrollIndicator = false
collectionView.contentInset = UIEdgeInsetsMake(0, 20, 0, 30)
collectionView.backgroundColor = UIColor.white()
collectionView.alpha = 0.0
//can swipe cells outside collectionview region
collectionView.layer.masksToBounds = false
swipeUpRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.deleteCell))
swipeUpRecognizer.delegate = self
collectionView.addGestureRecognizer(swipeUpRecognizer)
collectionView.isUserInteractionEnabled = true
}
मेरे कस्टम videocell एक छवि है और नीचे हटाएँ बटन नहीं है। तो अगर आप छवि को स्वाइप करते हैं तो डिलीट बटन पॉप अप हो जाता है। सुनिश्चित नहीं हैं कि अगर यह कैसे करना है पर सही तरीका है:
class VideoCell : UICollectionViewCell {
var deleteView: UIButton!
var imageView: UIImageView!
override init(frame: CGRect) {
super.init(frame: frame)
deleteView = UIButton(frame: CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height))
deleteView.contentMode = UIViewContentMode.scaleAspectFit
contentView.addSubview(deleteView)
imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height))
imageView.contentMode = UIViewContentMode.scaleAspectFit
contentView.addSubview(imageView)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
और मैं निम्नलिखित तर्क का उपयोग कर रहा:
func deleteCell(sender: UIPanGestureRecognizer) {
let tapLocation = sender.location(in: self.collectionView)
let indexPath = self.collectionView.indexPathForItem(at: tapLocation)
if velocity.y < 0 {
//detect if there is a swipe up and detect it's distance. If the distance is far enough we snap the cells Imageview to the top otherwise we drop it back down. This works fine already.
}
}
लेकिन समस्या यह है वहाँ शुरू होता है। जैसे ही मेरा सेल संग्रहदृश्य सीमाओं के बाहर है, मैं अब और इसका उपयोग नहीं कर सकता। मैं अभी भी इसे हटाने के लिए इसे और स्वाइप करना चाहता हूं। मैं केवल डिलीट बटन पर स्वाइप करके ऐसा कर सकता हूं, लेकिन मैं इसके ऊपर छविदृश्य को स्वाइप करने योग्य भी चाहता हूं। या यदि मैं संग्रहदृश्य के बाहर की छवि को टैप करता हूं तो उसे लाइन में वापस स्लाइड करना चाहिए और इसे हटा नहीं देना चाहिए।
यदि मैं संग्रहदृश्य सीमाओं को बढ़ाता हूं तो मैं इस समस्या को रोक सकता हूं लेकिन मैं सेल की दृश्य ऊंचाई के बाहर निकालने के लिए भी स्वाइप कर सकता हूं। यह टैपलाक्शन के कारण होता है जो संग्रहदृश्य के अंदर होता है और इंडेक्सपाथ का पता लगाता है। कुछ जो मैं नहीं चाहता। मैं केवल संग्रह दृश्य के सेल पर काम करने के लिए स्वाइप करना चाहता हूं।
इसके अलावा बटन और छवि एक दूसरे के साथ हस्तक्षेप करती है क्योंकि मैं उन्हें अलग नहीं कर सकता। वे दोनों एक ही सेल में हैं इसलिए मैं सोच रहा हूं कि मेरे पास सेल में डिलीट बटन होना चाहिए या नहीं। या मुझे इसे अन्यथा कहां रखना चाहिए? मैं इसके बाहर दो बटन भी बना सकता हूं और राज्य के आधार पर उपयोगकर्ता इंटरैक्शन को अक्षम कर सकता हूं, लेकिन यह सुनिश्चित नहीं करता कि यह कैसे समाप्त होगा।
मुझे निश्चित रूप से आपके समाधान में रूचि है। क्या आप एक अद्यतन संस्करण को जिथब में धक्का दे सकते हैं क्योंकि मुझे वर्तमान में केवल एक खाली परियोजना मिलती है! – Wouter125
ओह हाँ यकीन है, यह एक गलती है, शर्मनाक है। यह अब अपडेट किया गया है! – Imbue
एक आकर्षण की तरह काम करता है। वही था जो मैं खोज रहा था। पहले से ही मेरे पेंगुइनर के लिए इसे फिर से लिखना है, लेकिन वास्तव में मैं सेल क्षेत्र को बढ़ाने के तरीके पर देख रहा था :) – Wouter125