如何更改分组UITableView的边框颜色

时间:2010-04-10 07:20:01

标签: iphone iphone-sdk-3.2

这涉及iPhoneOS-sdk-3.2

我无法更改分组的UITableView的边框颜色。我可以很容易地改变单元格背景颜色,分隔符颜色,文本颜色,并且正确地修改圆角,即使用我选择的任何颜色突出显示。然而,尽管有许多不同的尝试,但周围的边界仍然是令人愤怒的灰色。

我已经阅读了我可以通过Google找到的所有相关帖子,更不用说stackoverflow了。我见过Mike Akers用于UITableViewCell剪辑的英雄PITA解决方案 - 这个问题已经解决了iPhoneOS 3.0并且它对边框没有帮助。

我尝试了基于编程和基于xib的解决方案,并且都提供了相同的结果。

我将分享下面的程序化版本:

我有一个UIViewController子类而不是UITableViewController子类充当UITableView委托 - 我选择了这条路线,因为我在iPad上编码,据说UITableViewController接管了整个屏幕。我的UIViewController子类的loadView方法:

- (void) loadView {
  self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
  [self.view release];
  self.view.backgroundColor = [UIColor blackColor];

  // add and configure UITableView                                                                                     
  CGRect tableViewRect = CGRectMake(0., 0., 256., 768.);

  myTableView = [[UITableView alloc] initWithFrame:tableViewRect style:UITableViewStyleGrouped];

  // set the tableview delegate to this object and the datasource to the datasource which has already been set          
  myTableView.delegate = self;
  myTableView.dataSource = self;

  myTableView.sectionIndexMinimumDisplayRowCount = 1;

  myTableView.backgroundColor = [UIColor clearColor];
  myTableView.separatorColor = [UIColor whiteColor];
  myTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;

  myTableView.opaque = NO;

  // add the table view to our background view                                                                          
  [self.view addSubview:myTableView];
  [myTableView release];
}

1 个答案:

答案 0 :(得分:5)

我找到了解决方案。这种行为似乎确实是iPhoneOS 3.2,因为Apple在iPhoneOS 3.2中为UITableView添加了一个backgroundView属性。

我尝试了[myTableView.backgroundView removeFromSuperView],而UITableView只是将其替换为另一个。

相反,我的解决方案是添加:

myTableView.backgroundView.hidden = YES;