位移枚举NS_OPTIONS详解

2018-04-11  本文已影响25人  yanhooIT

位运算知识简介

位移枚举定义

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
};

位移枚举的作用

self.view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin
                           | UIViewAutoresizingFlexibleRightMargin
                           | UIViewAutoresizingFlexibleWidth
                           | UIViewAutoresizingFlexibleHeight;
self.view.autoresizingMask = 1 << 0 | 1 << 2 | 1 << 1 | 1 << 4;
self.view.autoresizingMask = 0 0001 | 0 0100 | 0 0010 | 1 0000;
self.view.autoresizingMask = 0 0101 | 0 0010 | 1 0000;
self.view.autoresizingMask = 0 0111 | 1 0000;
self.view.autoresizingMask = 1 0111;
// 1 0111 & 0 0001 = 0 0001,所以会指定代码逻辑1
if((self.view.autoresizingMask & UIViewAutoresizingFlexibleLeftMargin) == UIViewAutoresizingFlexibleLeftMargin) {
    // 代码逻辑1
}

// 1 0111 & 1 0000 = 1 0000,所以会指定代码逻辑2
if((self.view.autoresizingMask & UIViewAutoresizingFlexibleHeight) == UIViewAutoresizingFlexibleHeight) {
    // 代码逻辑2
}

总结

参考文章

上一篇下一篇

猜你喜欢

热点阅读