美文网首页
NS_OPTIONS简单用法

NS_OPTIONS简单用法

作者: 山野武夫 | 来源:发表于2021-02-18 14:44 被阅读0次

    NS_OPTIONS  主要用于多选选项,表示一个选项集合

    我们看下 UIView的声明

    typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {

        UIViewAutoresizingNone                =0,

        UIViewAutoresizingFlexibleLeftMargin  =1<<0,

        UIViewAutoresizingFlexibleWidth        =1<<1,

        UIViewAutoresizingFlexibleRightMargin  =1<<2,

        UIViewAutoresizingFlexibleTopMargin    =1<<3,

        UIViewAutoresizingFlexibleHeight      =1<<4,

        UIViewAutoresizingFlexibleBottomMargin =1<<5

    };

    使用的时候,可以联合使用,多选的 

    // 以Iphone4(320, 480)为基础,设置各控件的位置// 注意:必须所有控件都按照Iphone4(320, 480)为基础初始化一次,不然按比例缩放时会发生错误!UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(kMargin, kTopSpace, kTopViewWidth, kTopViewHeight)];

    CGFloat textLabelTop = (topView.frame.size.width - kTextLabelWidth) /2;

    CGFloat textLabelWidth = (topView.frame.size.height - kTextLabelHeight) /2;

    UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(textLabelTop, textLabelWidth, kTextLabelWidth, kTextLabelHeight)];// 设置文字及居中[textLabel setText:@"Garvey"];

    [textLabel setTextAlignment:NSTextAlignmentCenter];// 分别设置样式[topView setBackgroundColor:[UIColor redColor]];

    [textLabel setTextColor:[UIColor whiteColor]];// 设置文字控件的宽度按照上一级视图(topView)的比例进行缩放[textLabel setAutoresizingMask:UIViewAutoresizingFlexibleWidth];// 设置View控件的宽度按照父视图的比例进行缩放,距离父视图顶部、左边距和右边距的距离不变

    NSUInteger  autoresizingMask = UIViewAutoresizingFlexibleWidth UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin;

    [topView setAutoresizingMask:autoresizingMask];

    //通过 & 来判断是否包含:

    if(autoresizingMask & :UIViewAutoresizingFlexibleWidth) {

    包含 UIViewAutoresizingFlexibleWidth

    }else{ //不包含UIViewAutoresizingFlexibleWidth }

    //通过| 增加选项 

    autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;

    //减少选项

    autoresizingMask = autoresizingMask & (~UIViewAutoresizingFlexibleWidth);

    扩展知识点:关于枚举的小知识

    //typedef NS_OPTIONS(NSInteger, myType) {

    //    type1 = 1 << 0,

    //    type2 = 1 << 1,

    //    type3 = 1 << 2,

    //    type4 = 1 << 3,

    //};

    /**

    type1 = 1 << 0 :值为1(2的0次方)

    type2 = 1 << 1 :值为2(2的1次方)

    type3 = 1 << 2 :值为4(2的2次方)

    type4 = 1 << 3 :值为8(2的3次方)

    */

    相关文章

      网友评论

          本文标题:NS_OPTIONS简单用法

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