मैं एक UIView जो तीन कंटेनरोंUITableView की चोटी पर एक UIView बढ़ते - छू शीर्ष UIView अभी भी तालिका पंक्तियों का चयन करता है
Container A - contains a UITableView
Container B - contains Container C and Container O
Container C - contains a UITableView
* - touch event
@ - touch event
----------------------
| | |
| ---*| B |
| --- | |
| -A- | ----------- |
| --- ||@----C---- | |
| | ----------- |
----------------------
एक घटना होता है, जहां मैं (कंटेनर बी के फ्रेम बदलाव और मैं एक दिखाने के शामिल बी के दाईं ओर ओ (लेबल ओ) देखें, जो महत्वपूर्ण नहीं है)। अब कंटेनर बी कंटेनर एक
O - Other view (unimportant)
$ - original location of touch @
----------------------
| | | |
| --|* B | |
| --| | |
| -A|------------ |O|
| --||@-$--C----| | |
| |------------ | |
----------------------
लेकिन अब अतिव्यापी है, जब मैं, स्पर्श कंटेनर एक के UITableView द्वारा पंजीकृत किया जा रहा है पंक्ति (@) के बाएँ किनारे को छूकर कंटेनर सी UITableView में एक पंक्ति का चयन करने का प्रयास करें। या यहां तक कि अगर मैं तालिका (*) के ऊपर दृश्य को स्पर्श करता हूं, तो ए में संबंधित पंक्ति का चयन किया जाता है।
मैं कंटेनर ए के UITableView की चौड़ाई को बदलकर समस्या का हिस्सा हल कर सकता हूं। लेकिन फिर भी मुझे समस्या है जहां मैं तालिका सी (@) स्पर्श करता हूं, सी की पंक्ति का चयन नहीं होता है। ऐसा लगता है कि टेबल सी की शुरुआत पुराने स्थान ($) में है।
तो मैं क्या कर सकता हूं ताकि नए @ स्थान पर टैप करने से सी में सही पंक्ति का चयन किया जा सके?
=======
कुछ कोड के साथ संपादित करें:
इस कोड कंटेनर बी में मुझे क्या करना है यह बी के फ्रेम का एक बहुत ही सीधे आगे एनीमेशन है। self.view कंटेनर बी के UIView है।
स्टोरीबोर्ड के माध्यम से सभी दृश्य स्क्रीन पर हैं ("अन्य" कंटेनर छुपा हुआ है)। अन्य कंटेनर बी
// this code basically aligns the "other" container to the right/"offscreen" of
// Container B. Yes extending beyond the frame of B, but this part works fine
CGRect otherContainerFrame = self.otherContainerView.frame;
otherContainerFrame.origin.x = CGRectGetMaxX(self.view.frame);
[self.otherContainerView setFrame:otherContainerFrame];
[self.otherContainerView setHidden:NO];
// I'm going move Container B by the width of the "other" view
float offset = CGRectGetWidth(self.otherContainerView.frame);
CGRect frame = self.view.frame;
frame.origin.x -= offset;
[UIView animateWithDuration:.35
animations:^{
[self.view setFrame:frame];
}
];
का एक सबव्यूव है कृपया मुझे बताएं कि आप कौन सा कोड देखना चाहते हैं।
बहुत अच्छा विवरण है, लेकिन मुझे लगता है कि हम कोड आप दिखाने के लिए और करने के लिए अपने कंटेनर चेतन करने के लिए उपयोग देखने की जरूरत इस समस्या को हल करें ... – Beppe
@ बेप, मैंने एनीमेशन के लिए कोड जोड़ा। सुझाव के लिए – David