看到很多同学在问,其实很简单,我这是用图片堆砌实现的九宫格,分享如下:
效果图:
核心就这2个方法:
[plain]
//Power by ieliwb.com - (void)viewDidLoad { [super viewDidLoad]; NSArray* imageNames = [NSArray arrayWithObjects: @"ico_mobile.png", @"ico_idcard.png", @"ico_postcode.png", @"ico_flight.png", @"ico_translate.png", @"ico_phone.png", @"ico_car.png", @"ico_health.png", @"ico_bjxm.png", nil]; UIButton *Btn; for (int i=0; i<9; i++) { CGRect frame; Btn = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; [Btn setImage:[UIImage imageNamed:[imageNames objectAtIndex: i]]forState:UIControlStateNormal];//设置按钮图片 Btn.tag = i; frame.size.width = 59;//设置按钮坐标及大小 frame.size.height = 75; frame.origin.x = (i%3)*(59+32)+40; frame.origin.y = floor(i/3)*(75+24)+40; [Btn setFrame:frame]; [Btn setBackgroundColor:[UIColor clearColor]]; [Btn addTarget:self action:@selector(btnPressed:)forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:Btn]; [Btn release]; } } //响应按钮事件 -(void)btnPressed:(id)sender{ UIButton *Btn = (UIButton *)sender; int index = Btn.tag; switch (index) { case 0: if(mobileController==nil) mobileController = [[MobileController alloc]init]; [self.navigationController pushViewController:mobileControlleranimated:YES]; break; //其他几个控制器类似 } } 九宫格背景修改可以这样实现: