2012-02-25 18 views
26

मेरे पास UIScrollView है। scrollview.contentSizeUIScrollView में सभी सबव्यूव्यू की ऊंचाई पर सेट है। contentSize की ऊंचाई UIScrollView की ऊंचाई से अधिक होने पर, दृश्य को खींचते समय यह पूरी तरह से स्क्रॉल कर रहा है। जब contentSize की ऊंचाई UIScrollView की ऊंचाई से कम है तो दृश्य को खींचते समय कुछ भी नहीं हो रहा है।हमेशा UIScrollView स्क्रॉल करने योग्य कैसे बनाता है?

मुझे लगता है कि यह मानक व्यवहार है, क्योंकि स्क्रॉल करने के लिए वास्तव में कुछ भी नहीं है। लेकिन मुझे लगता है कि UIScrollView वैसे भी थोड़ा आगे बढ़ रहा है।

सम्भावित समाधान है कि contentSize की ऊंचाई frame.height प्लस एक छोटे से मार्जिन (यानी 5px) की तुलना में कभी भी कम है, यह सुनिश्चित करना है:

CGSize scrollSize = self.frame.size; 
int defaultHeight = self.frame.size.height + 5; 
int contentHeight = self.webView.frame.origin.y + self.webView.frame.size.height; 
scrollSize.height = MAX(defaultHeight, contentHeight); 
[self.scrollView setContentSize:scrollSize]; 

वहाँ यह करने के लिए एक कम hackish तरीका है ?

+0

तुम सिर्फ यह बाउंस करने के लिए करना चाहते हैं? – jrtc27

+0

मुझे लगता है कि आपने 'scrollEnabled' को मैन्युअल रूप से 'YES'' सेट करने का प्रयास किया है, है ना? – dasblinkenlight

+0

हां, मैं बस इसे उछालना चाहता हूं - और हाँ, 'scrollEnabled = YES' काम नहीं किया। – dhrm

उत्तर

71

कि आप क्या चाहते हैं की तरह ध्वनि UIScrollView पर दो गुण होते हैं:

@property(nonatomic) BOOL alwaysBounceVertical; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag vertically 
@property(nonatomic) BOOL alwaysBounceHorizontal; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag horizontally 

सीधे शब्दों में YES को उनमें से एक या दोनों की स्थापना की और आप उछाल प्रभाव मिल जाएगा।

यह भी "बाउंस क्षैतिज" जाँच करके आईबी में सेट किया जा सकता है और/या "खड़ी उछाल" बॉक्स (ओं):

enter image description here

+4

ध्यान दें कि एकल "बाउंस" चेकबॉक्स को "क्षैतिज रूप से उछाल" या "लंबवत उछाल" के अतिरिक्त चेक किया जाना चाहिए। –

संबंधित मुद्दे