Swift51.com
麦子学院 头像
麦子学院  2016-09-26 23:12

  swift位移枚举的按位或运算详解

回复:0  查看:6536  

OC里面我们经常遇到一些枚举值可以多选的,需要用或运算来把这些枚举值链接起来,这样的我们称为位移枚举,但是在swift语言里面却不能这么做,下面来讲解一下如何在swift里面使用

  OC的位移枚举的区分

  //位移枚举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

  };

  //普通枚举typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {

  UIViewAnimationTransitionNone,

  UIViewAnimationTransitionFlipFromLeft,

  UIViewAnimationTransitionFlipFromRight,

  UIViewAnimationTransitionCurlUp,

  UIViewAnimationTransitionCurlDown,

  };

  OC位移枚举的使用

  OC里面位移枚举的使用一般用按位或运算符,也就是 运算符。

  //OC里位移枚举的定义

  enum UIViewAnimationOptions option = UIViewAnimationOptionRepeat | UIViewAnimationOptionLayoutSubviews;

  //OC里普通枚举的定义

  enum UIViewAnimationTransition option = UIViewAnimationTransitionFlipFromLeft;

  swift的位移枚举的区分

  //位移枚举public struct UIViewAutoresizing : OptionSetType {

  public init(rawValue: UInt)

  public static var None: UIViewAutoresizing { get }

  public static var FlexibleLeftMargin: UIViewAutoresizing { get }

  public static var FlexibleWidth: UIViewAutoresizing { get }

  public static var FlexibleRightMargin: UIViewAutoresizing { get }

  public static var FlexibleTopMargin: UIViewAutoresizing { get }

  public static var FlexibleHeight: UIViewAutoresizing { get }

  public static var FlexibleBottomMargin: UIViewAutoresizing { get }

  }

  //普通枚举public enum UIViewAnimationTransition : Int {

  case None

  case FlipFromLeft

  case FlipFromRight

  case CurlUp

  case CurlDown

  }

  swift位移枚举的使用

  swift里面位移枚举的用法跟OC就完全不一样了,当你去用按位或的运算符时系统会报错,在swift里面应该用数组来表示:

  //swift里面位移枚举的定义

  let option:UIViewAnimationOptions = [.Repeat, .LayoutSubviews]

  //swift里面普通枚举的定义

  let option:UIViewAnimationTransition = .FlipFromLeft

  以上就是关于swift里面位移枚举的使用小结,如果写的有什么不对的欢迎大家补充,希望大家能学到,谢谢大家的阅读~


文章来源:极客头条