給UITableView增加一個好看的背景能為應用程序增色不少,並能促進app的銷售,但是隨便增加一個背景圖片會史你的app更加丑陋。
- //This method produces odd artifacts in the background image:
- ATableViewController *yourTableViewController = [[ATableViewController alloc] initWithStyle:UITableViewStyleGrouped];
- yourTableViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TableViewBackground.png"]];
這種方法直接設置tableview的背景色,效果不佳。
正確的方式:在tableview後面放置一個背景視圖,並將tableview設為透明色。
- UIView *backgroundView = [[UIView alloc] initWithFrame: window.frame];
- backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TableViewBackground.png"]];
- [window addSubview:backgroundView];
-
- yourTableViewController = [[ATableViewController alloc] initWithStyle:UITableViewStyleGrouped];
- yourTableViewController.view.backgroundColor = [UIColor clearColor];
- [window addSubview:yourTableViewController.view];
在用代碼產生的tableViewcontroller中,可以通過loadview方法設置
- - (void)loadView {
- [super loadView];
- UIImageView *v = [[[UIImageView alloc] initWithFrame:self.view.bounds] autorelease];
- [v setImage:[UIImage imageNamed:@"table_background.png"]];
- [self.view addSubview:v];
-
-
- self.tableView = [[[UIView alloc] initWithFrame:self.view.bounds] autorelease];
- [self.tableView setBackgroundColor:[UIColor clearColor]];
- [self.view addSubview:self.tableView];
- }
在用nib初始化的tableViewcontroller中,可以的在初始化實例前設置
- // create the view controller from your nib
- MyViewController *vc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
- vc.tableView.backgroundColor = [UIColor clearColor];
-
- // create the background
- UIImageView *iv = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"background.png"]];
- iv.contentMode = UIViewContentModeCenter;
- iv.userInteractionEnabled = TRUE;
-
- [navigationController pushViewController:vc animated:YES];
-
- // put the background behind the tableview
- [vc.tableView.superview addSubview:iv];
- [iv addSubview:vc.tableView];
-
- // don't forget to release your view controller & image view!
- [vc release];
- [iv release];