这涉及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];
}
答案 0 :(得分:5)
我找到了解决方案。这种行为似乎确实是iPhoneOS 3.2,因为Apple在iPhoneOS 3.2中为UITableView添加了一个backgroundView属性。
我尝试了[myTableView.backgroundView removeFromSuperView],而UITableView只是将其替换为另一个。
相反,我的解决方案是添加:
myTableView.backgroundView.hidden = YES;