2013-04-28 80 views
8

我在代碼中創建一個UITableViewController並將其推到導航堆棧頂部。 它的表格視圖旨在顯示文本項目的簡單列表。UITableView contentInset使表視圖水平滾動除了垂直

我需要一些contentInset添加到我在我的UITableViewController的init方法添加

self.tableView.contentInset = UIEdgeInsetsMake(7.0f, 5.0f, 7.0f, 5.0f); 

但是我的表視圖,當我加載表視圖似乎左右contentInset實際上已經捉襟見肘了我的表格視圖的寬度減去10.我現在看到一個小的水平滾動區域。我不想在我的桌子視圖上進行任何水平滾動。如果我刪除了contentInset代碼,我的表格視圖的行爲很簡單,即只是提供垂直滾動。我如何保持這種狀態,但使用我的contentInset?我試着在viewWillAppear中將contentSize.width減少10,但它沒有效果。

這似乎是重複的,但沒有可以接受的答案:UITableView ContentInsets scrolling content horizontally

在模擬我都標有虛線所需contentInset ---

enter image description here

感謝。

+1

你試圖達到在表視圖周圍有邊框的效果嗎? – Wain 2013-04-28 07:50:18

+0

是的,確切地說。我將添加一個屏幕截圖... – 2013-04-28 07:54:45

+0

邊界讓我想到了..我嘗試使用tableView.layer來設置borderColor和Width,但是,我失去了單元格邊框,因爲tableView邊框覆蓋了該邊框。有沒有乾淨的方式讓它像模擬一樣工作?謝謝閱讀! – 2013-04-28 08:07:21

回答

4

我最終設置了頂部和底部的插圖。爲了實現左右嵌入的外觀和感覺,我創建了與屏幕一樣寬的自定義單元。但是實際的單元格內容僅限於自定義單元格內略窄的子視圖。因此,在子視圖的左側和右側留下了空間。

0

也許你應該將scrollView的bounces屬性設置爲YES。 並且不要設置contentInset。

+0

如何顯示contentInsets? – 2013-04-28 08:23:22

+0

你不應該使用contentInsets生成邊框,如果你這樣做,你的邊框將顯示在視圖之外! – yirenjun 2013-04-28 08:43:27

0

看起來你需要做兩件事情:

  1. 添加表視圖的容器視圖,使表視圖frame更薄(添加的左右邊界)。
  2. 僅在頂部和底部添加contentInset
+0

感謝您的回覆。我不得不繼承UITableViewController的子類,因此在其視圖(tableView)中添加一個容器看起來太複雜了。我通過自定義單元格視圖來獲得視覺插頁。 – 2013-05-14 21:30:40

0

另一種方式可以工作,是,而不是設置tableView框,您可以設置單元格的contentView框架,這樣的事情,

- (void) layoutSubviews 
{ 
    [super layoutSubviews]; 

    CGRect frame = self.contentView.frame; 
    frame.size.width = frame.size.width * 0.9; //90% of total width 
    frame.origin.x = self.center.x - (frame.size.width/2); //center the contentView 
    self.contentView.frame = frame; 
} 

的使用上面,U可以添加任何左或者右側或左側填充你需要的細胞。並且所有子視圖將被添加到contentView,因此在那裏沒有問題。

快樂編碼..!