2010-01-28 101 views
0

我的應用程序將在tableViews中使用稍厚的分隔線 - 約爲厚度的3倍。我已經在一些領域完成了這一點,將separatorStyle設置爲none,並使用包含我的粗分隔符的自定義背景自定義單元格backgroundView。有沒有辦法修改UITableView的分隔符單元?

此方法的問題是它只適用於實際行。因此,如果我有一個tableView填充整個屏幕,但只有兩行,那麼只有兩行將具有自定義分隔符。我一直使用的解決方法是創建空白單元格(具有自定義背景),只要實際行不填滿整個表格。但是,這種解決方法並不是很實用。

如果我可以修改默認分隔符的厚度,事情會簡單得多...有沒有辦法做到這一點,或類似的東西?

回答

2

好吧,我想通了。這其實很簡單,但有壞消息和好消息。壞消息是分隔符實際上是它們自己的視圖類作爲子視圖添加到tableView中,而這些類是Apple未公開的API的一部分。因此,他們對蘋果公司的任何修改都不會很好。

好消息是,您不需要對無證類進行任何操作以增加分隔線。您可以簡單地將自己的子視圖添加爲分隔符。就我個人而言,我寧願畫線,而不是使用子視圖機制(因爲所有新的子視圖可能會產生大的表格斷斷續續),但由於我們無法訪問_UITableViewSeparatorView,我會盡我所能得到:)

+4

我們如何創建自己的分隔符?您介意將代碼發佈到您的解決方案嗎? – Tony 2010-03-09 14:59:53

0

我已經回答了相關問題here.。進入drawRect方法,根據需要增加線寬。

請記住,這代碼是分組表,你必須修改代碼一點點的實現代碼如下(如果使用的是普通的表。)

希望這有助於。

感謝,

Madhup

+0

感謝您的迴應。然而,看着你的代碼,看起來你正在自定義一個UITableViewCell的背景。我的問題與即使numberOfRows = 0時出現在(普通)tableView上的分隔符有關。在這種情況下,cellForRowAtIndexPath永遠不會被調用,但tableView仍會繪製適當的分隔線。 你給了我一個想法,雖然...也許我可以自定義tableView的drawRect:方法,以便它在標準分隔線之上繪製更粗的線條。儘管如此,這可能最終導致太多的工作。 – iPhoneToucher 2010-01-28 18:23:55

相關問題