2012-05-15 2 views
2

프로그래밍 방식으로 UITableView를 만들었고 스크롤하지 않는다는 것을 알았습니다. 인터페이스 작성기를 사용하지 않고 프로그래밍 방식으로 UITableView를 만든 것은 이번이 처음입니다. 내보기를 스크롤 할 수 있도록 프로그래밍 방식으로 설정해야하는 속성이 있습니까? setBounces, setScrollEnabled, setAlwaysBounceVertical 시도했지만 아무 것도 작동하는 것. 어떤 아이디어라도 대단히 감사하겠습니다! 감사!UITableView 스크롤하지 않음 (iOS)

샘플 코드 다음의 TableView에

UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation]; 
CGFloat height = (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) ? 460 : 300; 
feed = [[UITableView alloc] initWithFrame:CGRectMake(0.0f, 44.0f, self.bounds.size.width, height - 44.0f)]; 
[feed setSeparatorColor:[UIColor colorWithRed:38.0f/255.0f green:43.0f/255.0f blue:63.0f/255.0f alpha:1.0f]]; 
[feed setBackgroundColor:[UIColor colorWithRed:48.0f/255.0f green:53.0f/255.0f blue:73.0f/255.0f alpha:1.0f]]; 
[feed setDataSource:self]; 
[feed setDelegate:self]; 
[feed setHidden:YES]; 
[feed setBounces:YES]; 
[feed setScrollEnabled:YES]; 
[feed setAlwaysBounceVertical:YES]; 
[feed setDelaysContentTouches:YES]; 
[self addSubview:feed]; 
+0

코드 샘플을 게시 할 수 있습니까? – Matt

+0

코드 예제를 추가했습니다 ... – user1118042

+0

실제로 스크롤해야하는 UITableView에 충분한 콘텐츠가 있습니까? –

답변

1

봅니다 설정 delaysContentTouches.

+0

setDelaysContentTouches : YES를 내 코드에 추가했는데 아무 것도하지 않았습니다 ... – user1118042

0

스크롤하기 위해 ScrollViews의 contentSize 세트가 있어야합니다.

당신의 set 메소드의 대부분을

그냥 기본값을 설정하는 ...

[feed setContentSize:[feed frame].size]; 
+0

물론 테이블 뷰에도 적용되지 않습니다. – Darren

+0

TableView는 ScrollView의 하위 클래스입니다. – Steve

+0

Darren은 tableview의 내용 크기가 heightForRowAtIndexPath, numberOfRowsInSection, 표 머리글, 섹션 머리글, 바닥 글보기 등의 크기를 통해 암시 적으로 설정된다고 말합니다. contentSize는 "보이는"프레임이 아닌 내용의 크기입니다. in feed.frame.size – Matt

0

내가 코멘트에 넣고하려고하지만 너무 긴, 그래서 그들은 필요하지 않습니다 : 당신의 contentSize을 설정하십시오 코드의 최종 버전. 또한, 당신이 tableview을 만들고 subview로 추가하는 방법에 아무런 문제가 없습니다. 이로 인해 버그가 주변 코드에 있다고 믿을 수 있습니다. 아마도 슈퍼 뷰의 속성과 관련이있을 수 있습니다. "완벽하게 작동한다고"말하면 셀을 선택하고 didSelectRow ... 메서드를 호출 할 수 있습니까? 주석 처리를 해보고, 필요한 뼈 (init, addSubview, numberOfRows는 0, cellForRow는 nil을 리턴, delegate와 datasource 이외는 아무것도 설정하지 않음)로 tableview를 제거 할 수 있습니다. 그렇게하면 아무 것도 사용하지 않고도 스크롤하고 튀는 빈 tableview가 제공됩니다.

+0

우수 아이디어, 내가이 기회를 줄거야. – user1118042

0

나는 이것이 낡은 스레드라는 것을 알고 있지만, iOS 시뮬레이터에서이 문제를보고 계십니까? 내 테이블보기에서 동일한 문제가 있었지만 시뮬레이터에서 올바른 동작을 사용하지 않고 있음이 밝혀졌습니다. Can't get UITableView list to scroll in iPhone simulator을 참조하십시오.

0

저는 Xamarin Studio를 사용하여 iOS 시뮬레이터를 시작합니다. Mac을 다시 시작해야했습니다. 이제 테이블 뷰가 다시 스크롤됩니다. Xamarin 또는 iOS 시뮬레이터 만 다시 시작되었습니다.