2015-03-04 7 views
21

में प्रोग्रामिंग रूप से UIScrollView स्विफ्ट के साथ प्रोग्रामिक रूप से क्षैतिज और लंबवत स्क्रॉलिंग को सक्षम करने का एक तरीका खोजने में असमर्थ रहा है (मेरी ऑब्जेक्ट प्रोग्रामिंग इस प्रकार आईबी में ऑटो लेआउट का उपयोग कर अक्षम है)।स्विफ्ट

मेरे द्वारा अनुसरण किए गए ट्यूटोरियल दोनों तरीकों को स्क्रॉल करने के लिए अनुमति देता है। समस्या यह है कि मेरा बटन स्क्रीन के हिस्से पर कब्जा कर रहे एक ही स्थान पर रहता है चाहे आप स्क्रॉल करते हों। मेरे पास एक और ट्यूटोरियल के साथ यही परिणाम रहा है और यह क्यों हो रहा है कि यह क्यों उलझन में है।

मुझे इसका उत्तर नहीं मिला है इसलिए मुझे लगता है कि कुछ अन्य इसे लाभकारी पाएंगे।

यहां मेरे पास कोड है। http://koreyhinton.com/blog/uiscrollview-crud.html

import UIKit 

class ViewController: UIViewController, UIScrollViewDelegate { 


    var scrollView: UIScrollView! 
    var containerView = UIView() 



    override func viewDidLoad() { 
     super.viewDidLoad() 

    let buttonOne = UIButton.buttonWithType(UIButtonType.System) as UIButton 


     buttonOne.frame = CGRectMake(10, 50, 50, 50) 
     buttonOne.backgroundColor = UIColor.greenColor() 
     buttonOne.setTitle("test", forState: UIControlState.Normal) 
     buttonOne.addTarget(self, action: "buttonAction1x1:", forControlEvents: UIControlEvents.TouchUpInside) 

     self.scrollView = UIScrollView() 
     self.scrollView.delegate = self 
     self.scrollView.contentSize = CGSizeMake(1000, 1000) 

     containerView = UIView() 


     scrollView.addSubview(containerView) 
     view.addSubview(scrollView) 
     self.view.addSubview(buttonOne) 


    } 

    override func viewDidLayoutSubviews() { 
     super.viewDidLayoutSubviews() 

     scrollView.frame = view.bounds 
     containerView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height) 
    } 



    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 


} 
+0

प्रयास करें कि इतना बनाता scrollview या containerView –

उत्तर

9

आपका कोड पूरी तरह से काम कर रहा है, लेकिन वहाँ दृश्य पर buttonOne जोड़ने में एक छोटी सी समस्या है: मैं एक बहुत ही बुनियादी परियोजना इस ट्यूटोरियल के आधार पर बनाया है।

आपने self.view पर iOe बटन जोड़ा है (i.e self.view का सबव्यूव), कंटेनर व्यू नहीं जो scrollView पर है।

आप नीचे दिए गए कोड

containerView.addSubview(buttonOne) 
बजाय

self.view.addSubview(buttonOne) 
+0

के लिए बटन जोड़ने अभी तक यह मेरे साथ कभी नहीं हुआ होगा। धन्यवाद! – user3246092

3

का उपयोग तो तुम लाइन निम्नलिखित का उपयोग करना चाहिए करना चाहिए

containerView.userInteractionEnabled = true