2009-10-13 70 views
25

我有一個問題,其中我的UITableView(組風格)有一個黑色的「尖」上方的圓角。UITableView組風格上的黑色角落

我設立的tableview的背景下,像這樣:

[meetingTableView setBackgroundColor:[[UIColor alloc] initWithPatternImage:[[UIImage alloc] initWithContentsOfFile:@"background.png"]]]; 

而我的表視圖最終看起來像這樣:

black pointy edge on rounded corner http://papernapkin.org/pastebin/resource/images/imageEntryId/6487

任何想法如何,我可以擺脫那些黑點?

+3

只是爲了檢查,它工作正常,當你指定顏色,像'[的UIColor groupTableViewBackgroundColor] [的UIColor blueColor]'或' '?此外,你可能會造成內存泄漏:你應該使用'[UIColor colorWithPatternImage:]'來代替。 – 2009-10-13 01:59:16

回答

54

我有同樣的問題。 當我通過xib設置清除顏色時,我有後面的角落 解決方案是通過代碼設置它!

(同樣的問題與界面生成器存在網頁視圖)

+0

當沒有其他任何事情時,這對我有用。將IB中的背景顏色設置爲分組的表格視圖顏色(默認)。然後在代碼中,將顏色設置爲clearColor。我也有標記爲opaque = NO和clearsContextBeforeDrawing = NO的單元格,但是直到我通過代碼添加了clearColor – Bdebeez 2010-12-22 20:01:23

+0

才爲我工作。謝謝胺。 – iOSDevSF 2011-08-15 04:51:57

+0

也爲我工作:)但它是一個奇怪的行爲.. – 2011-09-09 05:37:15

1

爲了避免黑角,你必須確保UITableViewCells不是不透明的。它看起來像使用自定義樣式表格單元格,而不透明的默認值是YES。如果表格單元格是在XIB文件中設置的,請轉至Interface Builder並取消選中不透明覆選框。或使用setOpaque:NO二傳手改變價值。

由於表格單元格視圖仍具有矩形框架,即使使用圓角,單元格視圖也不是實際的表格視圖導致這些黑角。

+0

目前不在我的Mac上,所以我稍後會檢查。但是,如果它們不透明,表格單元不會變得透明,因此不是白色的? – ThaDon 2009-10-13 14:17:53

+0

不透明與alpha值<1.0不是一回事;這對繪圖系統來說更是一種優化,讓操作系統知道它是否需要做更昂貴的合成,或者可以假設視圖充滿整個框架。 – 2009-10-20 13:24:31

+0

這對我來說在所有視圖中的非紅色背景上都適用。當白色的黑角重新出現。 (無論如何,在模擬器中。) – 2010-12-19 22:15:30

3

萬一你還不知道,你there's another neat technique可以使用,使自定義背景的UITableViews:

不太一樣簡單設置爲你做的背景,但它給你更多靈活性,並可以擴展到任何表格大小。

0

我的猜測是它與您在自定義表格視圖單元格中執行的操作有關。您可能想要將單元格背景顏色設置爲[UIColor clearColor]

0

我認爲你應該設置你的表的背景顏色爲clearColor並用背景圖像初始化你的視圖。

那麼它絕對不會顯示黑色的角落。但是也不要忘記設置你的背景顏色爲白色

16

試試這個在您的控制器的viewDidLoad方法:

meetingTableView.backGroundColor = [UIColor ClearColor]; 

希望它能幫助!

0

上面的投票答案(將tableView的背景設置爲[UIColor clearColor])可能不適用於你,如果你像我一樣,從來不使用UITableViewController,而是將UITableView放入UIViewController中。

在這種情況下,它不是tableView需要清晰的背景,而是包含tableview的視圖。

這並不直觀,但對我很有用。在Interface Builder中你可以設置父視圖的背景色清除顏色,或者你可以用做相同的代碼在viewDidLoad中:

self.view.backgroundColor = [UIColor clearColor]; 

我猜對黑角的原因是一些有關內部圖形優化,並設置背景明確修復它。

+0

這個答案在iOS4上適用於我(在iOS5上很好) – 2012-02-16 12:27:29

2

也許如果你把yourTableViewOutlet.backgroundView=nil;

+0

簡單的解釋會很棒。 – 2012-11-05 10:49:25

3

,如果你設置的背景顏色,清除顏色XIB你會得到UITableView的集團式的黑色角落。

相反試試這個代碼上的UITableView組中刪除黑角風格

tableViewObject.backgroundColor=[UIColor clearColor];