xcode 九宫格纯代码实现

#import "ViewController.h"

@interface ViewController ()
//定义一个UIView容器
@property(nonatomic,strong)UIView * view1;
//定义一个UIButton按钮
@property(nonatomic,strong)UIButton *btn;
//定义一个UIButton按钮
@property(nonatomic,strong)UIButton *btn2;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    /**
     创建按钮
     */
    //给view容器设置背景颜色
    self.view.backgroundColor=[UIColor lightGrayColor];
    //初始化按钮并且给按钮设置位置
    self.btn=[[UIButton alloc]initWithFrame:CGRectMake(28, 28, 50, 50)];
    //按钮普通状态下的图片
    [self.btn setBackgroundImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal];
    //按钮失效状态下的图片
    [self.btn setBackgroundImage:[UIImage imageNamed:@"add_disabled"] forState:UIControlStateDisabled];
    //按钮高亮状态下的图片
    [self.btn setBackgroundImage:[UIImage imageNamed:@"add_highlighted"] forState:UIControlStateHighlighted];
    [self.view addSubview:self.btn];
    /**
     创建按钮
     */
    self.btn2=[[UIButton alloc]initWithFrame:CGRectMake(286, 28, 50, 50)];
    [self.btn2 setBackgroundImage:[UIImage imageNamed:@"remove"] forState:UIControlStateNormal];
    [self.btn2 setBackgroundImage:[UIImage imageNamed:@"remove_disabled"] forState:UIControlStateDisabled];
    [self.btn2 setBackgroundImage:[UIImage imageNamed:@"remove_highlighted"] forState:UIControlStateHighlighted];
    //往容器中加按钮
    [self.view addSubview:self.btn2];
    //设置容器的初始化状态
    self.btn2.enabled=NO;
    /**
     创建容器
     */
    //创建一个新的容器并且初始化位置
    self.view1=[[UIView alloc]initWithFrame:CGRectMake(39, 104, 297, 325)];
    //设置背景颜色
    self.view1.backgroundColor=[UIColor whiteColor];
    //加入父容器中
    [self.view addSubview:self.view1];
    /**
     按钮点击事件
     */
    [self.btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
    [self.btn2 addTarget:self action:@selector(btn2Click) forControlEvents:UIControlEventTouchUpInside];
    
    
}
/**
 添加
 */
-(void)btnClick{
    //显示的行数的个数
    NSUInteger colsPerRow=3;
    //获取容器加载的个数
    NSUInteger index=self.view1.subviews.count;
    //容器的宽
    CGFloat appW=70;
    //容器的高
    CGFloat appH=90;
    //计算容器的行
    NSUInteger col=index%colsPerRow;
    //计算容器的列
    NSUInteger row=index/colsPerRow;
    //计算容器的间距值
    CGFloat appMarginX=(self.view1.frame.size.width-colsPerRow*appW)/(colsPerRow-1);
    //计算容器的X的位置
    CGFloat appX=(appW+appMarginX)*col;
    //容器的Y值
    CGFloat appMarginY=20;
    //计算容器的Y的位置
    CGFloat appY=(appH+appMarginY)*row;
    
    //创建容器
    UIView *shopView=[[UIView alloc]init];
    //设置容器的位置
    shopView.frame=CGRectMake(appX, appY, appW, appH);
    //调试使用的背景颜色
//    shopView.backgroundColor=[UIColor redColor];
    //加载到父容器中
    [self.view1 addSubview:shopView];
    
    //创建图片容器
    UIImageView * imgView=[[UIImageView alloc]init];
    //给图片容器添加图片
    imgView.image=[UIImage imageNamed:@"danjianbao"];
    //给图片容器初始化位置
    imgView.frame=CGRectMake(0, 0, appW, appW);
    [shopView addSubview:imgView];
    //创建文字容器并且初始化位置
    UILabel * lab=[[UILabel alloc]initWithFrame:CGRectMake(0, appW, appW, appH-appW)];
    //设置文字
    [lab setText:@"单肩包"];
    //设置居中对齐
    lab.textAlignment=NSTextAlignmentCenter;
    //设置文本的阴影色彩和透明度
    lab.shadowColor=[UIColor colorWithWhite:0.667 alpha:0.333];
    //设置倾斜角度
    lab.shadowOffset=CGSizeMake(1.0, 1.0);
    //加入容器中
    [shopView addSubview:lab];
    
    /**
     设置按钮状态
     */
    self.btn2.enabled=YES;
    self.btn.enabled=(self.view1.subviews.count<9);
    
}
/**
 删除
 */
-(void)btn2Click{
    //从最后删除
    [ self.view1.subviews.lastObject removeFromSuperview ];
    /**
     设置按钮状态
     */
    self.btn.enabled=YES;
    self.btn2.enabled=(self.view1.subviews.count>0);

    
}




@end

图片资源:

posted @ 2016-06-02 11:04  与格律上  阅读(322)  评论(0)    收藏  举报