2012-07-24 2 views
0

이상한 문제가 있으며 어떤 원인인지 확실하지 않습니다.비정상적으로 작동하지 않는 스크롤 uitableview

myScrollView.contentSize = CGSizeMake(320 * count, myScrollView.frame.size.height); 

이 스크롤 뷰 내부에 하나의 테이블 (myTable에)있는 현재 페이지가 무엇인지 따라 업데이트 : 나는 (페이징을 사용하는) 알 수없는 폭이 가로 스크롤 볼 수 있습니다. scrollViewDidScroll 메서드에서 - int 페이지가 설정되고 pageControl (UIPageControl)이 업데이트 된 다음 뷰가 계속 표시되도록 테이블을 이동합니다. 테이블을 이동 한 후 데이터를 업데이트하고 테이블을 다시로드합니다.

- (void)scrollViewDidScroll:(UIScrollView *)sender { 
CGFloat pageWidth = myScrollView.frame.size.width; 
page = floor((tableScroll.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
pageControl.currentPage = page; 

[myTable setFrame:CGRectMake(tableScroll.contentOffset.x, 0, 320, 213)]; 
//[myTable bringSubviewToFront:tableScroll]; 
//[tableScroll bringSubviewToFront:self.view]; 

[self getMyData]; 
[myTable reloadData]; 

이 작업은 정상적으로 작동하며 스크롤 한 후 데이터가 업데이트되어 테이블이 표시됩니다. 내가 가지고있는 문제는 테이블의 모든 상호 작용이 손실된다는 것입니다. 셀의 단추를 클릭하거나 셀 자체를 클릭 할 수 없습니다. 상호 작용은 맨 첫 페이지에서만 작동합니다.

누군가가이 문제의 원인이나 해결 방법을 알고 있습니까? 건배

+0

버튼을 추가하고 동일한 문제가 발생하는지 확인해보십시오. 올바른 방향으로 나아갈 수 있도록 도와 주어야합니다. –

+0

테이블을 테스트하기 위해 didSelectRowAtIndexPath에 NSLog가 있습니다. UIScrollView에서도 단추를 만들었고 테이블과 똑같은 코드를 넣었고 여전히 작동합니다. '[testButton setFrame : CGRectMake (tableScroll.contentOffset.x, 0, testButton.frame.size.width, testButton.frame.size.height)]; ' – Patrick

+0

테이블 셀 안에 버튼이 있지만 그 후에는 작동하지 않습니다. 페이지 스 와이프 - 첫 번째 페이지에만 적용됨 (첫 번째 페이지로 돌아갈 때) – Patrick

답변

0

"myTable"은 UITableView라고 가정합니다. 그렇다면 문제가 - UITableView 자체를 UIScrollView 하위 클래스입니다 - 그래서 중첩 된 scrollViews 있습니다. 해결 방법은 UIScrollView in a scrollView입니다. 이 사이트의 scrollView에서 UIScrollView를 검색하면 더 많은 제안을 얻을 수 있습니다.

+0

"myTable"은 실제로 UITableView입니다. 재미있는 점은 스크롤 뷰에있는 뷰에 테이블 뷰가 있다는 것입니다. 사용자가 스크롤 할 때까지 모든 것이 올바르게 작동합니다. 이 테이블은 첫 페이지에있을 때만 작동합니다 - – Patrick

+0

이 움직일 때가 아닙니다. 따라서 scrollView -> view -> tableView (myTable)입니다. 왜 "보기"의 ​​크기를 scrollView 페이지로 변경 한 다음 tableView 프레임 (원점)을 업데이트 한 다음 해당 contentOffset을 업데이트하지 마십시오. 귀하의 tableView 실제로 감동을 받고 그래서 둘러싸는보기의 프레임 밖으로 생각 해요. "보기"에 제스처 인식기를 추가하고 스크롤 할 때보기가 닿아 있는지 확인하기 위해 일종의 터치를 기록 할 수 있습니다. –

+0

오 마이 !! 고마워요. 당신의 답은 저에게 그것을 고칠 수있는 방법을주었습니다. 정말 바보 같았습니다. 포함 된 뷰는 IBOutlet이 아니며 폭은 320px로 고정되었습니다. 난 그냥 uitableview의 뷰를 uiscrollview와 동일한 너비로 만들어야 만합니다. – Patrick