2015-04-01 11 views
5

मैं तालिका दृश्य डिबगिंग कर रहा हूँ और मेरी -viewDidLoad विधि में मेरे पास है:UITableView सामग्री ऑफसेट -64pt मुद्दा

<UITableView: 0x7b394600; frame = (0 0; 1024 768); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7983d2f0>; layer = <CALayer: 0x79836ca0>; contentOffset: {0, 0}> 

लेकिन जब मैं फ्रेम और सामग्री की जांच -viewDidAppear विधि में ऑफसेट:

<UITableView: 0x7ab79c00; frame = (0 0; 1024 768); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7998f700>; layer = <CALayer: 0x7998f560>; contentOffset: {0, -64}> 

मैं पता नहीं कैसे टेबल ऑफसेट है -64 ऑफसेट के लिए।

विधियों के दृश्य का सिर्फ अनुक्रम होता है और फिर दृश्य दिखाई देता है लेकिन सामग्री मेरे लिए जादुई रूप से बदल जाती है।

कोई कारण क्या हो सकता है? कि मैं अपने तालिका देखें के रूप में यह स्थानांतरण के बिना होना चाहिए

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    _theTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 

    _theTableView.dataSource = self; 
    _theTableView.delegate = self; 

    [self.view addSubview:_theTableView]; 

    _theTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 

    self.title = @"File Manager"; 
} 

मैं नेविगेशन पट्टी, लेकिन अजीब:

यह मेरी viewDidLoad है। तो सही दिखता है कि मैं शीर्ष सेल देखता हूं और जब मैं नीचे स्क्रॉल करता हूं तो मुझे अंतिम सेल दिखाई देता है। यहां तक ​​कि संकेतक भी मुझसे कहता है कि सामग्री ऑफ़सेट 0 है। यदि मैं सेट सामग्री ऑफसेट {0, 0} को मजबूर करता हूं तो ऐसा लगता है कि पहला सेल नेविगेशन बार के नीचे जाता है और लंबवत संकेतक शीर्ष से नहीं शुरू होता है लेकिन कुछ पैडिंग के बारे में 64 pt है, लेकिन यह अजीब है ।

मुझे लगता है कि यह स्टेटस बार और नेविगेशन बार की वजह से है। लेकिन अगर हार्डकोडेड मेरा ऑफ़सेट और फ्रेम बनाता है, तो यह मेरी मदद नहीं करता है। प्रणाली की तरह लगता है यह मेरे लिए स्वचालित रूप से फार्म करता =)

+0

क्या आप Autolayout का उपयोग कर रहे हैं? यदि हां, तो आप TopSpacetoSuperview की बाधा जोड़ सकते हैं तो – parvind

+0

@parvind जांचें मैंने लेआउट का भी उपयोग किया है लेकिन ऐसा लगता है कि अभी भी वाई -64 pt है। असल में मैं इसे लॉग में देखता हूं, दृश्यमान सबकुछ अच्छा दिखता है। लेकिन जब मैं स्क्रॉल करने का प्रयास करता हूं तो मुझे 0 के करीब होने पर मेरी सामग्री ऑफ़सेट की तुलना करने की आवश्यकता होती है, लेकिन सामग्री ऑफसेट -64 का प्रारंभिक बिंदु और फिर मुझे –

+0

की बजाय -64 pt के आधार पर मेरी चीजों की तुलना करना चाहिए: दो नोट इस पोस्ट के शीर्ष पर लॉग * दो अलग-अलग 'UITableView '* हैं - पते अलग हैं! – ravron

उत्तर

5

इस डिफ़ॉल्ट व्यवहार है, automaticallyAdjustsScrollViewInsets पर गौर:

डिफ़ॉल्ट मूल्य हाँ, जो दृश्य नियंत्रक के जवाब में अपनी स्क्रॉल दृश्य सन्निवेश वाली समायोजित करने के लिए अनुमति देता है स्टेटस बार, नेविगेशन बार, और टूलबार या टैब बार द्वारा खपत स्क्रीन क्षेत्रों। यदि आप स्क्रॉल व्यू इन्सेट एडजस्टमेंट प्रबंधित करना चाहते हैं, तो 0 पर सेट करें, जैसे दृश्य पदानुक्रम में एक से अधिक स्क्रॉल व्यू हैं।

... और iOS 7 UI Transition Guide में अन्य संबंधित चीजें।

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