[Add] AlibabacloudIQS20241111 1.2.0
[CocoaPods.git] / Specs / e / 8 / 7 / SizeClasser / 0.0.1 / SizeClasser.podspec.json
blobed7c2786caae5068baed47e454845fb2726f52d2
2   "name": "SizeClasser",
3   "version": "0.0.1",
4   "summary": "Device specific UITraitCollection helper with split view detection for iOS.",
5   "description": "SizeClasser\n===\n\nDevice specific `UITraitCollection` helper with split view detection for iOS.\n\nDemo\n----\n\n![alt tag](https://github.com/cemolcay/SizeClasser/blob/master/Examples/demo.gif?raw=true)\n\nRequirements\n----\n\n- Swift 3.0+\n- iOS 8.0+\n\nInstall\n----\n\n```\nuse_frameworks!\npod 'SizeClasser'\n```\n\nUsage\n----\n\n[`SizeClasser`](https://github.com/cemolcay/SizeClasser/SizeClasser/SizeClasser.swift) is an `OptionSet` type struct.\nYou can initilize it with your viewController's `traitCollection` property to identify your current device specific orientation and split view status.\n\n```\n/// Screen height is bigger than width. Portrait mode in all devices.\npublic static let portrait = SizeClasser(rawValue: 1 << 0)\n/// Screen width is bigger than height. Landscape mode in all devices.\npublic static let landscape = SizeClasser(rawValue: 1 << 1)\n/// Portrait mode for iPhone devices.\npublic static let iPhonePortrait = SizeClasser(rawValue: 1 << 2)\n/// Landscape mode for iPhone devices.\npublic static let iPhoneLandscape = SizeClasser(rawValue: 1 << 3)\n/// Portrait mode for iPad devices.\npublic static let iPadPortrait = SizeClasser(rawValue: 1 << 4)\n/// Landscape mode for iPad devices.\npublic static let iPadLandscape = SizeClasser(rawValue: 1 << 5)\n/// Split mode 1/3 of visible area in iPad devices.\npublic static let iPadSplitOneThird = SizeClasser(rawValue: 1 << 8)\n/// Split mode 1/2 of visible area in iPad devices.\npublic static let iPadSplitHalf = SizeClasser(rawValue: 1 << 9)\n/// Split mode 2/3 of visible area in iPad devices.\npublic static let iPadSplitTwoThird = SizeClasser(rawValue: 1 << 10)\n```\n\nFor example, if you want to detect iPad split view 1/3 on landscape orientation, simply:\n\n```\nguard let trait = SizeClasser(traitCollection: traitCollection ?? super.traitCollection) else { return }\nif trait.contains([.iPadLandscape, .iPadSplitOneThird]) {\n// You are on iPad, landscape and 1/3 split view mode\nif SizeClasser.isiPadPro {\n// You are on 12.9\" iPad\n} else {\n// You are on regular iPad / iPad mini\n}\n}\n```\n\nAlso you can use `SizeClasser.isiPadPro` to detect 12.9\" iPad Pro if you want to layout your views more specificly.\n\n#### Note on `traitCollectionDidChange:previousTraitCollection` function:\nThis function only get called if `traitCollection` changes.\nIf you are on iPad, either portrait or landscape mode, it won't change 1/3 split view to 2/3 split view transitions.\niOS calculates them both `compact width regular height` mode.\nSo, I recommend to use `viewDidLayoutSubviews:` function to detect split view changes specificly.\n![alt tag](https://github.com/cemolcay/SizeClasser/blob/master/Examples/split.png?raw=true)",
6   "homepage": "https://github.com/cemolcay/SizeClasser",
7   "license": "MIT",
8   "authors": {
9     "cemolcay": "ccemolcay@gmail.com"
10   },
11   "social_media_url": "http://twitter.com/cemolcay",
12   "platforms": {
13     "ios": "8.0"
14   },
15   "source": {
16     "git": "https://github.com/cemolcay/SizeClasser.git",
17     "tag": "0.0.1"
18   },
19   "source_files": "SizeClasser/SizeClasser.swift",
20   "requires_arc": true,
21   "pushed_with_swift_version": "3.0"