iOS用VFL语言实现屏幕适配

来源:互联网 发布:红帽linux语言改为中文 编辑:程序博客网 时间:2024/06/05 01:15

界面显示效果如下:


布局文件的编写:

//初始化视图控件- (void)initView{    /**     *  子视图     */    subView = [[UIView alloc] init];    //添加到视图    [self.view addSubview:subView];        //禁用autoresizing    subView.translatesAutoresizingMaskIntoConstraints = NO;    //添加约束    NSArray *viewW = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[subView]-0-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"subView":subView}];    [self.view addConstraints:viewW];    NSLayoutConstraint *viewH = [NSLayoutConstraint constraintWithItem:subView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:subView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0];    [self.view addConstraint:viewH];    NSLayoutConstraint *subViewCenter = [NSLayoutConstraint constraintWithItem:subView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0];    [self.view addConstraint:subViewCenter];        /**     *  子视图中的九个按钮     */    btn1 = [UIButton buttonWithType:UIButtonTypeSystem];    btn2 = [UIButton buttonWithType:UIButtonTypeCustom];    btn3 = [UIButton buttonWithType:UIButtonTypeCustom];    btn4 = [UIButton buttonWithType:UIButtonTypeCustom];    btn5 = [UIButton buttonWithType:UIButtonTypeCustom];    btn6 = [UIButton buttonWithType:UIButtonTypeCustom];    btn7 = [UIButton buttonWithType:UIButtonTypeCustom];    btn8 = [UIButton buttonWithType:UIButtonTypeCustom];    btn9 = [UIButton buttonWithType:UIButtonTypeCustom];        //添加按钮到数组    btnArray = @[btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9];    //添加按钮    for (UIButton *btn in btnArray) {        //将所有按钮添加到视图        [subView addSubview:btn];        //禁用所有按钮的autoresizing        btn.translatesAutoresizingMaskIntoConstraints = NO;    }        //横排    NSArray *btn123 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-1-[btn1]-1-[btn2(==btn1)]-1-[btn3(==btn1)]-1-|" options:NSLayoutFormatAlignAllTop metrics:nil views:@{@"btn1":btn1,@"btn2":btn2,@"btn3":btn3}];    [subView addConstraints:btn123];    NSArray *btn456 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-1-[btn4]-1-[btn5(==btn4)]-1-[btn6(==btn4)]-1-|" options:NSLayoutFormatAlignAllTop metrics:nil views:@{@"btn4":btn4,@"btn5":btn5,@"btn6":btn6}];    [subView addConstraints:btn456];    NSArray *btn789 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-1-[btn7]-1-[btn8(==btn7)]-1-[btn9(==btn7)]-1-|" options:NSLayoutFormatAlignAllTop metrics:nil views:@{@"btn7":btn7,@"btn8":btn8,@"btn9":btn9}];    [subView addConstraints:btn789];    //竖排    NSArray *btn147 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-1-[btn1]-1-[btn4(==btn1)]-1-[btn7(==btn1)]-1-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"btn1":btn1,@"btn4":btn4,@"btn7":btn7}];    [subView addConstraints:btn147];    NSArray *btn258 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-1-[btn2]-1-[btn5(==btn2)]-1-[btn8(==btn2)]-1-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"btn2":btn2,@"btn5":btn5,@"btn8":btn8}];    [subView addConstraints:btn258];    NSArray *btn369 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-1-[btn3]-1-[btn6(==btn3)]-1-[btn9(==btn3)]-1-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"btn3":btn3,@"btn6":btn6,@"btn9":btn9}];    [subView addConstraints:btn369];        /**     *  返回按钮     */    returnBtn = [[UIButton alloc] init];    [returnBtn setTitle:@"返回主界面" forState:UIControlStateNormal];    [returnBtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];    returnBtn.titleLabel.font = [UIFont boldSystemFontOfSize:40.0f];    [returnBtn addTarget:self action:@selector(returnBack) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:returnBtn];    //禁用autoresizing    returnBtn.translatesAutoresizingMaskIntoConstraints = NO;    //返回按钮的宽度    NSArray *returnBtnW = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-40-[returnBtn]-40-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"returnBtn":returnBtn}];    [self.view addConstraints:returnBtnW];    //返回按钮的垂直位置    NSLayoutConstraint *returnBtnV = [NSLayoutConstraint constraintWithItem:returnBtn attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:0.2 constant:0];    [self.view addConstraint:returnBtnV];        /**     *  计时标签     */    timeLabel = [[UILabel alloc] init];    timeLabel.text = @"00:00";    [self.view addSubview:timeLabel];    //禁用autoresizing    timeLabel.translatesAutoresizingMaskIntoConstraints = NO;    timeLabel.font = [UIFont boldSystemFontOfSize:30];    timeLabel.textAlignment = NSTextAlignmentCenter;    //计时标签的宽度    NSArray *timeLabelW = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[timeLabel]-0-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"timeLabel":timeLabel}];    [self.view addConstraints:timeLabelW];    //计时标签的垂直位置    NSLayoutConstraint *timeLabelV = [NSLayoutConstraint constraintWithItem:timeLabel attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1.8 constant:0];    [self.view addConstraint:timeLabelV];}

其他一些方法就不再写了,很简单

0 0
原创粉丝点击