Я создал очень простое приложение, которое ограничивало, в каком направлении вы можете повернуть iPhone. В ViewController я переопределить метод supportedInterfaceOrientations
следующим образом:Где свойство rawValue?
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask(rawValue: (UIInterfaceOrientationMask.Portrait.rawValue | UIInterfaceOrientationMask.LandscapeLeft.rawValue))
}
И когда я смотрю на реализацию UIInterfaceOrientationMask:
public struct UIInterfaceOrientationMask : OptionSetType {
public init(rawValue: UInt)
public static var Portrait: UIInterfaceOrientationMask { get }
public static var LandscapeLeft: UIInterfaceOrientationMask { get }
public static var LandscapeRight: UIInterfaceOrientationMask { get }
public static var PortraitUpsideDown: UIInterfaceOrientationMask { get }
public static var Landscape: UIInterfaceOrientationMask { get }
public static var All: UIInterfaceOrientationMask { get }
public static var AllButUpsideDown: UIInterfaceOrientationMask { get }
}
Я не могу найти свойство rawValue
на, например Portrait
собственности. Откуда приходит rawValue
?
Возможно, мне что-то не хватает, но вам не нужно возвращать что-то типа 'UIInterfaceOrientationMask', а не' [UIInterfaceOrientationMask] '? –
Вы возвращаете что-то типа UIInterfaceOrientationMask. Магия обрабатывается OptionSetType, который является ArrayLiteralConvertible. При преобразовании литерала массива он рассматривает элементы как набор и объединяет их в правильное значение соответствующего типа. Google OptionSetType и прочитайте несколько руководств, доступных в сети. –