1.基本枚举类型定义:
enum BookOrientationType: Int {
case portrait
case landscape
}
- 这是比较常用的枚举类型定义,适用于大部分场景。但是枚举类型中的值除了一部分公共的参数外,可能还含有独有的元素、属性。而我们希望能够通过一个公共的方法实现不同枚举类型class的创建,这时候可以定义带参数的枚举类型。
2.带参数的枚举类型定义:
//定义
public enum HUDContentType {
case success
case error
case progress
case image(UIImage?)
case rotatingImage(UIImage?)
case labeledSuccess(title: String?, subtitle: String?)
case labeledError(title: String?, subtitle: String?)
case labeledProgress(title: String?, subtitle: String?)
case labeledImage(image: UIImage?, title: String?, subtitle: String?)
case labeledRotatingImage(image: UIImage?, title: String?, subtitle: String?)
case label(String?)
case systemActivity
}
//使用
switch content {
case .success:
return PKHUDSuccessView()
case .error:
return PKHUDErrorView()
case .progress:
return PKHUDProgressView()
case let .image(image):
return PKHUDSquareBaseView(image: image)
case let .rotatingImage(image):
return PKHUDRotatingImageView(image: image)
case let .labeledSuccess(title, subtitle):
return PKHUDSuccessView(title: title, subtitle: subtitle)
case let .labeledError(title, subtitle):
return PKHUDErrorView(title: title, subtitle: subtitle)
case let .labeledProgress(title, subtitle):
return PKHUDProgressView(title: title, subtitle: subtitle)
case let .labeledImage(image, title, subtitle):
return PKHUDSquareBaseView(image: image, title: title, subtitle: subtitle)
case let .labeledRotatingImage(image, title, subtitle):
return PKHUDRotatingImageView(image: image, title: title, subtitle: subtitle)
case let .label(text):
return PKHUDTextView(text: text)
case .systemActivity:
return PKHUDSystemActivityIndicatorView()
}
网友评论