您的位置:首页 > 其它

【转载】iphone九宫格界面实现

2011-04-02 21:21 323 查看
转自:http://www.ieliwb.com/iphone-nine-box/

 

看到CocoaChina很多同学在问,其实很简单,我这是用图片堆砌实现的九宫格,分享如下:

效果图:



核心就这2个方法:

//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:mobileController animated:YES];
break;
//其他几个控制器类似
}

}


 

九宫格背景修改可以这样实现:

 

- (void)loadView {
UIImageView *contentView = [[UIImageView alloc] initWithFrame:[[UIScreenmainScreen] applicationFrame]];
[contentView setImage:[UIImage imageNamed:@"subview_9_bg.png"]];
[contentView setUserInteractionEnabled:YES];
self.view = contentView;
[contentView release];
}
 

UINavigationBar背景图片可以这样实现:

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"top_bg.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width,self.frame.size.height)];
}
@end
 

—-End—-

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iphone image action