2013-04-16 3 views
0

아래로 스크롤하는 내 테이블보기에 문제가 있습니다. 솔루션에 대한 스택 오버플로를 검색하려고 시도했지만 아무 도움이되지 않습니다.uitable보기 모달보기 컨트롤러를 닫은 후 아래로 스크롤 문제

다음은 내가 가지고있는 것입니다. 사용자가 맨 아래로 스크롤 할 때마다 여분의 셀을로드하고 있다는 테이블 뷰가 있습니다. 데이터가 나는 테이블을 새로 고치고 크기를 증가 [self.tableView reloadData]를 호출하고있어 인터넷 연결을 통해 성공적으로로드됩니다

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

    if (indexPath.row == ([self.tableView numberOfRowsInSection:0] - 1)) 
     //load more data.. 
} 

후 다음과 같이 나는 그것을했다.

여기에 문제가 있습니다. 사용자가 셀을 선택하면 상세보기 컨트롤러가 표시됩니다. 나는 세부 사항보기를 제시하기 전에 테이블이 내부의 초기 셀 수만 보여주는 원래 크기로 빨리 크기가 조정된다는 것을 알아 챘다.

세부 정보보기가 닫히면 테이블보기가 원래 크기로 돌아오고 (willDisplayCell: forRowAtIndexPath:에로드 된 데이터를 맞추지 않음) 모든 데이터가 끝날 때까지 아래로 스크롤 할 수는 없습니다.

나는 이러한 모든 점을 확인,하지만 아무것도 할 수 없습니다 : 테이블보기에서

  • 데이터가 viewWillAppear 방법에 [self.tableView reloadData]를 호출하여 다시로드됩니다.
  • 테이블보기의 delegatedataSource이 컨테이너보기 컨트롤러에 올바르게 설정됩니다.
  • 보기가 다시 나타날 때 tableView: numberOfRowsInSection:을 호출했는데 내가 가지고있는 모든 데이터의 정확한 수를 반환하고 있지만 테이블의 크기가 총 데이터에 맞지 않는 문제가 있습니다.

    CGRect frame = self.tableView.frame; 
    frame.size.height = self.tableView.contentSize.height; 
    self.tableView.frame = frame; 
    

    을하지만 아무것도 변경되지 않습니다 :

는 또한 다음과 같이 테이블 프레임의 크기를 조정하려고 노력했다.

어떤 도움을 주시겠습니까 ??

업데이트 : didSelectRowAtIndexPath에서 나는 특별한 일을하지 않습니다. 코드는 간단하다 : UIView의에있는 UIScrollView의

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    DetailsViewController *vc=[[DetailsViewController alloc]initWithNibName:@"DetailsViewController" bundle:nil]; 
    [self presentViewController:vc animated:YES completion:nil]; 
} 
+0

우편 번호를 스크롤 :'당신이 특별한 일을하는 경우. – viral

답변

0
  1. 인출 객체있는 UIScrollView에서 jQuery과의
  2. 인출 객체
  3. 는 재산권
  4. 가있는 UIScrollView의 위임 방법 물품 jQuery과의 = flase를 scrollenabled 설정

    - (void) scrollViewDidScroll:(UIScrollView *)scrollView 
    { 
         if (scrollView == scrollObj) { 
           CGFloat scrollPosition = scrollObj.contentSize.height - scrollObj.frame.size.height - scrollObj.contentOffset.y; 
           if (scrollPosition < 30) { 
             if ((!spinnerBottom.isAnimating) || intGetDataCallRunning == 0) { 
               //[spinnerBottom startAnimating]; 
               //[self getLoginFollowingUserVideosCall]; 
               //run WebService call and after that reload the table or if you have data exists then only reload the table 
               //and after reloading table follow step no 5. 
             } 
           } 
         } 
    } 
    
  5. 테이블의 테이블 설정 높이를 다시로드 didSelectRowForCellAtIndexPath`에 대한

    tblVideo.frame = CGRectMake(0, 0, 320, tblVideo.contentSize.height); 
    scrollObj.contentSize = CGSizeMake(320,tblVideo.contentSize.height+60); 
    
+0

당신은 스크롤보기 안에 테이블을 배치해야한다는 것을 의미합니까 ?? – Roula

+0

예, 스크롤 안에 표를 추가하십시오. 3 단계는 매우 중요합니다. – DharaParekh

+0

위의 문제를 해결했지만 불행히도 테이블에 데이터가 전혀 표시되지 않았습니다. 게다가이 답변에 설명 된대로 스크롤보기 안에 테이블보기를 배치하지 않는 것이 좋습니다. http : //stackoverflow.com/questions/15127525/issue-with-row-selection-uitableview-inside-uiscrollview 마지막으로 다음 단계를 수행하여 문제가 해결되었습니다. 1- tableView.contentSize를 이전에 저장된 viewWillAppear 값으로 설정. 2- viewWillAppear에서 스크롤 위치를 이전에 저장된 값으로 설정. 3- 호출 [tableView setNeedsDisplay] 4- 호출 [tableView reloadData] – Roula

관련 문제