分享

IOS自适应前段库

 流浪者lyz 2015-11-25

文本为投稿文章,作者:Jekyll
Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X。Masonry是一个用代码写iOS或OS界面的库,可以代替Auto layout。Masonry的github地址:https://github.com/SnapKit/Masonry

本章内容

- Masonry配置

- Masonry使用

- Masonry实例

Masonry配置

- 推荐使用pods方式引入类库,pod 'Masonry',若不知道pod如何使用,情况我的另一篇文章: 提高ios开发效率的工具

- 引入头文件 #import 'Masonry.h'

Masonry使用讲解

mas_makeConstraints 是给view添加约束,约束有几种,分别是边距,宽,高,左上右下距离,基准线。添加过约束后可以有修正,修正有offset(位移)修正和multipliedBy(倍率)修正。

语法一般是 make.equalTo or make.greaterThanOrEqualTo or make.lessThanOrEqualTo + 倍数和位移修正。

注意点1: 使用 mas_makeConstraints方法的元素必须事先添加到父元素的中,例如[self.view addSubview:view];

注意点2: masequalTo 和 equalTo 区别:masequalTo 比equalTo多了类型转换操作,一般来说,大多数时候两个方法都是 通用的,但是对于数值元素使用mas_equalTo。对于对象或是多个属性的处理,使用equalTo。特别是多个属性时,必须使用equalTo,例如 make.left.and.right.equalTo(self.view);

注意点3: 注意到方法with和and,这连个方法其实没有做任何操作,方法只是返回对象本身,这这个方法的左右完全是为了方法写的时候的可读性 。make.left.and.right.equalTo(self.view);和make.left.right.equalTo(self.view);是完全一样的,但是明显的加了and方法的语句可读性 更好点。

Masonry初级使用例子

// exp1: 中心点与self.view相同,宽度为400*400-(void)exp1{    UIView *view = [UIView new];    [view setBackgroundColor:[UIColor redColor]];    [self.view addSubview:view];    [view mas_makeConstraints:^(MASConstraintMaker *make) {         make.center.equalTo(self.view);         make.size.mas_equalTo(CGSizeMake(400,400));    }];}//exp2: 上下左右边距都为10-(void)exp2{    UIView *view = [UIView new];    [view setBackgroundColor:[UIColor redColor]];    [self.view addSubview:view];    [view mas_makeConstraints:^(MASConstraintMaker *make) {        make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));        //  make.left.equalTo(self.view).with.offset(10);        //  make.right.equalTo(self.view).with.offset(-10);        //  make.top.equalTo(self.view).with.offset(10);        //  make.bottom.equalTo(self.view).with.offset(-10);    }];}//exp3 让两个高度为150的view垂直居中且等宽且等间隔排列 间隔为10-(void)exp3{    UIView *view1 = [UIView new];    [view1 setBackgroundColor:[UIColor redColor]];    [self.view addSubview:view1];    UIView *view2 = [UIView new];    [view2 setBackgroundColor:[UIColor redColor]];    [self.view addSubview:view2];    [view1 mas_makeConstraints:^(MASConstraintMaker *make) {        make.centerY.mas_equalTo(self.view.mas_centerY);        make.height.mas_equalTo(150);        make.width.mas_equalTo(view2.mas_width);        make.left.mas_equalTo(self.view.mas_left).with.offset(10);        make.right.mas_equalTo(view2.mas_left).offset(-10);    }];    [view2 mas_makeConstraints:^(MASConstraintMaker *make) {        make.centerY.mas_equalTo(self.view.mas_centerY);        make.height.mas_equalTo(150);        make.width.mas_equalTo(view1.mas_width);        make.left.mas_equalTo(view1.mas_right).with.offset(10);        make.right.equalTo(self.view.mas_right).offset(-10);    }];}

Masonry高级使用例子1

iOS计算器使用Masorny布局:

2Djeo.jpg

//高级布局练习 ios自带计算器布局-(void)exp4{    //申明区域,displayView是显示区域,keyboardView是键盘区域    UIView *displayView = [UIView new];    [displayView setBackgroundColor:[UIColor blackColor]];    [self.view addSubview:displayView];    UIView *keyboardView = [UIView new];    [self.view addSubview:keyboardView];    //先按1:3分割 displView(显示结果区域)和 keyboardView(键盘区域)    [displayView mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(self.view.mas_top);        make.left.and.right.equalTo(self.view);        make.height.equalTo(keyboardView).multipliedBy(0.3f);    }];    [keyboardView mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(displayView.mas_bottom);        make.bottom.equalTo(self.view.mas_bottom);        make.left.and.right.equalTo(self.view);    }];    //设置显示位置的数字为0    UILabel *displayNum = [[UILabel alloc]init];    [displayView addSubview:displayNum];    displayNum.text = @'0';    displayNum.font = [UIFont fontWithName:@'HeiTi SC' size:70];    displayNum.textColor = [UIColor whiteColor];    displayNum.textAlignment = NSTextAlignmentRight;    [displayNum mas_makeConstraints:^(MASConstraintMaker *make) {        make.left.and.right.equalTo(displayView).with.offset(-10);        make.bottom.equalTo(displayView).with.offset(-10);    }];    //定义键盘键名称,?号代表合并的单元格    NSArray *keys = @[@'AC',@'+/-',@'%',@'÷'                     ,@'7',@'8',@'9',@'x'                     ,@'4',@'5',@'6',@'-'                     ,@'1',@'2',@'3',@'+'                     ,@'0',@'?',@'.',@'='];    int indexOfKeys = 0;    for (NSString *key in keys){        //循环所有键        indexOfKeys++;        int rowNum = indexOfKeys %4 ==0? indexOfKeys/4:indexOfKeys/4 +1;        int colNum = indexOfKeys %4 ==0? 4 :indexOfKeys %4;        NSLog(@'index is:%d and row:%d,col:%d',indexOfKeys,rowNum,colNum);        //键样式        UIButton *keyView = [UIButton buttonWithType:UIButtonTypeCustom];        [keyboardView addSubview:keyView];        [keyView setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];        [keyView setTitle:key forState:UIControlStateNormal];        [keyView.layer setBorderWidth:1];        [keyView.layer setBorderColor:[[UIColor blackColor]CGColor]];        [keyView.titleLabel setFont:[UIFont fontWithName:@'Arial-BoldItalicMT' size:30]];        //键约束        [keyView mas_makeConstraints:^(MASConstraintMaker *make) {            //处理 0 合并单元格            if([key isEqualToString:@'0'] || [key isEqualToString:@'?'] ){                if([key isEqualToString:@'0']){                    [keyView mas_makeConstraints:^(MASConstraintMaker *make) {                        make.height.equalTo(keyboardView.mas_height).with.multipliedBy(.2f);                        make.width.equalTo(keyboardView.mas_width).multipliedBy(.5);                        make.left.equalTo(keyboardView.mas_left);                        make.baseline.equalTo(keyboardView.mas_baseline).with.multipliedBy(.9f);                    }];                }if([key isEqualToString:@'?']){                    [keyView removeFromSuperview];                }            }            //正常的单元格            else{                make.width.equalTo(keyboardView.mas_width).with.multipliedBy(.25f);                make.height.equalTo(keyboardView.mas_height).with.multipliedBy(.2f);                //按照行和列添加约束,这里添加行约束                switch (rowNum) {                    case 1:                    {                        make.baseline.equalTo(keyboardView.mas_baseline).with.multipliedBy(.1f);                        keyView.backgroundColor = [UIColor colorWithRed:205 green:205 blue:205 alpha:1];                    }                        break;                    case 2:                    {                        make.baseline.equalTo(keyboardView.mas_baseline).with.multipliedBy(.3f);                    }                        break;                    case 3:                    {                        make.baseline.equalTo(keyboardView.mas_baseline).with.multipliedBy(.5f);                    }                        break;                    case 4:                    {                        make.baseline.equalTo(keyboardView.mas_baseline).with.multipliedBy(.7f);                    }                        break;                    case 5:                    {                        make.baseline.equalTo(keyboardView.mas_baseline).with.multipliedBy(.9f);                    }                        break;                    default:                        break;                }                //按照行和列添加约束,这里添加列约束                switch (colNum) {                    case 1:                    {                        make.left.equalTo(keyboardView.mas_left);                    }                        break;                    case 2:                    {                        make.right.equalTo(keyboardView.mas_centerX);                    }                        break;                    case 3:                    {                        make.left.equalTo(keyboardView.mas_centerX);                    }                        break;                    case 4:                    {                        make.right.equalTo(keyboardView.mas_right);                        [keyView setBackgroundColor:[UIColor colorWithRed:243 green:127 blue:38 alpha:1]];                    }                        break;                    default:                        break;                }            }        }];    }}

本例子使用的baseline去控制高度位置,这似乎不是太准,如果想要精准控制高度位置,可以使用一行一行添加的方法,每次当前行的top去equelTo上一行的bottom。 给个提示:

for(遍历所有行)    for(遍历所以列)    //当前行约束根据上一行去设置    ......

下一个例子中,使用上面类似的方法

Masonry高级使用例子2

根据设计图,使用masonry布局:

步骤1

16.jpg

步骤2 

17.jpg

步骤1

 -(void)createUI{    UIView *titleView = [UIView new];    titleView.backgroundColor = [UIColor redColor];    UIView *caredView = [UIView new];    [self.view addSubview:caredView];    UIView *brifeView = [UIView new];    [self.view addSubview:brifeView];    //self.view    self.view.backgroundColor = [UIColor colorWithWhite:0.965 alpha:1.000];    //thrm    UIImageView *plantThrm = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'defalutPlantReferenceIcon']];    [self.view addSubview:plantThrm];    [plantThrm mas_makeConstraints:^(MASConstraintMaker *make) {        make.left.and.top.equalTo(self.view).with.offset(10);    }];    //title       [self.view addSubview:titleView];       UIImageView *bgTitleView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'bg-plant-reference-title']];    [titleView addSubview:bgTitleView];    [titleView mas_makeConstraints:^(MASConstraintMaker *make) {        make.right.equalTo(self.view.mas_right);        make.left.equalTo(plantThrm.mas_right).with.offset(20);        make.centerY.equalTo(plantThrm.mas_centerY);   }];    [bgTitleView mas_makeConstraints:^(MASConstraintMaker *make) {        make.edges.equalTo(titleView);    }];    UILabel *title = [[UILabel alloc]init];    title.textColor =  [UIColor whiteColor];    title.font = [UIFont fontWithName:@'Heiti SC' size:26];    title.text = _reference.name;    [titleView addSubview:title];    [title mas_makeConstraints:^(MASConstraintMaker *make) {        make.left.equalTo(titleView.mas_left).offset(10);        make.width.equalTo(titleView.mas_width);        make.centerY.equalTo(titleView.mas_centerY);    }];    //植物养护    UILabel *caredTitle = [[UILabel alloc]init];    caredTitle.textColor =  [UIColor colorWithRed:0.172 green:0.171 blue:0.219 alpha:1.000];    caredTitle.font = [UIFont fontWithName:@'Heiti SC' size:10];    caredTitle.text = @'植物养护';    [self.view addSubview:caredTitle];    [caredTitle mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(plantThrm.mas_bottom).with.offset(20);        make.left.and.right.equalTo(self.view).with.offset(10);        make.height.mas_equalTo(10);    }];    //将图层的边框设置为圆脚    caredView.layer.cornerRadius = 5;    caredView.layer.masksToBounds = YES;    //给图层添加一个有色边框    caredView.layer.borderWidth = 1;    caredView.layer.borderColor = [[UIColor colorWithWhite:0.521 alpha:1.000] CGColor];    caredView.backgroundColor = [UIColor whiteColor];    [caredView mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(caredTitle.mas_bottom).with.offset(5);        make.left.equalTo(self.view.mas_left).with.offset(10);        make.right.equalTo(self.view.mas_right).with.offset(-10);        make.height.equalTo(brifeView);    }];    //植物简介    UILabel *brifeTitle = [[UILabel alloc]init];    brifeTitle.textColor =  [UIColor colorWithRed:0.172 green:0.171 blue:0.219 alpha:1.000];    brifeTitle.font = [UIFont fontWithName:@'Heiti SC' size:10];    brifeTitle.text = @'植物简介';    [self.view addSubview:brifeTitle];    [brifeTitle mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(caredView.mas_bottom).with.offset(20);        make.left.and.right.equalTo(self.view).with.offset(10);        make.height.mas_equalTo(10);    }];    //将图层的边框设置为圆脚    brifeView.layer.cornerRadius = 5;    brifeView.layer.masksToBounds = YES;    //给图层添加一个有色边框    brifeView.layer.borderWidth = 1;    brifeView.layer.borderColor = [[UIColor colorWithWhite:0.521 alpha:1.000] CGColor];    brifeView.backgroundColor = [UIColor whiteColor];    [brifeView mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(brifeTitle.mas_bottom).with.offset(5);        make.left.equalTo(self.view.mas_left).with.offset(10);        make.right.equalTo(self.view.mas_right).with.offset(-10);        make.bottom.equalTo(self.view.mas_bottom).with.offset(-10);        make.height.equalTo(caredView);    }];}

完成之后如下图 步骤1

ZFqHcpm.jpg

步骤2,在上面的基础上,增加植物养护部分ui构造的代码,思想是,先构造出四行,然后根据每行单独构造出行样式。

//把块拆分为四行-(void)createIndexUIWithView:(UIView *)view{    //拆分四行    UIView *row1 = [UIView new];    UIView *row2 = [UIView new];    UIView *row3 = [UIView new];    UIView *row4 = [UIView new];    [view addSubview:row1];    [view addSubview:row2];    [view addSubview:row3];    [view addSubview:row4];    [row1 mas_makeConstraints:^(MASConstraintMaker *make) {        make.right.and.left.equalTo(view);        make.height.equalTo(view.mas_height).multipliedBy(0.25);        make.top.equalTo(view.mas_top);    }];    [row2 mas_makeConstraints:^(MASConstraintMaker *make) {        make.right.and.left.equalTo(view);        make.top.equalTo(row1.mas_bottom);        make.height.equalTo(view.mas_height).multipliedBy(0.25);    }];    [row3 mas_makeConstraints:^(MASConstraintMaker *make) {        make.right.equalTo(view.mas_right);        make.top.equalTo(row2.mas_bottom);        make.height.equalTo(view.mas_height).multipliedBy(0.25);        make.left.equalTo(view.mas_left);    }];    [row4 mas_makeConstraints:^(MASConstraintMaker *make) {        make.right.and.left.equalTo(view);        make.top.equalTo(row3.mas_bottom);        make.height.equalTo(view.mas_height).multipliedBy(0.25);    }];    [self createIndexRowUI:PlantReferenceWaterIndex withUIView:row1];    [self createIndexRowUI:PlantReferenceSumIndex withUIView:row2];    [self createIndexRowUI:PlantReferenceTemperatureIndex withUIView:row3];    [self createIndexRowUI:PlantReferenceElectrolyteIndex withUIView:row4];}//构造每行的UI-(void)createIndexRowUI:(PlantReferenceIndex) index withUIView:(UIView *)view{    //index标题    UILabel *indexTitle = [UILabel new];    indexTitle.font = [UIFont fontWithName:@'HeiTi SC' size:14];    indexTitle.textColor = [UIColor colorWithWhite:0.326 alpha:1.000];    [view addSubview:indexTitle];    [indexTitle mas_makeConstraints:^(MASConstraintMaker *make) {        make.left.equalTo(view.mas_left).with.offset(20);        make.centerY.equalTo(view.mas_centerY);    }];    switch (index) {        case PlantReferenceWaterIndex:        {            indexTitle.text = @'水分';            UIImageView * current;            for(int i=1;i<=5;i++){                if(i<_reference.waterIndex){                    current = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'icon_water_light']];                }else{                    current = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'icon_water_dark']];                }                [view addSubview:current];                //间距12%,左边留空30%                [current mas_makeConstraints:^(MASConstraintMaker *make) {                    make.left.equalTo(view.mas_right).with.multipliedBy(0.12*(i-1) +0.3);                    make.centerY.equalTo(view.mas_centerY);                }];            }        }              break;        case PlantReferenceSumIndex:        {            indexTitle.text = @'光照';            UIImageView * current;            for(int i=1;i<=5;i++){                if(i<_reference.temperatureIndex){                    current = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'icon_summer_light']];                }else{                    current = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'icon_summer_dark']];                }                [view addSubview:current];                //间距12%,左边留空30%                [current mas_makeConstraints:^(MASConstraintMaker *make) {                    make.left.equalTo(view.mas_right).with.multipliedBy(0.12*(i-1) +0.3);                    make.centerY.equalTo(view.mas_centerY);                }];            }        }              break;        case PlantReferenceTemperatureIndex:        {            indexTitle.text = @'温度';            UIImageView * current;            for(int i=1;i<=5;i++){                if(i<_reference.sumIndex){                    current = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'icon_temperature_light']];                }else{                    current = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'icon_temperature_dark']];                }                [view addSubview:current];                //间距12%,左边留空30%                [current mas_makeConstraints:^(MASConstraintMaker *make) {                    make.left.equalTo(view.mas_right).with.multipliedBy(0.12*(i-1) +0.3);                    make.centerY.equalTo(view.mas_centerY);                }];            }        }              break;        case PlantReferenceElectrolyteIndex:        {            indexTitle.text = @'肥料';            UIImageView * current;            for(int i=1;i<=5;i++){                if(i<_reference.electrolyteIndex){                    current = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'icon_electolyte_light']];                }else{                    current = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'icon_electolyte_dark']];                }                [view addSubview:current];                //间距12%,左边留空30%                [current mas_makeConstraints:^(MASConstraintMaker *make) {                    make.left.equalTo(view.mas_right).with.multipliedBy(0.12*(i-1) +0.3);                    make.centerY.equalTo(view.mas_centerY);                }];            }        }            break;        default:            break;    }}//在步骤1createui的基础上,做了一些微调。-(void)createUI{    self.title = _reference.name;    UIView *titleView = [UIView new];    UIView *caredView = [UIView new];    [self.view addSubview:caredView];    UITextView *brifeView = [UITextView new];    [self.view addSubview:brifeView];    //self.view    self.view.backgroundColor = [UIColor colorWithWhite:0.965 alpha:1.000];    //thrm    UIImageView *plantThrm = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'defalutPlantReferenceIcon']];    [self.view addSubview:plantThrm];    [plantThrm mas_makeConstraints:^(MASConstraintMaker *make) {        make.left.and.top.equalTo(self.view).with.offset(10);    }];    //title       [self.view addSubview:titleView];       UIImageView *bgTitleView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@'bg-plant-reference-title']];    [titleView addSubview:bgTitleView];    [titleView mas_makeConstraints:^(MASConstraintMaker *make) {        make.right.equalTo(self.view.mas_right);        make.left.equalTo(plantThrm.mas_right).with.offset(20);        make.centerY.equalTo(plantThrm.mas_centerY);   }];    [bgTitleView mas_makeConstraints:^(MASConstraintMaker *make) {        make.edges.equalTo(titleView);    }];    UILabel *title = [[UILabel alloc]init];    title.textColor =  [UIColor whiteColor];    title.font = [UIFont fontWithName:@'Heiti SC' size:26];    title.text = _reference.name;    [titleView addSubview:title];    [title mas_makeConstraints:^(MASConstraintMaker *make) {        make.left.equalTo(titleView.mas_left).offset(10);        make.width.equalTo(titleView.mas_width);        make.centerY.equalTo(titleView.mas_centerY);    }];    //植物养护    UILabel *caredTitle = [[UILabel alloc]init];    caredTitle.textColor =  [UIColor colorWithRed:0.172 green:0.171 blue:0.219 alpha:1.000];    caredTitle.font = [UIFont fontWithName:@'Heiti SC' size:10];    caredTitle.text = @'植物养护';    [self.view addSubview:caredTitle];    [caredTitle mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(plantThrm.mas_bottom).with.offset(20);        make.left.and.right.equalTo(self.view).with.offset(10);        make.height.mas_equalTo(10);    }];    //植物养护 数据    [self createIndexUIWithView:caredView];    //将图层的边框设置为圆脚    caredView.layer.cornerRadius = 5;    caredView.layer.masksToBounds = YES;    //给图层添加一个有色边框    caredView.layer.borderWidth = 1;    caredView.layer.borderColor = [[UIColor colorWithWhite:0.521 alpha:1.000] CGColor];    caredView.backgroundColor = [UIColor whiteColor];    [caredView mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(caredTitle.mas_bottom).with.offset(5);        make.left.equalTo(self.view.mas_left).with.offset(10);        make.right.equalTo(self.view.mas_right).with.offset(-10);        make.height.equalTo(brifeView);    }];    //植物简介    UILabel *brifeTitle = [[UILabel alloc]init];    brifeTitle.textColor =  [UIColor colorWithRed:0.172 green:0.171 blue:0.219 alpha:1.000];    brifeTitle.font = [UIFont fontWithName:@'Heiti SC' size:10];    brifeTitle.text = @'植物简介';    [self.view addSubview:brifeTitle];    [brifeTitle mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(caredView.mas_bottom).with.offset(20);        make.left.and.right.equalTo(self.view).with.offset(10);        make.height.mas_equalTo(10);    }];    //将图层的边框设置为圆脚    brifeView.layer.cornerRadius = 5;    brifeView.layer.masksToBounds = YES;    //给图层添加一个有色边框    brifeView.layer.borderWidth = 1;    brifeView.layer.borderColor = [[UIColor colorWithWhite:0.447 alpha:1.000] CGColor];    brifeView.backgroundColor = [UIColor whiteColor];    //文字样式//    brifeView.textColor = [UIColor colorWithWhite:0.352 alpha:1.000];//    brifeView.font = [UIFont fontWithName:@'HeiTi SC' size:12];    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];    paragraphStyle.lineHeightMultiple = 20.f;    paragraphStyle.maximumLineHeight = 25.f;    paragraphStyle.minimumLineHeight = 15.f;    paragraphStyle.alignment = NSTextAlignmentJustified;    NSDictionary *attributes = @{ NSFontAttributeName:[UIFont systemFontOfSize:12], NSParagraphStyleAttributeName:paragraphStyle, NSForegroundColorAttributeName:[UIColor colorWithWhite:0.447 alpha:1.000]};    //植物简介数据    //brifeView.text = _reference.brief;    brifeView.attributedText = [[NSAttributedString alloc] initWithString: _reference.brief attributes:attributes];    [brifeView mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.equalTo(brifeTitle.mas_bottom).with.offset(5);        make.left.equalTo(self.view.mas_left).with.offset(10);        make.right.equalTo(self.view.mas_right).with.offset(-10);        make.bottom.equalTo(self.view.mas_bottom).with.offset(-10);        make.height.equalTo(caredView);    }];}

完成之后如下图 步骤2


dOGITvg.jpg

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多