2016-05-26 2 views
0

У меня есть вид, который я хочу прокрутить вверх по моей прокрутке в таблице.Как сделать вид на прокрутку в ios

enter image description here

это вид, который будет перемещаться вверх всякий раз, когда я прокрутка моего TableView. но это то, что происходит, когда я это сделать:

enter image description here

Как и можно видеть, что есть черное пространство между моей целевой точки зрения и Tableview.

на моем scrollViewDidScroll я сделал это:

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 указывает верх и heightConstraint высота ограничение parentOfPhotoview которая желаемый вид !!

Что мне не хватает ???

ответ

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

Пробуйте выше строку кода. Может быть, ваша проблема будет решена.

+0

Это будет просто сделать ваш заголовок таблицы и строки не имеют высоты, которая не имеет ничего общего с навигационной панелью – mashdup

+0

Между моим целевым представлением и табличным представлением есть черное пространство. Так что это может быть причиной. –

+0

Черное пространство вызвано тем, что панель навигации больше не существует и, таким образом, не имеет вида. Отсюда и черный. – mashdup

0

Вы должны установить свой контент таблицы. Ввести верхнюю, имеющую ту же высоту, что и navigationBar. Черный - это когда вообще нет взглядов. Таким образом, вам не нужно беспокоиться об изменении высоты таблицыView и т. Д.

Однако я бы предложил использовать AutoLayout.

Также, если вы хотите, чтобы parentPhotoView плавал в верхней части таблицы. Вы устанавливаете это в виде заголовка в разделе.

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

И убедитесь, что вы установили высоту заголовка в секции, чтобы быть таким же, как parentPhotoView

+0

Навигационная панель есть, мой целевой вид находится под ним, и я использую autolayout. – Fay007

+0

Нет ли способа подтолкнуть мой Tableview, чтобы заполнить пустое пространство? @mashdup – Fay007

Смежные вопросы