2011-11-30 6 views
9

कल्पना कीजिए, उस में एक UIScrollView के साथ एक UIViewController है। दृश्य के शीर्ष पर एक UIImageView, कुछ UILabels और अन्य चीजें हैं। इसके अलावा, एक UITableView है जो सामग्री गतिशील प्रोटोटाइप है। मैं यह स्पष्ट कर देना एक तस्वीर देते हैं:UITableView - दृश्य स्क्रॉल कैसे करें, लेकिन टेबलव्यू स्वयं में नहीं है?

enter image description here

मैं UITableView में कोशिकाओं की एक स्थिर राशि नहीं मिला है तो यह स्क्रॉल करने योग्य हो सकता है। मेरी समस्या निम्न है: UITableView स्वयं में स्क्रॉल करता है लेकिन मैं पूरे दृश्य को स्क्रॉल करना चाहता हूं। ऐसा करने की सबसे अच्छी संभावना क्या है?


संभावित समाधान मैं स्थापित किया गया है आज

1) पहली बात है: मैं एक UITableViewController बना सकते हैं और एक हैडर अनुभाग, जिसमें मैं अपने सभी लेबल, छवियों आदि प्रोग्राम के रूप में शामिल की घोषणा (मैं प्यार होता है उस के लिए इंटरफ़ेस बिल्डर का उपयोग करने के ...)

2) एक अन्य समाधान देखने की ऊंचाई की गणना करने के लिए है। मैंने इस तरह से ऐसा करने की पूरी कोशिश की - लेकिन: सफलता के बिना। यदि ऐसा करने का यह सबसे अच्छा तरीका है: क्या कोई उदाहरण दे सकता है?

उत्तर

19

मैं UIScrollView खाई हैं और सिर्फ एक UITableView का उपयोग करें। तुम बस इंटरफ़ेस बिल्डर में उस में खींचकर UITableView की tableHeaderView के रूप में एक UIView वस्तु जोड़ सकते हैं। अब चूंकि सबकुछ UITableView पदानुक्रम का हिस्सा है, इसलिए सब कुछ एक साथ स्क्रॉल करेगा जैसा अपेक्षित है।

+0

आपको बहुत बहुत धन्यवाद है! आपने मेरा दिन बनाया - यह एक पसंदीदा क्रिसमस की तरह है; ओ) –

+1

/नाक और रॉकेट को उंगली को छूता है एसओ की चिमनी –

+0

आपको एक अपवित्र, बहुत अच्छा जवाब दिया गया है। मुझसे बेहतर। :) –

1

आपको (जैसा कि आपने उल्लेख किया है) को UIView जोड़ना होगा जिसमें वास्तविक UITableView पर छवि और बटन शामिल हैं। स्क्रॉल व्यू में इसे एम्बेड करने से आप अवांछित व्यवहार का उत्पादन करेंगे जो आप देख रहे हैं।

मैं अपनी तालिका दृश्य का पहला खंड के लिए शीर्ष लेख दृश्य के रूप में UIView लौटने की सिफारिश करेंगे। आप UITableViewDelegate विधि लागू करके ऐसा कर सकते हैं:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 

आप अपनी छवि/लेबल युक्त दृश्य में एक IBOutlet बनाए रखने के हैं, तो आप इसे यहाँ लौट सकते हैं।

+0

आपके उत्तर के लिए धन्यवाद। अगर मैं इसे इस तरह से करता हूं, तो मुझे प्रोग्रामिंग के सभी छवियों/लेबलों को लागू करना होगा, है ना? मैं इससे बचना चाहता हूं ... –

+0

नहीं, आप अभी भी इंटरफ़ेस बिल्डर का उपयोग कर सकते हैं, जब तक कि आपकी छवियों/लेबल वाले 'UIView' को' UITableViewDelegate' पर 'IBOutlet' के रूप में परिभाषित किया गया हो। –

+0

आह ठीक है! अब मैं समझता हूं कि आपका क्या मतलब है। तुम सही हो एक अच्छा समाधान, इसके लिए धन्यवाद :-) –

2

आप अपने scrollView पर delaysContentTouchesNO पर भी सेट करने का प्रयास कर सकते हैं। आपके सेटअप के आधार पर, यह स्क्रॉल व्यू तालिका दृश्य के बजाय पहले स्पर्श पर प्रतिक्रिया दे सकता है।

सेब UIScrollView Docs से

:

delaysContentTouches

एक बूलियन मान निर्धारित करता है कि पुस्तक को देखने विलंब कि क्या स्पर्श नीचे इशारों का हैंडलिंग।

@property(nonatomic) BOOL delaysContentTouches

चर्चा

यदि यह संपत्ति के मूल्य YES है, स्क्रॉल दृश्य से निपटने स्पर्श नीचे इशारा करता है, तो स्क्रॉल मंशा है जब तक यह निर्धारित कर सकते हैं देरी।यदि मान NO है, तो स्क्रॉल व्यू तुरंत touchesShouldBegin:withEvent:inContentView: पर कॉल करता है। डिफ़ॉल्ट मान YES है।

+0

मैं इसे भी आजमाउंगा - ऐसा लगता है कि यह एक और अच्छा समाधान है। धन्यवाद :-) –

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