2012-03-15 29 views
2

在我正在開發的iPad應用程序中,我想展示一個不滾動且不彈跳的UITableView(意思是試圖向上或向下滾動tableview並不顯示滾動和回彈效果)。我想這樣做的原因是UITableView包含固定數量的單元格,並在單元格數量(tableView:heightForRowAtIndexPath:)之間平均分配可見空間。不需要滾動。 UITableView和UIScrollView是用戶不需要知道的實現細節。如何在使用UITableViewController時實現非彈跳UITableView?

UIScrollView有一個布爾bounces屬性,我可以設置爲NO如果我可以訪問UIScrollView實例。

我期望UITableViewController的UITableView實例擁有UIScrollView的超級視圖。但是,在我的UITableViewController子類中,self.view.superviewself.tableView.superview都是零。我在我的UITableViewController的-initWithStyle:-viewDidLoad-viewWillAppear:方法中確定了這一點。

是否有另一種方式來訪問包含我的UITableView的UIScrollView?我想象這種技術會涉及最少的代碼,儘管從UITableViewController或UITableView沒有直接訪問UIScrollView實例。

或者我應該繼承UIViewController而不是UITableViewController,並且實例化一個UITableView不包含在UIScrollView中?或者我還忽略了另一個選項?

+0

可能重複的[禁用UITableView垂直反彈滾動時](http://stackoverflow.com/questions/2768673/disable-uitableview-vertical-bounces-when-滾動) – 2013-07-24 07:03:55

回答

3

UITableViewUIScrollView的子類,因此UITableView具有反彈屬性(UIScrollView具有的所有屬性)。
所以要取消反彈,您需要編寫self.tableView.bounces = NO;。取消滾動,self.tableView.scrollEnabled = NO; 當然你可以使用Interface Builder來設置這個屬性。

+0

此外,蘋果不鼓勵UIScrollViews內使用UIScrollViews,所以如果你在UIScrollView中有一個UITableView,你可能會看到奇怪的滾動行爲。 – iccir 2012-03-15 23:51:49

+0

謝謝;我沒想到這個!我還在Mac OS X上使用了NSTableView,它不是NSScrollView的子類。 – bneely 2012-03-15 23:52:37

+0

我將'self.tableView.bounces = NO;'和'self.tableView.scrollEnabled = NO;'添加到'-initWithStyle:',它效果很好! – bneely 2012-03-15 23:55:38

相關問題