2013-07-28 8 views
6

कैसे tableview में एक अनुभाग शीर्ष लेख का पूर्ण स्थिति प्राप्त करने के लिए?कैसे tableview में एक अनुभाग शीर्ष लेख का पूर्ण स्थिति प्राप्त करने के लिए?

मैं पहले से ही tableView:viewForHeaderInSection: का इस्तेमाल किया है शीर्षक की view.But पाने के लिए अब मैं करने की जरूरत है स्क्रीन में इस दृश्य की पूर्ण स्थिति प्राप्त करें। रिटर्न वैल्यू फ्रेम स्क्रीन में पूर्ण स्थिति नहीं है। मैंने पर्यवेक्षण को कॉल करने का भी प्रयास किया, लेकिन ऐसा लगता है कि यह काम नहीं करता है।

+0

वापसी मूल्य क्या है? लगता है जैसे आपको टेबलव्यू के ऑफसेट और टेबलव्यू की सामग्री ऑफसेट को ध्यान में रखना होगा (यदि सामग्री ऑफसेट होने पर मुझे पूरी तरह से यकीन नहीं है)। – JeffRegan

+0

मुझे बस स्क्रीन में सेक्शन हेडर की पूर्ण स्थिति प्राप्त करने की आवश्यकता है। लेकिन मुझे नहीं पता कि कैसे ... (तालिका दृश्य का उपयोग करना: viewForHeaderInSection: सही तरीका नहीं लगता है) – nicecafe42

+0

अंततः मैंने अपने अनुभाग में एक टैग सेट करके मेरी समस्या हल की हेडर का दृश्य, और इसे टैग के साथ प्राप्त करें। बहुत धन्यवाद ~ – nicecafe42

उत्तर

8

tableView:viewForHeaderInSection: प्रदर्शन के लिए एक शीर्ष लेख दृश्य बनाने के लिए एक UITableViewDelegate तरीका है। इसका मतलब यह है कि, दृश्य को दृश्य पदानुक्रम में जोड़ा गया है, जो आपके उद्देश्यों के लिए इसका फ्रेम बेकार है।

UIView *headerView = [tableView headerViewForSection:sectionIndex]; 
बजाय

की कोशिश करो। वहां से आप किसी अन्य दृश्य के समन्वय प्रणाली में दृश्य के संदर्भ प्राप्त करने के लिए लौटे हुए दृश्य पर निम्न विधियों का प्रयास कर सकते हैं:

[headerView convertRect:[headerView bounds] toView:[headerView window]]; 
+0

अंत में मैंने अपने अनुभाग हेडर के दृश्य में एक टैग सेट करके मेरी समस्या हल की, और इसे टैग के साथ प्राप्त किया। बहुत धन्यवाद ~ – nicecafe42

+0

[tableView rectForHeaderInSection: अनुभाग] – tettoffensive

0

यह मानते हुए कि अपने उच्च स्तर का परिदृश्य सीधे तालिका दृश्य है जो बदले में हेडर शामिल है शामिल हैं:

- (CGRect) getHeaderAbsoluteFrame : (UIView *)headerview :(UIView *)tableview 
{ 
    CGRect frame = headerview.frame; 
    CGRect tableFrame = tableview.frame; 

    float x = tableview. origin.x + headerview.frame.origin.x; 
    float y = tableview.frame.origin.y + headerview.frame.origin.y; 

    CGRect rect = CGRectMake (x,y,headerview.frame.size.width, headerview.frame.size.height); 
    return rect; 
} 
संबंधित मुद्दे