2016-05-26 15 views
0

Scrolling gegangen bin Ich habe eine Ansicht, die ich auf meinem Tableview Scrollen nach oben scrollen möchte.Wie mache ich eine Ansicht in ios

enter image description here

dies ist die Ansicht, die nach oben scrollen, wenn ich meine Tableview verschiebe. aber das ist, was passiert, wenn ich das tun:

enter image description here

Wie u kann sehen, dass es ein schwarzer Raum zwischen meinem gezielten Blick und dem Tableview.

auf meinem scrollViewDidScroll i tat dies:

CGPoint offset = scrollView.contentOffset; 
    self.counter = 0; 
    CGRect bounds = scrollView.bounds; 



    CGSize size = scrollView.contentSize; 
    UIEdgeInsets inset = scrollView.contentInset; 
    float y = offset.y + bounds.size.height - inset.bottom; 
    float h = size.height; 
    float reload_distance = 10; 


    float scrollViewHeight = scrollView.frame.size.height; 
    float scrollContentSizeHeight = scrollView.contentSize.height; 
    float scrollOffset = scrollView.contentOffset.y; 
    self.tableData.contentInset = UIEdgeInsetsZero; 

    if (scrollOffset == 0) 
    { 
     [self.topView removeFromSuperview]; 

     [[self navigationController] setNavigationBarHidden:NO animated:YES]; 


     [self changeHeight:48]; 
     self.parentOfPhotoview.frame =CGRectMake(0, 0, self.parentOfPhotoview.frame.size.width, self.heightConstraint.constant); 

    } 
    else if(scrollOffset>2) 
    { 

     //[[self navigationController] setNavigationBarHidden:YES animated:YES]; 
     //[self.view addSubview:_topView]; 
     if(self.heightConstraint.constant<2) 
     { 
      [self changeHeight:0]; 
     } 
     else 
     { 
     [self changeHeight:48-(scrollView.contentOffset.y)]; 
     self.parentOfPhotoview.frame = CGRectMake(0, -scrollView.contentOffset.y, self.parentOfPhotoview.frame.size.width, self.heightConstraint.constant); 
      self.parentOfPhotoview.backgroundColor = [UIColor whiteColor]; 
     NSLog(@"%f",self.heightConstraint.constant); 
     } 




    } 

    else if (scrollOffset + scrollViewHeight == scrollContentSizeHeight) 
    { 
     // then we are at the end 
    } 

scrolloffset 0 zeigt an oberen und der heightConstraint ist die Höhe des Constraint parentOfPhotoview die die gewünschte Ansicht ist !!

Was fehlt mir?

Antwort

0
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
return 0; 
} 
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ 
return 0; 
} 

Testen Sie die obige Codezeile. Vielleicht ist dein Problem gelöst.

+0

Dies sind nur Ihr Tabellenkopf und Zeilen haben keine Höhe machen, die nichts mit der Navigationsleiste zu tun – mashdup

+0

Zwischen meiner Zielansicht und der Tabellenansicht befindet sich ein schwarzer Bereich. Das könnte also ein Grund sein. –

+0

Der schwarze Bereich wird dadurch verursacht, dass die Navigationsleiste nicht mehr da ist und somit KEINE Sicht hat. Daher das Schwarze. – mashdup

0

Sie sollten Ihr Table contentInset so einstellen, dass das Top die gleiche Höhe wie die navigationBar hat. Das Schwarz ist, wenn es überhaupt keine Ansichten gibt. Auf diese Weise brauchen Sie sich keine Gedanken über die Höhe des TableView usw. zu machen.

Allerdings würde ich AutoLayout empfehlen.

Auch wenn Sie möchten, dass parentPhotoView oben auf der Tabelle schwebt. Sie legen das in der Ansicht für die Überschrift in Abschnitt fest.

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

Und stellen Sie sicher, dass Sie die Höhe des Kopfes in Abschnitt wird das gleiche wie die parentPhotoView

+0

Navigationsleiste ist da, meine gezielte Ansicht ist knapp darunter, und ich verwende Autolayout. – Fay007

+0

gibt es keine Möglichkeit, meinen Tableview nach oben zu schieben, um den leeren Platz aufzufüllen? @mashdup – Fay007

Verwandte Themen