[转]iPhone中UITableViewController控件背景设置的完美方案
最近有些时间闲下来,给大家一起共享iPhone开发心得。
如题大家在百度搜索肯定能搜出一些答案,不过经我自己测试发现仍有一些地方不足,下面一一说明这个问题:
首先是采用
self.tableView.backgroundColor= [UIColorcolorWithPatternImage:[UIImageimageNamed:@"blue_body.png"]];
但是效果很不如人意,如果你使用分组表格的情况下,圆角上会有黑边框,而且每个单元格左右两侧都会重新进行平铺图片效果;
然后网上又有人提出如下解决方法:
UIView*backgroundView = [[[UIViewalloc]initWithFrame:self.view.frame]autorelease];
backgroundView.backgroundColor= [UIColorcolorWithPatternImage:[UIImageimageNamed:@"blue_bg.png"]];
UITableView*tableTemp =self.tableView;
self.view= backgroundView;
[self.viewaddSubview:tableTemp];
意思就是在控件的底层视图上j加一个背景视图,然后把表格视图添加到里面,这种方法可以ji解决上述中出现de的背景效果不好看的功能,但是却破坏了UITableViewController的内部组织,你可以在添加完背景视图后使用
NSLog(@"tableView:%@ view:%@",self.tableView,self.view);
进行验证,结果发现tableView属性为null,这会导致你之后使用tableView的不方便性,而且还有一个比较头疼的问题,就是如果你的单元格里面存着可编辑的输入文本框,你还得自行处理其弹出键盘时对文本框w位置的调整,防止文本框被挡住,这样会引入一系列的问题。
综上所述,我们可以使用一个非常简单的方法解决,如下:
UIView*backView = [[[UIViewalloc]initWithFrame:self.view.frame]autorelease];
backView.backgroundColor= [UIColorcolorWithPatternImage:[UIImageimageNamed:@"blue_body.png"]];
self.tableView.backgroundView= backView;
该方法屡试不爽,嘿嘿,和各位分享,谢谢
引自:http://hi.baidu.com/angelmeng86/blog/item/ae5cd467cb8a273aaa184c38.html