UITableViewController背景更换【转】

BOSS比较喜欢风格统一,所以,在android上预先设计制作好的表单格式,到了IOS上,Boss也要一摸一样的。那身为小弟的我,自然没有什么可以推脱的了。

不过在网上找了半天,总算找到了一个简单又方便的方法。

来源:http://www.cnblogs.com/xuyuanwei/archive/2011/12/19/2292973.html

最近有些时间闲下来,给大家一起共享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;

以上内容放在viewDidLoad当中就可以使用了。果然很方便啊。

该方法屡试不爽,嘿嘿,和各位分享,谢谢

引自:http://hi.baidu.com/angelmeng86/blog/item/ae5cd467cb8a273aaa184c38.html

posted @ 2012-08-30 16:23  小龙酸菜  阅读(382)  评论(0编辑  收藏  举报