美文网首页
实现界面布局根据阿拉伯语、波斯语等RTL语言而反转

实现界面布局根据阿拉伯语、波斯语等RTL语言而反转

作者: 趣go | 来源:发表于2018-03-21 17:28 被阅读0次

    1. 实现依据:

    根据国家使用习惯不同表示的意思不同

    NSLayoutAttributeLeading:在习惯由左向右看的地区,相当于NSLayoutAttributeLeft;在习惯从右至左看的地区,相当于NSLayoutAttributeRight ;

    NSLayoutAttributeTrailing:在习惯由左向右看的地区,相当于NSLayoutAttributeRight;在习惯从右至左看的地区,相当于NSLayoutAttributeLeft ;

    2. 代码规范

    2.1:使用系统aotuLayout框架时规范如下;

    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:50]];

    此代码示例是label处于self.view最左边的布局。

    Attribute参数根据1的依据应该使用NSLayoutAttributeLeading

    注意:代码中凡是居某控件的左边Attribute参数便填NSLayoutAttributeLeading,居某控件的右边Attribute参数便填NSLayoutAttributeTrailing。

    2.2:使用Masonry第三方框架布局规范如下:

    [labelLL mas_makeConstraints:^(MASConstraintMaker *make) {

            make.leading.equalTo(labelL.mas_trailing).offset(10);

            make.top.equalTo(labelL);

    }];

    此段代码是labelLL位置为labelL左边间距10的布局。

    根据1的依据应使用make.leading确定labelLL的左边位置。

    同理:如果是确定右边位置应使用make.trailing。

    3. 控件自动大小

    3.1 UI设计规范:考虑多语言翻译文本长度过长问题,设计UI时应考虑界面上下左右可延伸。

    3.2 自动大小代码规范:

    [labelL mas_makeConstraints:^(MASConstraintMaker *make) {

            make.leading.mas_equalTo(0);

            make.top.mas_equalTo(200);

            make.width.mas_greaterThanOrEqualTo(@60);//至少宽60

            make.width.mas_lessThanOrEqualTo(@160);//至多宽160

            make.height.mas_greaterThanOrEqualTo(@30);//至少高30

    }];

    此段代码是labelL的位置为处于self.View的最左边,距离self.View上边界200的位置,宽高根据文字自动大小,宽最大160,最小60,高最小60.

    相关文章

      网友评论

          本文标题:实现界面布局根据阿拉伯语、波斯语等RTL语言而反转

          本文链接:https://www.haomeiwen.com/subject/eiagqftx.html