2012-03-15 1 views
2

내가 개발중인 iPad 응용 프로그램에서 스크롤하지 않고 튀어 오지 않는 UITableView를 보여주고 싶습니다. 즉, 위 또는 아래로 tableview를 스크롤하려고하면 스크롤 및 스냅 백 효과가 표시되지 않습니다. 그 이유는 UITableView가 고정 된 수의 셀을 포함하고 있으며 보이는 셀을 균등하게 셀 수 (tableView:heightForRowAtIndexPath:)로 나누기 때문입니다. 스크롤 할 필요가 없습니다. UITableView 및 UIScrollView는 사용자가 인식 할 필요가없는 구현 세부 사항입니다.UITableViewController를 사용할 때 어떻게 튀어 나오지 않는 UITableView를 얻을 수 있습니까?

UIScrollView에는 bounces 속성이 있습니다.이 속성은 UIScrollView 인스턴스에 액세스 할 수있는 경우 NO으로 설정할 수 있습니다.

UITableViewController의 UITableView 인스턴스에 UIScrollView의 수퍼 뷰가 있어야합니다. 그러나 내 UITableViewController 하위 클래스 내에서 self.view.superviewself.tableView.superview 모두 nil입니다. 나는 내 UITableViewController 내 -initWithStyle:, -viewDidLoad-viewWillAppear: 메서드 내에서 결정했습니다.

내 UITableView가 포함 된 UIScrollView에 액세스하는 다른 방법이 있습니까? UITableViewController 또는 UITableView에서 UIScrollView 인스턴스에 대한 직접 접근자가 없지만이 기술에는 최소한의 코드가 필요하다고 생각합니다.

또는 UITableViewController 대신 UIViewController를 서브 클래스 화하고 UIScrollView에 묶이지 않은 UITableView를 인스턴스화해야합니까? 아니면 간과 한 또 다른 옵션이 있습니까?

+0

중복 가능성 [안 jQuery과 수직 반송 스크롤 할 때 (http://stackoverflow.com/questions/2768673/disable-uitableview-vertical-bounces-when-scrolling) –

답변

3

UITableViewUIScrollView의 서브 클래스이므로 UITableView은 bounces 속성 (모든 속성이 UIScrollView)을가집니다.
반송을 취소하려면 self.tableView.bounces = NO;을 작성해야합니다. 스크롤을 취소하려면 self.tableView.scrollEnabled = NO; 물론 Interface Builder를 사용하여이 속성을 설정할 수 있습니다.

+0

는 또한 애플 UIScrollViews 내부 UIScrollViews을 단념하여, UIScrollView 내부에 UITableView가 있으면 이상한 스크롤 동작이 나타날 수 있습니다. – iccir

+0

감사합니다. 나는 이것을 기대하지 않았다! 또한 NSScrollView 하위 클래스가 아닌 Mac OS X에서 NSTableView를 사용했습니다. – bneely

+0

'-initWithStyle :'에'self.tableView.bounces = NO;'와'self.tableView.scrollEnabled = NO;'를 추가했습니다. – bneely

관련 문제