2009-10-13 43 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];