ReloadData जब UITableView गायब हो गया

मेरे पास कुछ तत्वों के साथ UIScrollView है। उनमें से एक UITableView है। मुझे इस तालिका दृश्य को छिपाने की जरूरत है, इसकी सामग्री पुनः लोड करें और फिर से दिखाएं लेकिन जब मैं [self.tableView reloadData] बना देता हूं; तालिका कभी प्रकट नहीं होती है, यह अभी भी छिपी हुई है।

- (void)hideTableMotivesAndReloadData
{
    NSLog(@"Hiding table and reloading data");

   //Hiding tableView
    [UIView animateWithDuration:0.5 animations:^{
        self.tableMotives.alpha = 0;
        self.textComments.alpha = 0;
    } completion:^(BOOL finished) {

        [self.tableMotives reloadData];

        [UIView animateWithDuration:1.5 delay:1.2 options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseOut
        animations:^{
            self.tableMotives.alpha = 1;
            self.textComments.alpha = 1;
        } completion:^(BOOL finished) {
            //
        }];

    }];
}

कोई सुझाव? धन्यवाद!

संपादित:

मैंने reloadData कॉल से पहले और उसके बाद NSLog (self.tableMotives.description) जोड़ा, यह परिणाम है:

पहले:

बाद:

; layer = ; contentOffset: {0, 0}>

मैं दूसरे समापन ब्लॉक में फ्रेम को मैन्युअल रूप से बदलता हूं:

CGRect frame = self.tableMotives.frame;
frame.origin.y = 1000;
frame.size.height = 800;
[self.tableMotives setFrame:frame];

और तालिका दिखाई दी ...

संपादित:

धन्यवाद दोस्तों, आपके सुझावों से पहले मैंने पाया कि जब reloadData को tableView कहा जाता है तो StoryBoard मूल स्थिति पर फिर से उबलाया जाता है। ऐसा लगता है कि उसका फ्रेम खो गया है और फ्रेम को storyboard में निर्दिष्ट किया गया है। कोई इसे समझता है?

0
हैलो, हाँ मैंने कोशिश की है। जब मैं reloadData को कॉल करता हूं तो केवल तालिका नहीं दिखाएं
जोड़ा लेखक Fran Fox, स्रोत
इयान, हाँ, जब मैं पुनः लोडडेटा लेता हूं और उसके बाद भी डेटा होता है तो काम करता है।
जोड़ा लेखक Fran Fox, स्रोत
नीलको, मैंने कोशिश की है। अभी भी काम नहीं कर रहा है। यह बहुत अजीब बात है, हर बार जब मैं reloadData को कॉल करता हूं, तो तालिका दृश्य गायब हो जाता है
जोड़ा लेखक Fran Fox, स्रोत
आदित्य, सामग्री वहाँ है। मैंने अपना प्रश्न अपडेट किया। टेबलव्यू यहां है लेकिन जब मैं reloadData को कॉल करता हूं तो यह स्टोरीबोर्ड स्थिति में खुद को रीसेट कर देता है
जोड़ा लेखक Fran Fox, स्रोत
क्या आपने दूसरे कोड ब्लॉक में reloadData कॉल को स्थानांतरित करने का प्रयास किया है?
जोड़ा लेखक neilco, स्रोत
आप कह रहे हैं कि यदि आप पुनः लोडडेटा कॉल लेते हैं, तो यह अपेक्षित काम करता है? क्या आप सुनिश्चित हैं कि तालिका दृश्य वास्तव में छुपा हुआ है, और न केवल खाली है?
जोड़ा लेखक Ian Henry, स्रोत
क्या आपने अल्फा को 1 के बजाय 1.0f पर सेट करने का प्रयास किया था?
जोड़ा लेखक scollaco, स्रोत
क्या आपको यकीन है कि पुनः लोड करने के बाद टेबलव्यू में सामग्री है?
जोड़ा लेखक Adithya, स्रोत

3 उत्तर

टेबलव्यू की छिपी हुई संपत्ति का प्रयास करें

[self.tableMotives setHidden:YES];

और रीलोड के बाद कोई भी छिपा हुआ सेट करें

[self.tableMotives setHidden:NO];
0
जोड़ा
धन्यवाद लेकिन काम नहीं :(
जोड़ा लेखक Fran Fox, स्रोत

इसे इस्तेमाल करे

- (void)hideTableMotivesAndReloadData
{
NSLog(@"Hiding table and reloading data");

// Hiding tableView
[UIView animateWithDuration:0.5 animations:^{
    self.tableMotives.alpha = 0;
    self.textComments.alpha = 0;
} completion:^(BOOL finished) {

    [UIView animateWithDuration:1.5 delay:1.2 options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseOut
    animations:^{
        self.tableMotives.alpha = 1;
        self.textComments.alpha = 1;
        [self.tableMotives reloadData];
    } completion:^(BOOL finished) {
        //
    }];
}];
}
0
जोड़ा
धन्यवाद आदित्य, एक ही परिणाम :( मैंने सवाल संपादित किया।
जोड़ा लेखक Fran Fox, स्रोत

इसे इस्तेमाल करे। यह मेरे लिए काम किया।

आशा करता हूँ की ये काम करेगा... :)

- (void)hideTableMotivesAndReloadData
{
    NSLog(@"Hiding table and reloading data");

   //Hiding tableView
    [UIView animateWithDuration:0.5 animations:^{
    self. tableMotives.alpha = 0;
    self.textComments.alpha = 0;
    } completion:^(BOOL finished) {
        [self.tableMotives reloadData];
    }];
}

- (void)showTableMotives{
    NSLog(@"Showing table and reloading data");

   //Showing tableView
    [UIView animateWithDuration:1.5 animations:^{
        self.tableMotives.alpha = 1;
        self.textComments.alpha = 1;
    } completion:^(BOOL finished) {
    }];
}

-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Some other code if needed
    if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){
        //end of loading
        [self showTableMotives];
    }
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 24;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath     *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
    if (!cell) {
        cell = [[UITableViewCell alloc] init];
    }
    cell.textLabel.text = [NSString stringWithFormat:@"Row %d", indexPath.row];

    return cell;
}
0
जोड़ा
धन्यवाद amanhuipg लेकिन अभी भी काम नहीं कर रहा है। मुझे लगता है कि मेरे पास एक सुराग है जिसे मैंने अपना प्रश्न अपडेट किया।
जोड़ा लेखक Fran Fox, स्रोत