├── AppDelegate.swift ├── CLCalendar ├── CLCalendarCell.swift ├── CLCalendarConfig.swift ├── CLCalendarDelegate.swift ├── CLCalendarDelegateFlowLayout.swift ├── CLCalendarFlowLayout.swift ├── CLCalendarHeadView.swift ├── CLCalendarLayoutAttributes.swift ├── CLCalendarModel.swift ├── CLCalendarSectionView.swift └── CLCalendarView.swift ├── CLPopoverManager.podspec ├── CLPopoverManager ├── CLPopoverConfig.swift ├── CLPopoverController.swift ├── CLPopoverManager.swift ├── CLPopoverProtocol.swift └── CLPopoverWindow.swift ├── CLPopoverManagerDemo.xcodeproj └── project.pbxproj ├── CLPopoverManagerDemo.xcworkspace └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── CLPopupController.swift ├── Controller ├── CLPopupBMIInputController │ └── CLPopupBMIInputController.swift ├── CLPopupCalendarController │ └── CLPopupCalendarController.swift ├── CLPopupDataPickerController │ ├── CLDataPickerTitleView.swift │ ├── CLDurationDataPickerView.swift │ ├── CLHourMinuteDataPickerView.swift │ ├── CLOnePickerView.swift │ ├── CLPopupDataPickerController.swift │ ├── CLYearMonthDayDataPickerView.swift │ └── CLYearMonthDayHourMinuteDataPickerView.swift ├── CLPopupFlopController │ ├── CLFlopBottomView.swift │ ├── CLFlopPrizeView.swift │ ├── CLPopupFlopController.swift │ └── CLTwoSidedView.swift ├── CLPopupHudController │ └── CLPopupHudController.swift ├── CLPopupLoadingController │ ├── CLPopupLoadingController.swift │ └── loading.json ├── CLPopupMessageController │ └── CLPopupMessageController.swift ├── CLPopupMomentumController │ ├── CLGradientLayerView.swift │ ├── CLMomentumView.swift │ └── CLPopupMomentumController.swift ├── CLPopupOneInputController │ └── CLPopupOneInputController.swift ├── CLPopupTipsController │ └── CLPopupTipsController.swift └── CLPopupTwoInputController │ └── CLPopupTwoInputController.swift ├── Extension ├── CLPopoverManager+Extension.swift ├── String+Extension.swift ├── UIColor+Extension.swift ├── UIFont+Extension.swift ├── UIImage+Extension.swift ├── UISpringTimingParameters+Extension.swift └── UITextField+Extension.swift ├── LICENSE ├── Podfile ├── README.md ├── Regex.swift └── Resources ├── Assets.xcassets ├── AccentColor.colorset │ └── Contents.json ├── AppIcon.appiconset │ └── Contents.json ├── Contents.json ├── DrawImage │ ├── Contents.json │ ├── one.imageset │ │ ├── Contents.json │ │ └── one.jpg │ ├── three.imageset │ │ ├── Contents.json │ │ └── three.jpg │ └── two.imageset │ │ ├── Contents.json │ │ └── two.jpg ├── FlopBottomButton.imageset │ ├── Contents.json │ ├── FlopBottomButton@2x.png │ └── FlopBottomButton@3x.png ├── FlopBottomButton2.imageset │ ├── Contents.json │ ├── FlopBottomButton2@2x.png │ └── FlopBottomButton2@3x.png ├── FlopCard.imageset │ ├── Contents.json │ ├── FlopCard@2x.png │ └── FlopCard@3x.png ├── FlopTop.imageset │ ├── Contents.json │ ├── FlopTop@2x.png │ └── FlopTop@3x.png ├── FlopWant.imageset │ ├── Contents.json │ ├── FlopWant@2x.png │ └── FlopWant@3x.png ├── FlopcloseButton.imageset │ ├── Contents.json │ ├── FlopcloseButton@2x.png │ └── FlopcloseButton@3x.png ├── Hexacon │ ├── Contents.json │ ├── Hexacon-1.imageset │ │ ├── Contents.json │ │ └── Hexacon-1.png │ ├── Hexacon-10.imageset │ │ ├── Contents.json │ │ └── Hexacon-10.png │ ├── Hexacon-11.imageset │ │ ├── Contents.json │ │ └── Hexacon-11.png │ ├── Hexacon-12.imageset │ │ ├── Contents.json │ │ └── Hexacon-12.png │ ├── Hexacon-13.imageset │ │ ├── Contents.json │ │ └── Hexacon-13.png │ ├── Hexacon-14.imageset │ │ ├── Contents.json │ │ └── Hexacon-14.png │ ├── Hexacon-15.imageset │ │ ├── Contents.json │ │ └── Hexacon-15.png │ ├── Hexacon-16.imageset │ │ ├── Contents.json │ │ └── Hexacon-16.png │ ├── Hexacon-17.imageset │ │ ├── Contents.json │ │ └── Hexacon-17.png │ ├── Hexacon-18.imageset │ │ ├── Contents.json │ │ └── Hexacon-18.png │ ├── Hexacon-19.imageset │ │ ├── Contents.json │ │ └── Hexacon-19.png │ ├── Hexacon-2.imageset │ │ ├── Contents.json │ │ └── Hexacon-2.png │ ├── Hexacon-20.imageset │ │ ├── Contents.json │ │ └── Hexacon-20.png │ ├── Hexacon-21.imageset │ │ ├── Contents.json │ │ └── Hexacon-21.png │ ├── Hexacon-22.imageset │ │ ├── Contents.json │ │ └── Hexacon-22.png │ ├── Hexacon-23.imageset │ │ ├── Contents.json │ │ └── Hexacon-23.png │ ├── Hexacon-24.imageset │ │ ├── Contents.json │ │ └── Hexacon-24.png │ ├── Hexacon-25.imageset │ │ ├── Contents.json │ │ └── Hexacon-25.png │ ├── Hexacon-3.imageset │ │ ├── Contents.json │ │ └── Hexacon-3.png │ ├── Hexacon-4.imageset │ │ ├── Contents.json │ │ └── Hexacon-4.png │ ├── Hexacon-5.imageset │ │ ├── Contents.json │ │ └── Hexacon-5.png │ ├── Hexacon-6.imageset │ │ ├── Contents.json │ │ └── Hexacon-6.png │ ├── Hexacon-7.imageset │ │ ├── Contents.json │ │ └── Hexacon-7.png │ ├── Hexacon-8.imageset │ │ ├── Contents.json │ │ └── Hexacon-8.png │ └── Hexacon-9.imageset │ │ ├── Contents.json │ │ └── Hexacon-9.png ├── Hexagon │ ├── Contents.json │ ├── Hexagon-1.imageset │ │ ├── Contents.json │ │ └── Hexagon-1.jpeg │ ├── Hexagon-10.imageset │ │ ├── Contents.json │ │ └── Hexagon-10.jpeg │ ├── Hexagon-11.imageset │ │ ├── Contents.json │ │ └── Hexagon-11.jpeg │ ├── Hexagon-12.imageset │ │ ├── Contents.json │ │ └── Hexagon-12.jpeg │ ├── Hexagon-13.imageset │ │ ├── Contents.json │ │ └── Hexagon-13.jpeg │ ├── Hexagon-14.imageset │ │ ├── Contents.json │ │ └── Hexagon-14.jpeg │ ├── Hexagon-15.imageset │ │ ├── Contents.json │ │ └── Hexagon-15.jpeg │ ├── Hexagon-16.imageset │ │ ├── Contents.json │ │ └── Hexagon-16.jpeg │ ├── Hexagon-17.imageset │ │ ├── Contents.json │ │ └── Hexagon-17.jpeg │ ├── Hexagon-18.imageset │ │ ├── Contents.json │ │ └── Hexagon-18.jpeg │ ├── Hexagon-19.imageset │ │ ├── Contents.json │ │ └── Hexagon-19.jpeg │ ├── Hexagon-2.imageset │ │ ├── Contents.json │ │ └── Hexagon-2.jpeg │ ├── Hexagon-20.imageset │ │ ├── Contents.json │ │ └── Hexagon-20.jpeg │ ├── Hexagon-21.imageset │ │ ├── Contents.json │ │ └── Hexagon-21.jpeg │ ├── Hexagon-22.imageset │ │ ├── Contents.json │ │ └── Hexagon-22.jpeg │ ├── Hexagon-23.imageset │ │ ├── Contents.json │ │ └── Hexagon-23.jpg │ ├── Hexagon-24.imageset │ │ ├── Contents.json │ │ └── Hexagon-24.jpg │ ├── Hexagon-25.imageset │ │ ├── Contents.json │ │ └── Hexagon-25.jpeg │ ├── Hexagon-26.imageset │ │ ├── Contents.json │ │ └── Hexagon-26.jpeg │ ├── Hexagon-27.imageset │ │ ├── Contents.json │ │ └── Hexagon-27.jpeg │ ├── Hexagon-28.imageset │ │ ├── Contents.json │ │ └── Hexagon-28.jpg │ ├── Hexagon-29.imageset │ │ ├── Contents.json │ │ └── Hexagon-29.jpeg │ ├── Hexagon-3.imageset │ │ ├── Contents.json │ │ └── Hexagon-3.jpeg │ ├── Hexagon-30.imageset │ │ ├── Contents.json │ │ └── Hexagon-30.jpg │ ├── Hexagon-4.imageset │ │ ├── Contents.json │ │ └── Hexagon-4.jpeg │ ├── Hexagon-5.imageset │ │ ├── Contents.json │ │ └── Hexagon-5.jpg │ ├── Hexagon-6.imageset │ │ ├── Contents.json │ │ └── Hexagon-6.jpeg │ ├── Hexagon-7.imageset │ │ ├── Contents.json │ │ └── Hexagon-7.jpeg │ ├── Hexagon-8.imageset │ │ ├── Contents.json │ │ └── Hexagon-8.jpeg │ └── Hexagon-9.imageset │ │ ├── Contents.json │ │ └── Hexagon-9.jpeg ├── Prize.imageset │ ├── Contents.json │ ├── Prize@2x.png │ └── Prize@3x.png ├── WheelMenu │ ├── Contents.json │ ├── Hamster.imageset │ │ ├── Contents.json │ │ ├── Hamster@2x.png │ │ └── Hamster@3x.png │ ├── bear.imageset │ │ ├── Contents.json │ │ ├── bear@2x.png │ │ └── bear@3x.png │ ├── cat.imageset │ │ ├── Contents.json │ │ ├── cat@2x.png │ │ └── cat@3x.png │ ├── close.imageset │ │ ├── Contents.json │ │ ├── close@2x.png │ │ └── close@3x.png │ ├── fox.imageset │ │ ├── Contents.json │ │ ├── fox@2x.png │ │ └── fox@3x.png │ ├── menu.imageset │ │ ├── Contents.json │ │ ├── menu@2x.png │ │ └── menu@3x.png │ ├── orangeCat.imageset │ │ ├── Contents.json │ │ ├── orangeCat@2x.png │ │ └── orangeCat@3x.png │ └── pig.imageset │ │ ├── Contents.json │ │ ├── pig@2x.png │ │ └── pig@3x.png ├── add.imageset │ ├── Contents.json │ ├── add@2x.png │ └── add@3x.png ├── addIcon.imageset │ ├── Contents.json │ ├── addIcon@2x.png │ └── addIcon@3x.png ├── advNsel.imageset │ ├── Contents.json │ ├── advNsel@2x.png │ └── advNsel@3x.png ├── advSel.imageset │ ├── Contents.json │ ├── advSel@2x.png │ └── advSel@3x.png ├── album.imageset │ ├── Contents.json │ ├── album@2x.png │ └── album@3x.png ├── btn_x.imageset │ ├── Contents.json │ ├── btn_x.png │ ├── btn_x@2x.png │ └── btn_x@3x.png ├── capture_back.imageset │ ├── Contents.json │ ├── capture_back.png │ ├── capture_back@2x.png │ └── capture_back@3x.png ├── capture_focus.imageset │ ├── Contents.json │ ├── capture_focus.png │ ├── capture_focus@2x.png │ └── capture_focus@3x.png ├── capture_rotate_camera.imageset │ ├── Contents.json │ ├── capture_rotate_camera.png │ ├── capture_rotate_camera@2x.png │ └── capture_rotate_camera@3x.png ├── ccc.imageset │ ├── Contents.json │ └── ccc.png ├── clear.imageset │ ├── Contents.json │ ├── clear@2x.png │ └── clear@3x.png ├── clearIcon.imageset │ ├── Contents.json │ ├── clearIcon@2x.png │ └── clearIcon@3x.png ├── cutover.imageset │ ├── Contents.json │ ├── cutover@2x.png │ └── cutover@3x.png ├── cutoverH.imageset │ ├── Contents.json │ ├── cutoverH@2x.png │ └── cutoverH@3x.png ├── deleteHIcon.imageset │ ├── Contents.json │ ├── deleteHIcon@2x.png │ └── deleteHIcon@3x.png ├── deleteIcon.imageset │ ├── Contents.json │ ├── deleteIcon@2x.png │ └── deleteIcon@3x.png ├── evaluateAIcon.imageset │ ├── Contents.json │ ├── evaluateAIcon@2x.png │ └── evaluateAIcon@3x.png ├── evaluateBIcon.imageset │ ├── Contents.json │ ├── evaluateBIcon@2x.png │ └── evaluateBIcon@3x.png ├── evaluateCIcon.imageset │ ├── Contents.json │ ├── evaluateCIcon@2x.png │ └── evaluateCIcon@3x.png ├── facialIcon.imageset │ ├── Contents.json │ ├── facialIcon@2x.png │ └── facialIcon@3x.png ├── fontSizeSlider.imageset │ ├── Contents.json │ ├── fontSizeSlider@2x.png │ └── fontSizeSlider@3x.png ├── heart.imageset │ ├── Contents.json │ └── heart.png ├── icon_failed.imageset │ ├── Contents.json │ ├── icon_failed@2x.png │ └── icon_failed@3x.png ├── icon_friend.imageset │ ├── Contents.json │ ├── icon_friend.png │ ├── icon_friend@2x.png │ └── icon_friend@3x.png ├── icon_voice.imageset │ ├── Contents.json │ ├── icon_voice@2x.png │ └── icon_voice@3x.png ├── img_time.imageset │ ├── Contents.json │ ├── img_time@2x.png │ └── img_time@3x.png ├── keyboard.imageset │ ├── Contents.json │ ├── keyboard@2x.png │ └── keyboard@3x.png ├── knock_emoji_delete.imageset │ ├── Contents.json │ ├── knock_emoji_delete@2x.png │ └── knock_emoji_delete@3x.png ├── leftBg.imageset │ ├── Contents.json │ ├── leftBg@2x.png │ └── leftBg@3x.png ├── like.imageset │ ├── Contents.json │ └── like.png ├── navigationBack.imageset │ ├── Contents.json │ ├── navigationBack.png │ ├── navigationBack@2x.png │ └── navigationBack@3x.png ├── number-2.imageset │ ├── Contents.json │ ├── number-2@2x.png │ └── number-2@3x.png ├── pic1.imageset │ ├── Contents.json │ └── pic1.jpg ├── pic2.imageset │ ├── Contents.json │ └── pic2.jpeg ├── picIcon.imageset │ ├── Contents.json │ ├── picIcon@2x.png │ └── picIcon@3x.png ├── placeholder.imageset │ ├── Contents.json │ ├── img_158x158@2x.png │ └── img_158x158@3x.png ├── qq.imageset │ ├── Contents.json │ └── qq.png ├── rightBg.imageset │ ├── Contents.json │ ├── rightBg@2x.png │ └── rightBg@3x.png ├── searchIcon.imageset │ ├── Contents.json │ ├── searchIcon@2x.png │ └── searchIcon@3x.png ├── selectIcon.imageset │ ├── Contents.json │ ├── selectIcon@2x.png │ └── selectIcon@3x.png ├── sendIcon.imageset │ ├── Contents.json │ ├── sendIcon@2x.png │ └── sendIcon@3x.png ├── share.imageset │ ├── Contents.json │ ├── share@2x.png │ └── share@3x.png ├── smile.imageset │ ├── Contents.json │ └── smile.png ├── sss.imageset │ ├── Contents.json │ └── sss.jpeg ├── star.imageset │ ├── Contents.json │ └── star.png ├── tabbar │ ├── Contents.json │ ├── advisoty.imageset │ │ ├── Contents.json │ │ ├── advisoty@2x.png │ │ └── advisoty@3x.png │ ├── advisotyHover.imageset │ │ ├── Contents.json │ │ ├── advisotyHover@2x.png │ │ └── advisotyHover@3x.png │ ├── indenxHover.imageset │ │ ├── Contents.json │ │ ├── indenxHover@2x.png │ │ └── indenxHover@3x.png │ ├── index.imageset │ │ ├── Contents.json │ │ ├── index@2x.png │ │ └── index@3x.png │ ├── me.imageset │ │ ├── Contents.json │ │ ├── me@2x.png │ │ └── me@3x.png │ ├── meHover.imageset │ │ ├── Contents.json │ │ ├── meHover@2x.png │ │ └── meHover@3x.png │ ├── meal.imageset │ │ ├── Contents.json │ │ ├── meal@2x.png │ │ └── meal@3x.png │ ├── mealHover.imageset │ │ ├── Contents.json │ │ ├── meal Hover@2x.png │ │ └── meal Hover@3x.png │ └── recording.imageset │ │ ├── Contents.json │ │ ├── recording@2x.png │ │ └── recording@3x.png ├── takingPicIcon.imageset │ ├── Contents.json │ ├── takingPicIcon@2x.png │ └── takingPicIcon@3x.png ├── voiceIcon.imageset │ ├── Contents.json │ ├── voiceIcon@2x.png │ └── voiceIcon@3x.png ├── woxin_chatLeft_bg.imageset │ ├── Contents.json │ └── woxin_chatLeft_bg@2x.png ├── woxin_chatRight_bg.imageset │ ├── Contents.json │ └── woxin_chatRight_bg@2x.png └── woxin_setFontSize_line.imageset │ ├── Contents.json │ ├── woxin_setFontSize_line@2x.png │ └── woxin_setFontSize_line@3x.png ├── Base.lproj └── LaunchScreen.storyboard └── Info.plist /AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Demo 4 | // 5 | // Created by Chen JmoVxia on 2022/11/7. 6 | // 7 | 8 | import UIKit 9 | 10 | @main 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | var window: UIWindow? 13 | 14 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 15 | window = UIWindow(frame: UIScreen.main.bounds) 16 | window?.rootViewController = CLPopupController() 17 | window?.makeKeyAndVisible() 18 | return true 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarCell.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | 8 | import SnapKit 9 | import UIKit 10 | 11 | // MARK: - JmoVxia---类-属性 12 | 13 | class CLCalendarCell: UICollectionViewCell { 14 | static let reuseIdentifier = "CLCalendarCell" 15 | 16 | private lazy var mainStackView: UIStackView = { 17 | let view = UIStackView() 18 | view.axis = .vertical 19 | view.distribution = .fill 20 | view.alignment = .center 21 | view.insetsLayoutMarginsFromSafeArea = false 22 | view.isLayoutMarginsRelativeArrangement = true 23 | view.layoutMargins = .zero 24 | view.spacing = 10 25 | return view 26 | }() 27 | 28 | private lazy var titleLabel: UILabel = { 29 | let view = UILabel() 30 | view.textAlignment = .center 31 | view.font = .mediumPingFangSC(13) 32 | return view 33 | }() 34 | 35 | private lazy var subtitleLabel: UILabel = { 36 | let view = UILabel() 37 | view.textAlignment = .center 38 | view.font = .mediumPingFangSC(10) 39 | return view 40 | }() 41 | 42 | override init(frame: CGRect) { 43 | super.init(frame: frame) 44 | configUI() 45 | makeConstraints() 46 | } 47 | 48 | @available(*, unavailable) 49 | required init?(coder: NSCoder) { 50 | fatalError("init(coder:) has not been implemented") 51 | } 52 | } 53 | 54 | // MARK: - JmoVxia---布局 55 | 56 | private extension CLCalendarCell { 57 | func configUI() { 58 | backgroundColor = .clear 59 | clipsToBounds = true 60 | contentView.addSubview(mainStackView) 61 | mainStackView.addArrangedSubview(titleLabel) 62 | mainStackView.addArrangedSubview(subtitleLabel) 63 | } 64 | 65 | func makeConstraints() { 66 | mainStackView.snp.makeConstraints { make in 67 | make.center.equalToSuperview() 68 | } 69 | } 70 | } 71 | 72 | extension CLCalendarCell { 73 | func refreshData(_ model: CLCalendarDayModel, config: CLCalendarConfig, startDate: Date?, endDate: Date?) { 74 | isUserInteractionEnabled = { 75 | guard let date = model.date else { return false } 76 | if let limitBegin = config.limitBegin, 77 | date.isEarlier(than: limitBegin) 78 | { 79 | return false 80 | } else if let limitEnd = config.limitEnd, 81 | date.isLater(than: limitEnd) 82 | { 83 | return false 84 | } 85 | return true 86 | }() 87 | backgroundColor = (model.type == .empty || isUserInteractionEnabled) ? .clear : config.color.failureBackground 88 | layer.cornerRadius = 0 89 | titleLabel.text = model.title 90 | subtitleLabel.text = model.subtitle 91 | titleLabel.textColor = !isUserInteractionEnabled ? config.color.failureTitleText : config.color.titleText 92 | subtitleLabel.textColor = model.type == .today ? config.color.todayText : (!isUserInteractionEnabled ? config.color.failureSubtitleText : config.color.subtitleText) 93 | guard model.type != .empty else { return } 94 | if model.date == startDate || model.date == endDate { 95 | titleLabel.textColor = config.color.selectTitleText 96 | subtitleLabel.textColor = model.type == .today ? config.color.selectTodayText : config.color.selectSubtitleText 97 | backgroundColor = model.date == startDate ? config.color.selectStartBackground : config.color.selectEndBackground 98 | layer.cornerRadius = 5 99 | let isAllCorners = config.selectType == .single 100 | layer.maskedCorners = isAllCorners ? [.layerMinXMinYCorner, .layerMinXMaxYCorner, .layerMaxXMinYCorner, .layerMaxXMaxYCorner] : (model.date == startDate ? [.layerMinXMinYCorner, .layerMinXMaxYCorner] : [.layerMaxXMinYCorner, .layerMaxXMaxYCorner]) 101 | } else if let date = model.date, 102 | let start = startDate, 103 | let end = endDate, 104 | date > start, 105 | date < end 106 | { 107 | titleLabel.textColor = isUserInteractionEnabled ? config.color.titleText : config.color.failureTitleText 108 | subtitleLabel.textColor = isUserInteractionEnabled ? (model.type == .today ? config.color.todayText : config.color.subtitleText) : config.color.failureSubtitleText 109 | backgroundColor = isUserInteractionEnabled ? config.color.selectBackground : config.color.failureBackground 110 | } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarConfig.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | import DateToolsSwift 8 | import UIKit 9 | 10 | struct CLCalendarConfig { 11 | enum CLSelectType { 12 | case single 13 | case area 14 | } 15 | 16 | struct CLColor { 17 | var background = "#ffffff".uiColor 18 | var topToolBackground = "#F4F4F4".uiColor 19 | var topToolText = "#444444".uiColor 20 | var topToolTextWeekend = "#3CCA79".uiColor 21 | var sectionBackgroundText = "f2f2f2".uiColor 22 | var selectStartBackground = "#4bce817f".uiColor 23 | var selectBackground = "#afe9c77f".uiColor 24 | var selectEndBackground = "#4bce817f".uiColor 25 | var todayText = "#32cd32".uiColor 26 | var titleText = "#555555".uiColor 27 | var headerTextColor = "#353A55".uiColor 28 | var subtitleText = "#555555".uiColor 29 | var selectTodayText = "#32cd32".uiColor 30 | var selectTitleText = "#ffffff".uiColor 31 | var selectSubtitleText = "#ffffff".uiColor 32 | var failureTitleText = "#a9a9a9".uiColor 33 | var failureSubtitleText = "#a9a9a9".uiColor 34 | var failureBackground = "#dcdcdc32".uiColor 35 | } 36 | 37 | var color = CLColor() 38 | var selectBegin: Date? 39 | var selectEnd: Date? 40 | var beginDate = Date() - 5.months 41 | var endDate = Date() + 5.months 42 | var position = Date() 43 | var selectType = CLSelectType.area 44 | var limitBegin: Date? 45 | var limitEnd: Date? 46 | var isShowLunarCalendar = true 47 | var insetsLayoutMarginsFromSafeArea = true 48 | var layoutMargins = UIEdgeInsets.zero 49 | var headerHight = 50.0 50 | } 51 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarDelegate.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | 8 | import Foundation 9 | 10 | protocol CLCalendarDelegate: AnyObject { 11 | func didSelectDate(date: Date, in view: CLCalendarView) 12 | } 13 | 14 | extension CLCalendarDelegate { 15 | func didSelectDate(date: Date, in view: CLCalendarView) {} 16 | } 17 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarDelegateFlowLayout.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarDelegateFlowLayout.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | 8 | import UIKit 9 | 10 | protocol CLCalendarDelegateFlowLayout: UICollectionViewDelegateFlowLayout { 11 | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, textColorForSectionAt section: Int) -> UIColor 12 | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, textForSectionAt section: Int) -> String 13 | } 14 | 15 | extension CLCalendarDelegateFlowLayout { 16 | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, textColorForSectionAt section: Int) -> UIColor { 17 | .white 18 | } 19 | 20 | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, textForSectionAt section: Int) -> String { 21 | "" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarFlowLayout.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarFlowLayout.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | 8 | import UIKit 9 | 10 | class CLCalendarFlowLayout: UICollectionViewFlowLayout { 11 | private var decorationViewAttributes: [UICollectionViewLayoutAttributes] = [] 12 | 13 | override init() { 14 | super.init() 15 | configUI() 16 | } 17 | 18 | required init?(coder aDecoder: NSCoder) { 19 | super.init(coder: aDecoder) 20 | } 21 | } 22 | 23 | extension CLCalendarFlowLayout { 24 | func configUI() { 25 | sectionInset = .zero 26 | minimumLineSpacing = 0 27 | minimumInteritemSpacing = 0 28 | register(CLCalendarSectionBackgroundView.classForCoder(), forDecorationViewOfKind: CLCalendarSectionBackgroundView.reuseIdentifier) 29 | } 30 | } 31 | 32 | extension CLCalendarFlowLayout { 33 | override func prepare() { 34 | super.prepare() 35 | guard let collectionView else { return } 36 | guard let delegate = collectionView.delegate as? CLCalendarDelegateFlowLayout else { return } 37 | 38 | decorationViewAttributes.removeAll() 39 | 40 | for section in 0 ..< collectionView.numberOfSections { 41 | let numberOfItems = collectionView.numberOfItems(inSection: section) 42 | 43 | guard numberOfItems > 0 else { continue } 44 | guard let firstItem = layoutAttributesForItem(at: IndexPath(item: 0, section: section)) else { continue } 45 | guard let lastItem = layoutAttributesForItem(at: IndexPath(item: numberOfItems - 1, section: section)) else { continue } 46 | 47 | let sectionInset = delegate.collectionView?(collectionView, layout: self, insetForSectionAt: section) ?? sectionInset 48 | 49 | let sectionFrame: CGRect = { 50 | let frame = firstItem.frame.union(lastItem.frame) 51 | let origin = frame.origin 52 | let size = frame.size 53 | return .init(origin: .init(x: .zero, y: origin.y - sectionInset.top), 54 | size: scrollDirection == .horizontal 55 | ? CGSize(width: sectionInset.left + sectionInset.right + size.width, height: collectionView.frame.height) 56 | : CGSize(width: collectionView.frame.width, height: sectionInset.top + sectionInset.bottom + size.height)) 57 | }() 58 | 59 | let attributes = CLCalendarLayoutAttributes(forDecorationViewOfKind: CLCalendarSectionBackgroundView.reuseIdentifier, with: IndexPath(item: 0, section: section)) 60 | attributes.frame = sectionFrame 61 | attributes.zIndex = -1 62 | attributes.month = delegate.collectionView(collectionView, layout: self, textForSectionAt: section) 63 | attributes.textColor = delegate.collectionView(collectionView, layout: self, textColorForSectionAt: section) 64 | decorationViewAttributes.append(attributes) 65 | } 66 | } 67 | 68 | override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? { 69 | var attributes = super.layoutAttributesForElements(in: rect) 70 | attributes?.append(contentsOf: decorationViewAttributes.filter { rect.intersects($0.frame) }) 71 | return attributes 72 | } 73 | 74 | override func layoutAttributesForDecorationView(ofKind elementKind: String, at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? { 75 | guard elementKind != CLCalendarSectionBackgroundView.reuseIdentifier else { return decorationViewAttributes[indexPath.section] } 76 | return super.layoutAttributesForDecorationView(ofKind: elementKind, at: indexPath) 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarHeadView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarHeadView.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | 8 | import SnapKit 9 | import UIKit 10 | 11 | // MARK: - JmoVxia---类-属性 12 | 13 | class CLCalendarHeadView: UICollectionReusableView { 14 | static let reuseIdentifier = "CLCalendarHeadView" 15 | 16 | private(set) lazy var titleLabel: UILabel = { 17 | let view = UILabel() 18 | view.textAlignment = .center 19 | view.backgroundColor = .clear 20 | view.textColor = "#333333".uiColor 21 | view.font = .boldPingFangSC(14) 22 | return view 23 | }() 24 | 25 | override init(frame: CGRect) { 26 | super.init(frame: frame) 27 | configUI() 28 | makeConstraints() 29 | } 30 | 31 | @available(*, unavailable) 32 | required init?(coder: NSCoder) { 33 | fatalError("init(coder:) has not been implemented") 34 | } 35 | } 36 | 37 | // MARK: - JmoVxia---布局 38 | 39 | private extension CLCalendarHeadView { 40 | func configUI() { 41 | addSubview(titleLabel) 42 | } 43 | 44 | func makeConstraints() { 45 | titleLabel.snp.makeConstraints { make in 46 | make.edges.equalToSuperview() 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarLayoutAttributes.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarLayoutAttributes.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | 8 | import UIKit 9 | 10 | class CLCalendarLayoutAttributes: UICollectionViewLayoutAttributes { 11 | var month = "" 12 | var textColor = "f2f2f2".uiColor 13 | } 14 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarModel.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | 8 | import UIKit 9 | 10 | struct CLCalendarDayModel { 11 | enum CLCalendarDayType { 12 | case empty 13 | case past 14 | case today 15 | case future 16 | } 17 | 18 | var title: String? 19 | var date: Date? 20 | var subtitle: String? 21 | var type: CLCalendarDayType = .empty 22 | } 23 | 24 | struct CLCalendarMonthModel { 25 | var headerText = "" 26 | var month = "" 27 | var daysArray = [CLCalendarDayModel]() 28 | } 29 | -------------------------------------------------------------------------------- /CLCalendar/CLCalendarSectionView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLCalendarSectionBackgroundView.swift 3 | // CLDemo-Swift 4 | // 5 | // Created by Chen JmoVxia on 2022/10/19. 6 | // 7 | import SnapKit 8 | import UIKit 9 | 10 | // MARK: - JmoVxia---类-属性 11 | 12 | class CLCalendarSectionBackgroundView: UICollectionReusableView { 13 | static let reuseIdentifier = "CLCalendarSectionBackgroundView" 14 | 15 | private lazy var textLabel: UILabel = { 16 | let view = UILabel() 17 | view.backgroundColor = .clear 18 | view.font = .boldPingFangSC(80) 19 | view.textAlignment = .center 20 | view.isUserInteractionEnabled = false 21 | return view 22 | }() 23 | 24 | override init(frame: CGRect) { 25 | super.init(frame: frame) 26 | configUI() 27 | makeConstraints() 28 | } 29 | 30 | @available(*, unavailable) 31 | required init?(coder: NSCoder) { 32 | fatalError("init(coder:) has not been implemented") 33 | } 34 | } 35 | 36 | // MARK: - JmoVxia---布局 37 | 38 | private extension CLCalendarSectionBackgroundView { 39 | func configUI() { 40 | isUserInteractionEnabled = false 41 | addSubview(textLabel) 42 | } 43 | 44 | func makeConstraints() { 45 | textLabel.snp.makeConstraints { make in 46 | make.edges.equalToSuperview() 47 | } 48 | } 49 | } 50 | 51 | // MARK: - JmoVxia---override 52 | 53 | extension CLCalendarSectionBackgroundView { 54 | override func apply(_ layoutAttributes: UICollectionViewLayoutAttributes) { 55 | super.apply(layoutAttributes) 56 | guard let attributes = layoutAttributes as? CLCalendarLayoutAttributes else { return } 57 | textLabel.textColor = attributes.textColor 58 | textLabel.text = attributes.month 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /CLPopoverManager.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'CLPopoverManager' 3 | s.version = '0.0.1' 4 | s.summary = 'CLPopoverManager' 5 | s.homepage = 'https://github.com/JmoVxia/CLPopoverManager' 6 | s.license = { :type => 'MIT', :file => 'LICENSE' } 7 | s.authors = {'JmoVxia' => 'JmoVxia@gmail.com'} 8 | s.ios.deployment_target = '11.0' 9 | s.source = {:git => 'https://github.com/JmoVxia/CLPopoverManager', :tag => s.version} 10 | s.source_files = ['CLPopoverManager/**/*'] 11 | s.swift_versions = ['5.0'] 12 | s.requires_arc = true 13 | end 14 | -------------------------------------------------------------------------------- /CLPopoverManager/CLPopoverConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLPopoverConfig.swift 3 | // 4 | // 5 | // Created by Chen JmoVxia on 2022/11/3. 6 | // 7 | 8 | import Foundation 9 | import UIKit 10 | 11 | // MARK: - 弹窗配置 12 | 13 | /// 配置 14 | @objcMembers public class CLPopoverConfig: NSObject { 15 | public enum CLUserInterfaceStyle: Int { 16 | case unspecified = 0 17 | case light = 1 18 | case dark = 2 19 | } 20 | 21 | public enum CLPopoverPriority { 22 | case low 23 | case mediumLow 24 | case medium 25 | case mediumHigh 26 | case high 27 | case customValue(Int) 28 | var rawValue: Int { 29 | switch self { 30 | case .low: 31 | 0 32 | case .mediumLow: 33 | 250 34 | case .medium: 35 | 500 36 | case .mediumHigh: 37 | 750 38 | case .high: 39 | 1000 40 | case let .customValue(value): 41 | value 42 | } 43 | } 44 | 45 | static func > (lhs: Self, rhs: Self) -> Bool { 46 | lhs.rawValue > rhs.rawValue 47 | } 48 | 49 | static func < (lhs: Self, rhs: Self) -> Bool { 50 | lhs.rawValue < rhs.rawValue 51 | } 52 | 53 | static func >= (lhs: Self, rhs: Self) -> Bool { 54 | lhs.rawValue >= rhs.rawValue 55 | } 56 | 57 | static func <= (lhs: Self, rhs: Self) -> Bool { 58 | lhs.rawValue <= rhs.rawValue 59 | } 60 | 61 | static func == (lhs: Self, rhs: Self) -> Bool { 62 | lhs.rawValue == rhs.rawValue 63 | } 64 | 65 | static func != (lhs: Self, rhs: Self) -> Bool { 66 | lhs.rawValue != rhs.rawValue 67 | } 68 | } 69 | 70 | public enum CLMode { 71 | /// 排队 72 | case queue 73 | /// 插队 74 | case interrupt 75 | /// 替换 76 | case replace 77 | /// 唯一 78 | case unique 79 | } 80 | 81 | /// 弹窗模式 82 | public var popoverMode: CLMode = .queue 83 | /// 弹窗优先级,只影响等待队列 84 | public var popoverPriority: CLPopoverPriority = .medium 85 | /// 是否允许手势穿透 86 | public var allowsEventPenetration = false 87 | /// 手势穿透时是否自动隐藏 88 | public var autoHideWhenPenetrated = false 89 | /// 是否自动旋转屏幕 90 | public var shouldAutorotate = false 91 | /// 是否隐藏状态栏 92 | public var prefersStatusBarHidden = false 93 | /// 状态栏样式 94 | public var preferredStatusBarStyle = UIStatusBarStyle.lightContent 95 | /// 支持的界面方向 96 | public var supportedInterfaceOrientations = UIInterfaceOrientationMask.portrait 97 | /// 用户界面样式,包括夜间模式 98 | public var userInterfaceStyleOverride = CLUserInterfaceStyle.light 99 | /// 弹窗的唯一标识符,用于去重 100 | public var identifier: String? 101 | } 102 | -------------------------------------------------------------------------------- /CLPopoverManager/CLPopoverController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLPopoverController.swift 3 | // 4 | // 5 | // Created by Chen JmoVxia on 2022/7/8. 6 | // 7 | 8 | import UIKit 9 | 10 | // MARK: - 弹窗父类控制器 11 | 12 | @objcMembers open class CLPopoverController: UIViewController { 13 | @available(*, unavailable) 14 | public required init?(coder _: NSCoder) { 15 | fatalError("init(coder:) has not been implemented") 16 | } 17 | 18 | override public init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { 19 | super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) 20 | let keyWindow = if #available(iOS 13.0, *) { 21 | UIApplication.shared.connectedScenes 22 | .compactMap { $0 as? UIWindowScene } 23 | .flatMap(\.windows) 24 | .first { $0.isKeyWindow } 25 | } else { 26 | UIApplication.shared.keyWindow 27 | } 28 | if let prefersStatusBarHidden = keyWindow?.rootViewController?.prefersStatusBarHidden { 29 | config.prefersStatusBarHidden = prefersStatusBarHidden 30 | } 31 | if let preferredStatusBarStyle = keyWindow?.rootViewController?.preferredStatusBarStyle { 32 | config.preferredStatusBarStyle = preferredStatusBarStyle 33 | } 34 | if let supportedInterfaceOrientations = keyWindow?.rootViewController?.supportedInterfaceOrientations { 35 | config.supportedInterfaceOrientations = supportedInterfaceOrientations 36 | } 37 | } 38 | 39 | open var config = CLPopoverConfig() 40 | 41 | open var key: String { 42 | "\(Unmanaged.passUnretained(self).toOpaque())" 43 | } 44 | } 45 | 46 | extension CLPopoverController { 47 | @available(iOS 13.0, *) 48 | override open var overrideUserInterfaceStyle: UIUserInterfaceStyle { 49 | set { 50 | super.overrideUserInterfaceStyle = newValue 51 | } 52 | get { 53 | .init(rawValue: config.userInterfaceStyleOverride.rawValue) ?? .light 54 | } 55 | } 56 | } 57 | 58 | extension CLPopoverController { 59 | override open func viewWillAppear(_ animated: Bool) { 60 | super.viewWillAppear(animated) 61 | } 62 | 63 | override open func viewDidAppear(_ animated: Bool) { 64 | super.viewDidAppear(animated) 65 | } 66 | 67 | override open func viewDidLoad() { 68 | super.viewDidLoad() 69 | view.backgroundColor = .clear 70 | } 71 | 72 | override open func viewWillDisappear(_ animated: Bool) { 73 | super.viewWillDisappear(animated) 74 | } 75 | 76 | override open func viewDidDisappear(_ animated: Bool) { 77 | super.viewDidDisappear(animated) 78 | } 79 | 80 | override open func viewDidLayoutSubviews() { 81 | super.viewDidLayoutSubviews() 82 | } 83 | } 84 | 85 | extension CLPopoverController { 86 | override open var preferredStatusBarStyle: UIStatusBarStyle { 87 | config.preferredStatusBarStyle 88 | } 89 | 90 | override open var prefersStatusBarHidden: Bool { 91 | config.prefersStatusBarHidden 92 | } 93 | 94 | override open var shouldAutorotate: Bool { 95 | config.shouldAutorotate 96 | } 97 | 98 | override open var supportedInterfaceOrientations: UIInterfaceOrientationMask { 99 | config.supportedInterfaceOrientations 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /CLPopoverManager/CLPopoverManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLPopoverManager 3 | // 4 | // 5 | // Created by Chen JmoVxia on 2019/12/24. 6 | // 7 | 8 | import UIKit 9 | 10 | // MARK: - 弹窗管理者 11 | 12 | @objcMembers public class CLPopoverManager: NSObject { 13 | override private init() { 14 | super.init() 15 | } 16 | 17 | deinit {} 18 | 19 | private var waitQueue = [String: CLPopoverProtocol]() 20 | 21 | private var windows = [String: CLPopoverWindow]() 22 | } 23 | 24 | public extension CLPopoverManager { 25 | @discardableResult static func mainSync(execute block: () -> T) -> T { 26 | guard !Thread.isMainThread else { return block() } 27 | return DispatchQueue.main.sync { block() } 28 | } 29 | } 30 | 31 | public extension CLPopoverManager { 32 | private static var manager: CLPopoverManager? 33 | 34 | private static let singletonSemaphore: DispatchSemaphore = { 35 | let semap = DispatchSemaphore(value: 0) 36 | semap.signal() 37 | return semap 38 | }() 39 | 40 | private static var shared: CLPopoverManager { 41 | singletonSemaphore.wait() 42 | defer { singletonSemaphore.signal() } 43 | if let sharedManager = manager { 44 | return sharedManager 45 | } else { 46 | manager = CLPopoverManager() 47 | return manager! 48 | } 49 | } 50 | } 51 | 52 | public extension CLPopoverManager { 53 | /// 显示自定义弹窗 54 | static func show(_ controller: CLPopoverProtocol, completion: (() -> Void)? = nil) { 55 | mainSync { 56 | let shouldShow = !shared.windows.values.contains { $0.rootPopoverController?.config.popoverMode == .unique } && 57 | !shared.windows.values.contains { $0.rootPopoverController?.config.identifier == controller.config.identifier && controller.config.identifier != nil } && 58 | !shared.waitQueue.values.contains { $0.key != controller.key && $0.config.identifier == controller.config.identifier && controller.config.identifier != nil } 59 | 60 | guard shouldShow else { return } 61 | 62 | switch controller.config.popoverMode { 63 | case .queue, .interrupt: 64 | break 65 | case .replace: 66 | shared.windows.removeAll() 67 | case .unique: 68 | shared.windows.removeAll() 69 | shared.waitQueue.removeAll() 70 | } 71 | guard !(controller.config.popoverMode == .queue && !shared.windows.isEmpty) else { 72 | shared.waitQueue[controller.key] = controller 73 | return 74 | } 75 | let window = CLPopoverWindow(frame: UIScreen.main.bounds) 76 | window.backgroundColor = .clear 77 | if #available(iOS 13.0, *) { 78 | window.overrideUserInterfaceStyle = .init(rawValue: controller.config.userInterfaceStyleOverride.rawValue) ?? .light 79 | } 80 | window.autoHideWhenPenetrated = controller.config.autoHideWhenPenetrated 81 | window.allowsEventPenetration = controller.config.allowsEventPenetration 82 | window.windowLevel = .alert + 50 83 | window.rootViewController = controller 84 | window.makeKeyAndVisible() 85 | shared.windows[controller.key] = window 86 | shared.waitQueue.removeValue(forKey: controller.key) 87 | controller.showAnimation(completion: completion) 88 | } 89 | } 90 | 91 | /// 隐藏指定弹窗 92 | static func dismiss(_ key: String?, completion: (() -> Void)? = nil) { 93 | guard let key else { return } 94 | func remove() {} 95 | mainSync { 96 | guard let window = shared.windows[key] else { return } 97 | window.rootPopoverController?.dismissAnimation { 98 | completion?() 99 | shared.waitQueue.removeValue(forKey: key) 100 | shared.windows.removeValue(forKey: key) 101 | guard !(shared.windows.isEmpty && shared.waitQueue.isEmpty) else { return dismissAll() } 102 | guard let lastController = shared.waitQueue.values.max(by: { $0.config.popoverPriority < $1.config.popoverPriority }) else { return } 103 | show(lastController) 104 | } 105 | } 106 | } 107 | 108 | /// 隐藏所有弹窗 109 | static func dismissAll() { 110 | mainSync { 111 | shared.waitQueue.removeAll() 112 | shared.windows.removeAll() 113 | manager = nil 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /CLPopoverManager/CLPopoverProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLPopoverProtocol.swift 3 | // 4 | // 5 | // Created by Chen JmoVxia on 2023/6/27. 6 | // 7 | 8 | import Foundation 9 | 10 | public protocol CLPopoverProtocol where Self: CLPopoverController { 11 | /// 显示 12 | func showAnimation(completion: (() -> Void)?) 13 | /// 隐藏 14 | func dismissAnimation(completion: (() -> Void)?) 15 | } 16 | -------------------------------------------------------------------------------- /CLPopoverManager/CLPopoverWindow.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLPopoverWindow.swift 3 | // 4 | // 5 | // Created by Chen JmoVxia on 2022/7/8. 6 | // 7 | 8 | import UIKit 9 | 10 | // MARK: - 弹窗Window 11 | 12 | @objcMembers public class CLPopoverWindow: UIWindow { 13 | public var allowsEventPenetration = false 14 | 15 | public var autoHideWhenPenetrated = false 16 | 17 | public var rootPopoverController: CLPopoverProtocol? { 18 | rootViewController as? CLPopoverProtocol 19 | } 20 | 21 | override public func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { 22 | let view = super.hitTest(point, with: event) 23 | 24 | guard view == rootViewController?.view else { return view } 25 | 26 | guard allowsEventPenetration else { return view } 27 | 28 | autoHideWhenPenetrated ? (rootViewController as? (CLPopoverController & CLPopoverProtocol))?.dismissAnimation(completion: nil) : () 29 | 30 | return nil 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /CLPopoverManagerDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Controller/CLPopupDataPickerController/CLDataPickerTitleView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLDataPickerTitleView.swift 3 | // CLDemo 4 | // 5 | // Created by JmoVxia on 2020/4/7. 6 | // Copyright © 2020 JmoVxia. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CLDataPickerTitleView: UIView { 12 | var text: String? { 13 | didSet { 14 | titleLabel.text = text 15 | } 16 | } 17 | 18 | var margin: CGFloat = 0.0 { 19 | didSet { 20 | titleLabel.snp.updateConstraints { make in 21 | make.left.equalTo(self.snp.centerX).offset(margin) 22 | } 23 | } 24 | } 25 | 26 | private lazy var titleLabel: UILabel = { 27 | let titleLabel = UILabel() 28 | titleLabel.textAlignment = .right 29 | titleLabel.textColor = .theme 30 | titleLabel.font = UIFont.systemFont(ofSize: 14) 31 | return titleLabel 32 | }() 33 | 34 | override init(frame: CGRect) { 35 | super.init(frame: frame) 36 | addSubview(titleLabel) 37 | titleLabel.snp.makeConstraints { make in 38 | make.left.equalTo(self.snp.centerX).offset(0) 39 | make.top.bottom.equalToSuperview() 40 | } 41 | } 42 | 43 | @available(*, unavailable) 44 | required init?(coder: NSCoder) { 45 | fatalError("init(coder:) has not been implemented") 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Controller/CLPopupDataPickerController/CLDurationDataPickerView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLDurationDataPickerView.swift 3 | // CL 4 | // 5 | // Created by JmoVxia on 2020/5/14. 6 | // Copyright © 2020 JmoVxia. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CLDurationDataPickerView: UIView { 12 | var duration: Int { 13 | durationArray[durationIndex] 14 | } 15 | 16 | var unit: String { 17 | unitArray[unitIndex] 18 | } 19 | 20 | private var durationIndex: Int = 0 21 | private var unitIndex: Int = 0 22 | private lazy var durationArray: [Int] = { 23 | let hourArray = Array(1 ... 60) 24 | return hourArray 25 | }() 26 | 27 | private lazy var unitArray: [String] = ["分钟", "小时"] 28 | 29 | private lazy var lineView: UILabel = { 30 | let lineView = UILabel() 31 | lineView.text = ":" 32 | lineView.textColor = .theme 33 | return lineView 34 | }() 35 | 36 | private lazy var pickerView: UIPickerView = { 37 | let pickerView = UIPickerView() 38 | pickerView.dataSource = self 39 | pickerView.delegate = self 40 | return pickerView 41 | }() 42 | 43 | override init(frame: CGRect) { 44 | super.init(frame: frame) 45 | initUI() 46 | makeConstraints() 47 | } 48 | 49 | @available(*, unavailable) 50 | required init?(coder: NSCoder) { 51 | fatalError("init(coder:) has not been implemented") 52 | } 53 | } 54 | 55 | extension CLDurationDataPickerView { 56 | private func initUI() { 57 | backgroundColor = UIColor.white 58 | addSubview(pickerView) 59 | pickerView.addSubview(lineView) 60 | } 61 | 62 | private func makeConstraints() { 63 | lineView.snp.makeConstraints { make in 64 | make.center.equalToSuperview() 65 | } 66 | pickerView.snp.makeConstraints { make in 67 | if #available(iOS 11.0, *) { 68 | make.left.equalTo(self.safeAreaLayoutGuide).offset(15) 69 | make.right.equalTo(self.safeAreaLayoutGuide).offset(-15) 70 | make.bottom.equalTo(self.safeAreaLayoutGuide) 71 | } else { 72 | make.left.equalToSuperview().offset(15) 73 | make.right.equalToSuperview().offset(-15) 74 | make.bottom.equalToSuperview() 75 | } 76 | make.top.equalToSuperview() 77 | } 78 | } 79 | } 80 | 81 | extension CLDurationDataPickerView: UIPickerViewDataSource { 82 | func numberOfComponents(in pickerView: UIPickerView) -> Int { 83 | 2 84 | } 85 | 86 | func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 87 | let array = [durationArray.count, unitArray.count] 88 | return array[component] 89 | } 90 | 91 | func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat { 92 | 50 93 | } 94 | } 95 | 96 | extension CLDurationDataPickerView: UIPickerViewDelegate { 97 | func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { 98 | let label: UILabel = (view as? UILabel) ?? UILabel() 99 | label.textAlignment = .center 100 | label.font = UIFont.systemFont(ofSize: 18) 101 | var textColor = UIColor("#333333") 102 | let currentColor = UIColor.theme 103 | if component == 0 { 104 | textColor = durationIndex == row ? currentColor : textColor 105 | label.text = String(format: "%02d", durationArray[row]) 106 | } else if component == 1 { 107 | textColor = unitIndex == row ? currentColor : textColor 108 | label.text = unitArray[row] 109 | } 110 | label.textColor = textColor 111 | return label 112 | } 113 | 114 | func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 115 | if component == 0 { 116 | durationIndex = row 117 | } else if component == 1 { 118 | unitIndex = row 119 | } 120 | pickerView.reloadAllComponents() 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /Controller/CLPopupDataPickerController/CLOnePickerView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLOnePickerView.swift 3 | // CL 4 | // 5 | // Created by JmoVxia on 2020/4/22. 6 | // Copyright © 2020 JmoVxia. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CLOnePickerView: UIView { 12 | var dataSource: [String] = [] { 13 | didSet { 14 | seletedString = dataSource.first ?? "" 15 | } 16 | } 17 | 18 | var unit: String? { 19 | didSet { 20 | unitLabel.text = unit 21 | } 22 | } 23 | 24 | var space: CGFloat = -10 { 25 | didSet { 26 | if oldValue != space { 27 | unitLabel.snp.updateConstraints { make in 28 | make.centerX.equalToSuperview().offset(space) 29 | } 30 | } 31 | } 32 | } 33 | 34 | private(set) var seletedString: String = "" 35 | private lazy var pickerView: UIPickerView = { 36 | let pickerView = UIPickerView() 37 | pickerView.dataSource = self 38 | pickerView.delegate = self 39 | return pickerView 40 | }() 41 | 42 | private lazy var unitLabel: UILabel = { 43 | let view = UILabel() 44 | view.font = .mediumPingFangSC(14) 45 | view.textColor = .theme 46 | return view 47 | }() 48 | 49 | override init(frame: CGRect) { 50 | super.init(frame: frame) 51 | initUI() 52 | makeConstraints() 53 | } 54 | 55 | @available(*, unavailable) 56 | required init?(coder: NSCoder) { 57 | fatalError("init(coder:) has not been implemented") 58 | } 59 | } 60 | 61 | extension CLOnePickerView { 62 | private func initUI() { 63 | backgroundColor = UIColor.white 64 | addSubview(pickerView) 65 | pickerView.addSubview(unitLabel) 66 | } 67 | 68 | private func makeConstraints() { 69 | pickerView.snp.makeConstraints { make in 70 | if #available(iOS 11.0, *) { 71 | make.left.equalTo(self.safeAreaLayoutGuide).offset(15) 72 | make.right.equalTo(self.safeAreaLayoutGuide).offset(-15) 73 | make.bottom.equalTo(self.safeAreaLayoutGuide) 74 | } else { 75 | make.left.equalToSuperview().offset(15) 76 | make.right.equalToSuperview().offset(-15) 77 | make.bottom.equalToSuperview() 78 | } 79 | make.top.equalToSuperview() 80 | } 81 | unitLabel.snp.makeConstraints { make in 82 | make.centerY.equalToSuperview() 83 | make.centerX.equalToSuperview().offset(-10) 84 | } 85 | } 86 | } 87 | 88 | extension CLOnePickerView: UIPickerViewDataSource { 89 | func numberOfComponents(in pickerView: UIPickerView) -> Int { 90 | 1 91 | } 92 | 93 | func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 94 | dataSource.count 95 | } 96 | 97 | func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat { 98 | 50 99 | } 100 | } 101 | 102 | extension CLOnePickerView: UIPickerViewDelegate { 103 | func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { 104 | let label: UILabel = (view as? UILabel) ?? UILabel() 105 | label.textAlignment = .center 106 | label.font = UIFont.systemFont(ofSize: 18) 107 | label.textColor = .init("#333333") 108 | label.text = dataSource[row] 109 | return label 110 | } 111 | 112 | func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 113 | seletedString = dataSource[row] 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /Controller/CLPopupFlopController/CLFlopBottomView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLFlopBottomView.swift 3 | // FUSHENG 4 | // 5 | // Created by JmoVxia on 2019/12/26. 6 | // Copyright © 2019 FuSheng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CLFlopBottomView: UIView { 12 | lazy var iconImageView: UIImageView = { 13 | let iconImageView = UIImageView() 14 | iconImageView.image = UIImage(named: "FlopWant") 15 | return iconImageView 16 | }() 17 | 18 | lazy var titleLabel: UILabel = { 19 | let titleLabel = UILabel() 20 | titleLabel.text = "想要" 21 | titleLabel.font = UIFont.systemFont(ofSize: 15) 22 | titleLabel.textColor = .init("#FFFFFF") 23 | return titleLabel 24 | }() 25 | 26 | override init(frame: CGRect) { 27 | super.init(frame: frame) 28 | addSubview(iconImageView) 29 | addSubview(titleLabel) 30 | 31 | iconImageView.snp.makeConstraints { make in 32 | make.left.equalTo(0) 33 | make.centerY.equalToSuperview() 34 | } 35 | titleLabel.snp.makeConstraints { make in 36 | make.right.top.bottom.equalTo(0) 37 | make.left.equalTo(iconImageView.snp.right).offset(6) 38 | make.top.bottom.equalToSuperview() 39 | } 40 | } 41 | 42 | @available(*, unavailable) 43 | required init?(coder: NSCoder) { 44 | fatalError("init(coder:) has not been implemented") 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Controller/CLPopupFlopController/CLFlopPrizeView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLFlopPrizeView.swift 3 | // FUSHENG 4 | // 5 | // Created by JmoVxia on 2019/12/27. 6 | // Copyright © 2019 FuSheng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CLFlopPrizeView: UIView { 12 | var numberImage: UIImage? { 13 | didSet { 14 | numberImageView.image = numberImage 15 | } 16 | } 17 | 18 | private lazy var imageView: UIImageView = { 19 | let imageView = UIImageView() 20 | imageView.image = UIImage(named: "Prize") 21 | return imageView 22 | }() 23 | 24 | private lazy var numberImageView: UIImageView = { 25 | let numberImageView = UIImageView() 26 | numberImageView.image = UIImage(named: "number-2") 27 | return numberImageView 28 | }() 29 | 30 | private lazy var titleLabel: UILabel = { 31 | let titleLabel = UILabel() 32 | titleLabel.text = "商品需要2人助力即可免费获得" 33 | titleLabel.font = UIFont.systemFont(ofSize: 14.5) 34 | titleLabel.textColor = .init("#FFFFFF") 35 | return titleLabel 36 | }() 37 | 38 | private lazy var flopBottomView: CLFlopBottomView = { 39 | let flopBottomView = CLFlopBottomView() 40 | flopBottomView.iconImageView.image = UIImage(named: "share") 41 | flopBottomView.titleLabel.text = "邀请好友助力" 42 | flopBottomView.titleLabel.textColor = .init("#F90815") 43 | flopBottomView.titleLabel.font = UIFont.systemFont(ofSize: 13) 44 | flopBottomView.isUserInteractionEnabled = false 45 | return flopBottomView 46 | }() 47 | 48 | private lazy var bottomButton: UIButton = { 49 | let bottomButton = UIButton() 50 | bottomButton.setImage(UIImage(named: "FlopBottomButton2"), for: .normal) 51 | bottomButton.setImage(UIImage(named: "FlopBottomButton2"), for: .selected) 52 | bottomButton.setImage(UIImage(named: "FlopBottomButton2"), for: .highlighted) 53 | bottomButton.addTarget(self, action: #selector(bottomButtonAction), for: .touchUpInside) 54 | return bottomButton 55 | }() 56 | 57 | override init(frame: CGRect) { 58 | super.init(frame: frame) 59 | addSubview(imageView) 60 | imageView.addSubview(numberImageView) 61 | imageView.addSubview(titleLabel) 62 | addSubview(bottomButton) 63 | bottomButton.addSubview(flopBottomView) 64 | imageView.snp.makeConstraints { make in 65 | make.centerX.equalToSuperview() 66 | make.height.equalTo(324) 67 | make.width.equalTo(247) 68 | make.top.equalToSuperview() 69 | } 70 | numberImageView.snp.makeConstraints { make in 71 | make.centerX.equalToSuperview() 72 | make.centerY.equalToSuperview().offset(20) 73 | } 74 | titleLabel.snp.makeConstraints { make in 75 | make.centerX.equalToSuperview() 76 | make.bottom.equalToSuperview().offset(-38.5) 77 | } 78 | bottomButton.snp.makeConstraints { make in 79 | make.height.equalTo(35) 80 | make.width.equalTo(208) 81 | make.centerX.bottom.equalToSuperview() 82 | } 83 | flopBottomView.snp.makeConstraints { make in 84 | make.center.equalToSuperview() 85 | } 86 | setNeedsLayout() 87 | layoutIfNeeded() 88 | } 89 | 90 | @available(*, unavailable) 91 | required init?(coder: NSCoder) { 92 | fatalError("init(coder:) has not been implemented") 93 | } 94 | } 95 | 96 | extension CLFlopPrizeView { 97 | @objc func bottomButtonAction() {} 98 | } 99 | -------------------------------------------------------------------------------- /Controller/CLPopupFlopController/CLTwoSidedView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLTwoSidedView.swift 3 | // CLDemo 4 | // 5 | // Created by JmoVxia on 2019/12/27. 6 | // Copyright © 2019 JmoVxia. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CLTwoSidedView: UIView { 12 | var topView: UIView? { 13 | didSet { 14 | guard let view = topView else { 15 | return 16 | } 17 | addSubview(view) 18 | } 19 | } 20 | 21 | var bottomView: UIView? 22 | 23 | private var isTurning: Bool = false 24 | private var isReversed: Bool = false 25 | override init(frame: CGRect) { 26 | super.init(frame: frame) 27 | } 28 | 29 | @available(*, unavailable) 30 | required init?(coder: NSCoder) { 31 | fatalError("init(coder:) has not been implemented") 32 | } 33 | 34 | override func layoutSubviews() { 35 | super.layoutSubviews() 36 | topView?.frame = bounds 37 | bottomView?.frame = bounds 38 | } 39 | } 40 | 41 | extension CLTwoSidedView { 42 | func transition(withDuration duration: TimeInterval, completion: (() -> Void)?) { 43 | guard !isTurning, let top = topView, let bottom = bottomView else { 44 | return 45 | } 46 | isTurning = true 47 | if isReversed { 48 | UIView.transition(from: bottom, to: top, duration: duration, options: .transitionFlipFromLeft) { _ in 49 | completion?() 50 | self.isTurning = false 51 | self.isReversed = false 52 | } 53 | } else { 54 | UIView.transition(from: top, to: bottom, duration: duration, options: .transitionFlipFromRight) { _ in 55 | completion?() 56 | self.isTurning = false 57 | self.isReversed = true 58 | } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /Controller/CLPopupLoadingController/CLPopupLoadingController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLPopupLoadingController.swift 3 | // CL 4 | // 5 | // Created by JmoVxia on 2020/5/18. 6 | // Copyright © 2020 JmoVxia. All rights reserved. 7 | // 8 | 9 | import Lottie 10 | import UIKit 11 | 12 | class CLPopoverLoadingController: CLPopoverController { 13 | private lazy var backgroundView: UIView = { 14 | let view = UIView() 15 | view.backgroundColor = UIColor("#000000", alpha: 0.15) 16 | view.layer.cornerRadius = 5 17 | view.clipsToBounds = true 18 | return view 19 | }() 20 | 21 | private lazy var loadingView: LottieAnimationView = { 22 | let view = LottieAnimationView(name: "loading") 23 | view.backgroundBehavior = .pauseAndRestore 24 | view.loopMode = .loop 25 | view.play() 26 | return view 27 | }() 28 | } 29 | 30 | extension CLPopoverLoadingController { 31 | override func viewDidLoad() { 32 | super.viewDidLoad() 33 | view.addSubview(backgroundView) 34 | backgroundView.addSubview(loadingView) 35 | backgroundView.snp.makeConstraints { make in 36 | make.center.equalToSuperview() 37 | make.size.equalTo(65) 38 | } 39 | loadingView.snp.makeConstraints { make in 40 | make.center.equalToSuperview() 41 | make.size.equalTo(55) 42 | } 43 | } 44 | } 45 | 46 | extension CLPopoverLoadingController: CLPopoverProtocol { 47 | func showAnimation(completion: (() -> Void)?) { 48 | UIView.animate(withDuration: 0.25) { 49 | self.backgroundView.alpha = 1.0 50 | } completion: { _ in 51 | completion?() 52 | } 53 | } 54 | 55 | func dismissAnimation(completion: (() -> Void)?) { 56 | UIView.animate(withDuration: 0.25) { 57 | self.backgroundView.alpha = 0.0 58 | } completion: { _ in 59 | completion?() 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Controller/CLPopupLoadingController/loading.json: -------------------------------------------------------------------------------- 1 | {"v":"5.5.0","fr":30,"ip":0,"op":61,"w":600,"h":600,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":80,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.526],"y":[0.673]},"o":{"x":[0.472],"y":[0.326]},"t":0,"s":[0]},{"t":60,"s":[183]}],"ix":10},"p":{"a":0,"k":[300.062,300,0],"ix":2},"a":{"a":0,"k":[-22.637,19.301,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[368.602,368.602],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.17647058823529413,0.8196078431372549,0.47058823529411764,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":49,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-22.699,19.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.438],"y":[1]},"o":{"x":[0.579],"y":[0]},"t":30,"s":[0]},{"t":60,"s":[49]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.504],"y":[1]},"o":{"x":[0.559],"y":[0]},"t":0,"s":[1]},{"t":30,"s":[50]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[322.699,280.699,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[368.602,368.602],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.17647058823529413,0.8196078431372549,0.47058823529411764,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":49,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-22.699,19.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0}],"markers":[]} -------------------------------------------------------------------------------- /Controller/CLPopupMomentumController/CLGradientLayerView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLGradientLayerView.swift 3 | // CLDemo 4 | // 5 | // Created by Emma on 2020/1/27. 6 | // Copyright © 2020 JmoVxia. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CLGradientLayerView: UIView { 12 | var colors: [CGColor] = .init() { 13 | didSet { 14 | guard let gradientLayer = layer as? CAGradientLayer else { return } 15 | gradientLayer.colors = colors 16 | } 17 | } 18 | 19 | var startPoint: CGPoint? { 20 | didSet { 21 | guard let gradientLayer = layer as? CAGradientLayer else { return } 22 | gradientLayer.startPoint = CGPoint(x: 0, y: 0) 23 | } 24 | } 25 | 26 | var endPoint: CGPoint? { 27 | didSet { 28 | guard let gradientLayer = layer as? CAGradientLayer else { return } 29 | gradientLayer.endPoint = CGPoint(x: 0, y: 1) 30 | } 31 | } 32 | 33 | override class var layerClass: AnyClass { 34 | CAGradientLayer.classForCoder() 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Controller/CLPopupMomentumController/CLPopupMomentumController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLPopupMomentumController.swift 3 | // CLDemo 4 | // 5 | // Created by Chen JmoVxia on 2020/10/10. 6 | // Copyright © 2020 JmoVxia. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CLPopupMomentumController: CLPopoverController { 12 | private lazy var momentumView: CLMomentumView = { 13 | let view = CLMomentumView() 14 | view.backgroundColor = .orange 15 | view.layer.cornerRadius = 30 16 | view.clipsToBounds = true 17 | view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] 18 | return view 19 | }() 20 | } 21 | 22 | extension CLPopupMomentumController { 23 | override func viewDidLoad() { 24 | super.viewDidLoad() 25 | initUI() 26 | makeConstraints() 27 | } 28 | 29 | override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { 30 | coordinator.animate(alongsideTransition: { _ in 31 | print(size.height * 0.6) 32 | let momentumView = self.momentumView 33 | momentumView.closedTransform = momentumView.isOpen ? .identity : CGAffineTransform(translationX: 0, y: (momentumView.bounds.height) * 0.6) 34 | }, completion: nil) 35 | } 36 | } 37 | 38 | extension CLPopupMomentumController { 39 | private func initUI() { 40 | view.backgroundColor = UIColor.black.withAlphaComponent(0.0) 41 | view.addSubview(momentumView) 42 | let tap = UITapGestureRecognizer(target: self, action: #selector(hiddenAction)) 43 | view.addGestureRecognizer(tap) 44 | } 45 | 46 | private func makeConstraints() { 47 | momentumView.snp.makeConstraints { make in 48 | make.left.equalTo(self.view.safeAreaLayoutGuide.snp.left).offset(8) 49 | make.right.equalTo(self.view.safeAreaLayoutGuide.snp.right).offset(-8) 50 | make.bottom.equalToSuperview() 51 | make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top).offset(120) 52 | } 53 | } 54 | } 55 | 56 | extension CLPopupMomentumController: CLPopoverProtocol { 57 | func showAnimation(completion: (() -> Void)?) { 58 | view.setNeedsLayout() 59 | view.layoutIfNeeded() 60 | let height = momentumView.bounds.height 61 | momentumView.closedTransform = .init(translationX: 0, y: height) 62 | UIView.animate(withDuration: 0.35) { 63 | self.view.backgroundColor = UIColor.black.withAlphaComponent(0.35) 64 | self.momentumView.closedTransform = .init(translationX: 0, y: height * 0.6) 65 | } completion: { _ in 66 | completion?() 67 | } 68 | } 69 | 70 | func dismissAnimation(completion: (() -> Void)?) { 71 | view.setNeedsLayout() 72 | view.layoutIfNeeded() 73 | let height = momentumView.bounds.height 74 | UIView.animate(withDuration: 0.35, animations: { 75 | self.view.backgroundColor = UIColor.black.withAlphaComponent(0.0) 76 | self.momentumView.closedTransform = .init(translationX: 0, y: height) 77 | }) { _ in 78 | CLPopoverManager.dismiss(self.key) 79 | completion?() 80 | } 81 | } 82 | 83 | @objc private func hiddenAction() { 84 | dismissAnimation(completion: nil) 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /Controller/CLPopupTipsController/CLPopupTipsController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLPopupTipsController.swift 3 | // Potato 4 | // 5 | // Created by Emma on 2020/1/8. 6 | // 7 | 8 | import UIKit 9 | 10 | class CLPopupTipsController: CLPopoverController { 11 | var text: String? { 12 | didSet { 13 | label.text = text 14 | } 15 | } 16 | 17 | var dismissInterval: TimeInterval = 1.0 18 | var dissmissCallBack: (() -> Void)? 19 | private lazy var label: UILabel = { 20 | let label = UILabel() 21 | label.font = UIFont.systemFont(ofSize: 14) 22 | label.textColor = UIColor.white 23 | label.numberOfLines = 0 24 | return label 25 | }() 26 | 27 | private lazy var backgroundView: UIView = { 28 | let backgroundView = UIView() 29 | backgroundView.alpha = 0.0 30 | backgroundView.backgroundColor = UIColor.black.withAlphaComponent(0.8) 31 | return backgroundView 32 | }() 33 | } 34 | 35 | extension CLPopupTipsController { 36 | override func viewDidLoad() { 37 | super.viewDidLoad() 38 | initUI() 39 | makeConstraints() 40 | } 41 | 42 | override func viewDidLayoutSubviews() { 43 | super.viewDidLayoutSubviews() 44 | backgroundView.layer.cornerRadius = backgroundView.frame.height * 0.25 45 | backgroundView.clipsToBounds = true 46 | } 47 | } 48 | 49 | extension CLPopupTipsController { 50 | private func initUI() { 51 | view.backgroundColor = UIColor.clear 52 | view.addSubview(backgroundView) 53 | backgroundView.addSubview(label) 54 | } 55 | 56 | private func makeConstraints() { 57 | backgroundView.snp.makeConstraints { make in 58 | make.center.equalToSuperview() 59 | make.width.lessThanOrEqualToSuperview().multipliedBy(0.75) 60 | } 61 | label.snp.makeConstraints { make in 62 | make.left.top.equalToSuperview().offset(10) 63 | make.right.bottom.equalToSuperview().offset(-10) 64 | } 65 | } 66 | } 67 | 68 | extension CLPopupTipsController: CLPopoverProtocol { 69 | func showAnimation(completion: (() -> Void)?) { 70 | UIView.animate(withDuration: 0.35, animations: { 71 | self.backgroundView.alpha = 1.0 72 | }, completion: { _ in 73 | DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + self.dismissInterval) { 74 | self.dismissAnimation { 75 | self.dissmissCallBack?() 76 | } 77 | } 78 | }) 79 | } 80 | 81 | func dismissAnimation(completion: (() -> Void)?) { 82 | UIView.animate(withDuration: 0.35, animations: { 83 | self.backgroundView.alpha = 0.0 84 | }) { _ in 85 | CLPopoverManager.dismiss(self.key) 86 | completion?() 87 | } 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /Extension/UIFont+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIFont+Extension.swift 3 | // CL 4 | // 5 | // Created by Chen JmoVxia on 2021/11/30. 6 | // Copyright © 2021 JmoVxia. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | extension UIFont { 13 | /// PingFang-SC-Bold字体 14 | static func boldPingFangSC(_ size: CGFloat) -> UIFont { 15 | UIFont(name: "HelveticaNeue-Medium", size: size) ?? .boldSystemFont(ofSize: size) 16 | } 17 | 18 | /// PingFang-SC-Medium字体 19 | static func mediumPingFangSC(_ size: CGFloat) -> UIFont { 20 | UIFont(name: "HelveticaNeue", size: size) ?? .systemFont(ofSize: size) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Extension/UISpringTimingParameters+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISpringTimingParameters+Extension.swift 3 | // CLDemo 4 | // 5 | // Created by Chen JmoVxia on 2020/10/10. 6 | // Copyright © 2020 JmoVxia. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UISpringTimingParameters { 12 | /// A design-friendly way to create a spring timing curve. 13 | /// 14 | /// - Parameters: 15 | /// - damping: The 'bounciness' of the animation. Value must be between 0 and 1. 16 | /// - response: The 'speed' of the animation. 17 | /// - initialVelocity: The vector describing the starting motion of the property. Optional, default is `.zero`. 18 | convenience init(damping: CGFloat, response: CGFloat, initialVelocity: CGVector = .zero) { 19 | let stiffness = pow(2 * .pi / response, 2) 20 | let damp = 4 * .pi * damping / response 21 | self.init(mass: 1, stiffness: stiffness, damping: damp, initialVelocity: initialVelocity) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Extension/UITextField+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+Extension.swift 3 | // CL 4 | // 5 | // Created by JmoVxia on 2020/4/2. 6 | // Copyright © 2020 JmoVxia. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UITextField { 12 | /// 设置占位文字 13 | /// - Parameters: 14 | /// - string: 字符串 15 | /// - color: 颜色 16 | /// - font: 字体 17 | func setPlaceholder(_ string: String, color: UIColor? = nil, font: UIFont? = nil) { 18 | let attributedString = NSMutableAttributedString(string: string) 19 | if let color { 20 | attributedString.addAttributes([NSAttributedString.Key.foregroundColor: color], range: NSRange(location: 0, length: string.count)) 21 | } 22 | if let font { 23 | attributedString.addAttributes([NSAttributedString.Key.font: font], range: NSRange(location: 0, length: string.count)) 24 | } 25 | attributedPlaceholder = attributedString 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 JmoVxia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | #source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' 2 | platform :ios, '12.0' 3 | #use_frameworks! 4 | use_modular_headers! 5 | inhibit_all_warnings! 6 | install! 'cocoapods', :deterministic_uuids => false 7 | 8 | target 'CLPopoverManagerDemo' do 9 | inhibit_all_warnings! 10 | pod 'LookinServer', :subspecs => ['Swift'], :configurations => ['Debug'] 11 | pod 'SwiftFormat/CLI', :configurations => ['Debug'] 12 | pod 'SnapKit' 13 | pod 'lottie-ios' 14 | pod 'DateToolsSwift' 15 | end 16 | 17 | post_install do |installer| 18 | installer.pods_project.targets.each do |target| 19 | target.build_configurations.each do |config| 20 | config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' 21 | if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0 22 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' 23 | end 24 | end 25 | end 26 | end 27 | 28 | 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # iOS开发之弹窗管理 2 | 3 | ## 前言 4 | 5 | “千淘万漉虽辛苦,吹尽狂沙始到金。”在这快速变化的互联网行业,身边的朋友有的选择了勇敢创业,有的则在技术的海洋中默默耕耘。时常在深夜反思,作为一个开发者,我们的价值何在?答案或许就在那行代码中,润物细无声。以下是我在日常开发中封装的一个弹窗管理工具——[CLPopoverManager](https://github.com/JmoVxia/CLPopoverManager),希望能为大家提供一些灵感和帮助。 6 | 7 | ## 概述 8 | 9 | 在移动应用开发中,弹窗作为一种重要的用户交互方式,使用频率非常高。无论是提示信息、广告展示,还是操作确认,弹窗都扮演着重要角色。然而,如果弹窗的显示逻辑缺乏合理控制,可能会出现弹窗重叠、顺序混乱等问题,极大影响用户体验。因此,我开发了[CLPopoverManager](https://github.com/JmoVxia/CLPopoverManager),旨在为弹窗显示提供一个统一、可控的管理方案。 10 | 11 | ## 功能 12 | 13 | - 支持`排队`、`插队`、`替换`、`唯一`模式 14 | - 支持优先级设置 15 | - 支持去重标记 16 | - 支持手势穿透 17 | - 支持手势穿透时自动隐藏 18 | - 支持自动旋转 19 | - 支持隐藏状态栏 20 | - 支持状态栏样式 21 | - 支持设置界面方向 22 | - 支持夜间模式 23 | 24 | ## 原理 25 | 26 | 弹窗采用伪单例模式管理`UIWindow`,内部采用自定义队列控制显示顺序,对外使用`UIViewController`。 27 | 28 | ## 使用 29 | 30 | 自定义`UIViewController`继承`CLPopoverController`并且遵守`CLPopoverProtocol`协议即可,内部你可以自行实现弹窗相关动画和UI。 31 | 32 | ### 示例代码 33 | 34 | ```swift 35 | Swift 36 | Copy code 37 | class CustomPopoverController: CLPopoverController, CLPopoverProtocol { 38 | // 实现弹窗相关逻辑 39 | override func viewDidLoad() { 40 | super.viewDidLoad() 41 | setupUI() 42 | } 43 | 44 | private func setupUI() { 45 | // 配置弹窗UI 46 | } 47 | 48 | func showAnimation(completion: (() -> Void)? = nil) { 49 | // 显示动画 50 | } 51 | 52 | func dismissAnimation(completion: (() -> Void)? = nil) { 53 | // 隐藏动画 54 | } 55 | } 56 | 57 | /// 弹出 58 | let popover = CustomPopoverController() 59 | popover.config.popoverMode = .queue 60 | let key = CLPopoverManager.show(popover: popover) 61 | 62 | /// 隐藏单个弹窗 63 | CLPopoverManager.dismiss(key) 64 | /// 隐藏所有弹窗 65 | CLPopoverManager.dismissAll() 66 | ``` 67 | 68 | ## 模式和优先级 69 | 70 | ### 模式 71 | 72 | 1. **排队模式**:如果当前没有弹窗显示,则立即显示;如果有弹窗正在显示,会进入到等待队列,后续按照优先级显示。 73 | 2. **插队模式**:无视当前显示的弹窗,立即显示,会多个弹窗重叠。 74 | 3. **替换模式**:替换当前显示的弹窗,立即显示,会隐藏之前的所有弹窗。 75 | 4. **唯一模式**:替换当前显示的弹窗,独占显示,会隐藏之前的所有弹窗并且阻止后续所有弹窗。 76 | 77 | ### 优先级 78 | 79 | 弹窗可以设置优先级,高优先级的弹窗将优先显示。只对进入到等待队列中的弹窗生效,前面弹窗消失后,会在等待队列中查找优先级高的弹窗优先显示。 80 | 81 | ## 常见问题解答(QA) 82 | 83 | ### 为什么使用 `UIViewController` 而不是 `UIView`? 84 | 85 | `UIViewController` 相比 `UIView` 能够提供生命周期相关方法,管理起来更加方便。 86 | 87 | ### 为什么使用 `UIWindow`? 88 | 89 | `UIWindow` 可以不入侵项目 `UI`,保障不扰乱当前项目的同时,可以实现横竖屏切换、状态栏样式等。 90 | 91 | ### 为什么是伪单例模式? 92 | 93 | 弹窗管理在所有弹窗都销毁后,会自动销毁管理者的单例。 94 | 95 | ### 为什么有优先级的情况还需要这么多模式? 96 | 97 | 需求多种多样,为保障灵活性的同时,还能够保障弹窗的顺序。 98 | 99 | ## 结语 100 | 101 | 通过封装 [CLPopoverManager](https://github.com/JmoVxia/CLPopoverManager),我们能够更好地管理 iOS 应用中的弹窗显示逻辑,提升用户体验,保障应用的稳定性。希望这个工具能够帮助到大家,同时也欢迎各位提出宝贵的意见和建议。 102 | 103 | 开发是一种艺术,不仅需要技术的积累,更需要灵感和创造力。愿我们在追逐技术之巅的路上,能够彼此激励,共同成长。愿所有的开发者都能在自己的代码世界中找到那一片属于自己的净土。 104 | 105 | **PS**:心中感慨良多,奈何腹中无墨,一个字总结——懒。 106 | 107 | ## cocoapods 108 | 109 | ```swift 110 | pod ' CLPopoverManager' 111 | ``` 112 | 113 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DrawImage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DrawImage/one.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "one.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DrawImage/one.imageset/one.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/DrawImage/one.imageset/one.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DrawImage/three.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "three.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DrawImage/three.imageset/three.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/DrawImage/three.imageset/three.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DrawImage/two.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "two.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DrawImage/two.imageset/two.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/DrawImage/two.imageset/two.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopBottomButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "FlopBottomButton@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "FlopBottomButton@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopBottomButton.imageset/FlopBottomButton@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopBottomButton.imageset/FlopBottomButton@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopBottomButton.imageset/FlopBottomButton@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopBottomButton.imageset/FlopBottomButton@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopBottomButton2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "FlopBottomButton2@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "FlopBottomButton2@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopBottomButton2.imageset/FlopBottomButton2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopBottomButton2.imageset/FlopBottomButton2@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopBottomButton2.imageset/FlopBottomButton2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopBottomButton2.imageset/FlopBottomButton2@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopCard.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "FlopCard@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "FlopCard@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopCard.imageset/FlopCard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopCard.imageset/FlopCard@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopCard.imageset/FlopCard@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopCard.imageset/FlopCard@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopTop.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "FlopTop@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "FlopTop@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopTop.imageset/FlopTop@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopTop.imageset/FlopTop@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopTop.imageset/FlopTop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopTop.imageset/FlopTop@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopWant.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "FlopWant@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "FlopWant@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopWant.imageset/FlopWant@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopWant.imageset/FlopWant@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopWant.imageset/FlopWant@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopWant.imageset/FlopWant@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopcloseButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "FlopcloseButton@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "FlopcloseButton@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopcloseButton.imageset/FlopcloseButton@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopcloseButton.imageset/FlopcloseButton@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/FlopcloseButton.imageset/FlopcloseButton@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/FlopcloseButton.imageset/FlopcloseButton@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-1.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-1.imageset/Hexacon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-1.imageset/Hexacon-1.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-10.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-10.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-10.imageset/Hexacon-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-10.imageset/Hexacon-10.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-11.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-11.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-11.imageset/Hexacon-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-11.imageset/Hexacon-11.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-12.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-12.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-12.imageset/Hexacon-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-12.imageset/Hexacon-12.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-13.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-13.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-13.imageset/Hexacon-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-13.imageset/Hexacon-13.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-14.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-14.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-14.imageset/Hexacon-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-14.imageset/Hexacon-14.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-15.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-15.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-15.imageset/Hexacon-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-15.imageset/Hexacon-15.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-16.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-16.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-16.imageset/Hexacon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-16.imageset/Hexacon-16.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-17.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-17.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-17.imageset/Hexacon-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-17.imageset/Hexacon-17.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-18.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-18.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-18.imageset/Hexacon-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-18.imageset/Hexacon-18.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-19.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-19.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-19.imageset/Hexacon-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-19.imageset/Hexacon-19.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-2.imageset/Hexacon-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-2.imageset/Hexacon-2.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-20.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-20.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-20.imageset/Hexacon-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-20.imageset/Hexacon-20.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-21.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-21.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-21.imageset/Hexacon-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-21.imageset/Hexacon-21.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-22.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-22.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-22.imageset/Hexacon-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-22.imageset/Hexacon-22.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-23.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-23.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-23.imageset/Hexacon-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-23.imageset/Hexacon-23.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-24.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-24.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-24.imageset/Hexacon-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-24.imageset/Hexacon-24.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-25.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-25.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-25.imageset/Hexacon-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-25.imageset/Hexacon-25.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-3.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-3.imageset/Hexacon-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-3.imageset/Hexacon-3.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-4.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-4.imageset/Hexacon-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-4.imageset/Hexacon-4.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-5.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-5.imageset/Hexacon-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-5.imageset/Hexacon-5.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-6.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-6.imageset/Hexacon-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-6.imageset/Hexacon-6.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-7.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-7.imageset/Hexacon-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-7.imageset/Hexacon-7.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-8.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-8.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-8.imageset/Hexacon-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-8.imageset/Hexacon-8.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-9.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexacon-9.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexacon/Hexacon-9.imageset/Hexacon-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexacon/Hexacon-9.imageset/Hexacon-9.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-1.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-1.imageset/Hexagon-1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-1.imageset/Hexagon-1.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-10.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-10.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-10.imageset/Hexagon-10.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-10.imageset/Hexagon-10.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-11.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-11.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-11.imageset/Hexagon-11.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-11.imageset/Hexagon-11.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-12.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-12.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-12.imageset/Hexagon-12.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-12.imageset/Hexagon-12.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-13.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-13.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-13.imageset/Hexagon-13.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-13.imageset/Hexagon-13.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-14.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-14.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-14.imageset/Hexagon-14.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-14.imageset/Hexagon-14.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-15.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-15.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-15.imageset/Hexagon-15.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-15.imageset/Hexagon-15.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-16.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-16.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-16.imageset/Hexagon-16.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-16.imageset/Hexagon-16.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-17.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-17.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-17.imageset/Hexagon-17.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-17.imageset/Hexagon-17.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-18.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-18.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-18.imageset/Hexagon-18.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-18.imageset/Hexagon-18.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-19.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-19.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-19.imageset/Hexagon-19.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-19.imageset/Hexagon-19.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-2.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-2.imageset/Hexagon-2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-2.imageset/Hexagon-2.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-20.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-20.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-20.imageset/Hexagon-20.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-20.imageset/Hexagon-20.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-21.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-21.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-21.imageset/Hexagon-21.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-21.imageset/Hexagon-21.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-22.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-22.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-22.imageset/Hexagon-22.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-22.imageset/Hexagon-22.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-23.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-23.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-23.imageset/Hexagon-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-23.imageset/Hexagon-23.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-24.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-24.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-24.imageset/Hexagon-24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-24.imageset/Hexagon-24.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-25.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-25.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-25.imageset/Hexagon-25.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-25.imageset/Hexagon-25.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-26.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-26.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-26.imageset/Hexagon-26.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-26.imageset/Hexagon-26.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-27.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-27.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-27.imageset/Hexagon-27.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-27.imageset/Hexagon-27.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-28.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-28.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-28.imageset/Hexagon-28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-28.imageset/Hexagon-28.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-29.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-29.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-29.imageset/Hexagon-29.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-29.imageset/Hexagon-29.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-3.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-3.imageset/Hexagon-3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-3.imageset/Hexagon-3.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-30.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-30.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-30.imageset/Hexagon-30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-30.imageset/Hexagon-30.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-4.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-4.imageset/Hexagon-4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-4.imageset/Hexagon-4.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-5.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-5.imageset/Hexagon-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-5.imageset/Hexagon-5.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-6.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-6.imageset/Hexagon-6.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-6.imageset/Hexagon-6.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-7.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-7.imageset/Hexagon-7.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-7.imageset/Hexagon-7.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-8.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-8.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-8.imageset/Hexagon-8.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-8.imageset/Hexagon-8.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-9.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hexagon-9.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Hexagon/Hexagon-9.imageset/Hexagon-9.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Hexagon/Hexagon-9.imageset/Hexagon-9.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Prize.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Prize@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Prize@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Prize.imageset/Prize@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Prize.imageset/Prize@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Prize.imageset/Prize@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/Prize.imageset/Prize@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/Hamster.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Hamster@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Hamster@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/Hamster.imageset/Hamster@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/Hamster.imageset/Hamster@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/Hamster.imageset/Hamster@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/Hamster.imageset/Hamster@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/bear.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "bear@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "bear@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/bear.imageset/bear@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/bear.imageset/bear@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/bear.imageset/bear@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/bear.imageset/bear@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/cat.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "cat@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "cat@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/cat.imageset/cat@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/cat.imageset/cat@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/cat.imageset/cat@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/cat.imageset/cat@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "close@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "close@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/close.imageset/close@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/close.imageset/close@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/close.imageset/close@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/close.imageset/close@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/fox.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "fox@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "fox@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/fox.imageset/fox@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/fox.imageset/fox@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/fox.imageset/fox@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/fox.imageset/fox@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/menu.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "menu@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "menu@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/menu.imageset/menu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/menu.imageset/menu@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/menu.imageset/menu@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/menu.imageset/menu@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/orangeCat.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "orangeCat@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "orangeCat@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/orangeCat.imageset/orangeCat@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/orangeCat.imageset/orangeCat@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/orangeCat.imageset/orangeCat@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/orangeCat.imageset/orangeCat@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/pig.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "pig@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "pig@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/pig.imageset/pig@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/pig.imageset/pig@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/WheelMenu/pig.imageset/pig@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/WheelMenu/pig.imageset/pig@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/add.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "add@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "add@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/add.imageset/add@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/add.imageset/add@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/add.imageset/add@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/add.imageset/add@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/addIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "addIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "addIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/addIcon.imageset/addIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/addIcon.imageset/addIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/addIcon.imageset/addIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/addIcon.imageset/addIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/advNsel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "advNsel@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "advNsel@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/advNsel.imageset/advNsel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/advNsel.imageset/advNsel@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/advNsel.imageset/advNsel@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/advNsel.imageset/advNsel@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/advSel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "advSel@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "advSel@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/advSel.imageset/advSel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/advSel.imageset/advSel@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/advSel.imageset/advSel@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/advSel.imageset/advSel@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/album.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "album@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "album@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/album.imageset/album@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/album.imageset/album@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/album.imageset/album@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/album.imageset/album@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/btn_x.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "btn_x.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "btn_x@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "btn_x@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/btn_x.imageset/btn_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/btn_x.imageset/btn_x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/btn_x.imageset/btn_x@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/btn_x.imageset/btn_x@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/btn_x.imageset/btn_x@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/btn_x.imageset/btn_x@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "capture_back.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "capture_back@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "capture_back@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_back.imageset/capture_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_back.imageset/capture_back.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_back.imageset/capture_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_back.imageset/capture_back@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_back.imageset/capture_back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_back.imageset/capture_back@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_focus.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "capture_focus.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "capture_focus@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "capture_focus@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_focus.imageset/capture_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_focus.imageset/capture_focus.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_focus.imageset/capture_focus@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_focus.imageset/capture_focus@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_focus.imageset/capture_focus@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_focus.imageset/capture_focus@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_rotate_camera.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "capture_rotate_camera.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "capture_rotate_camera@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "capture_rotate_camera@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_rotate_camera.imageset/capture_rotate_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_rotate_camera.imageset/capture_rotate_camera.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_rotate_camera.imageset/capture_rotate_camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_rotate_camera.imageset/capture_rotate_camera@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/capture_rotate_camera.imageset/capture_rotate_camera@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/capture_rotate_camera.imageset/capture_rotate_camera@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/ccc.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ccc.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/ccc.imageset/ccc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/ccc.imageset/ccc.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/clear.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "clear@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "clear@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/clear.imageset/clear@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/clear.imageset/clear@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/clear.imageset/clear@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/clear.imageset/clear@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/clearIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "clearIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "clearIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/clearIcon.imageset/clearIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/clearIcon.imageset/clearIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/clearIcon.imageset/clearIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/clearIcon.imageset/clearIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/cutover.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "cutover@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "cutover@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/cutover.imageset/cutover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/cutover.imageset/cutover@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/cutover.imageset/cutover@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/cutover.imageset/cutover@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/cutoverH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "cutoverH@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "cutoverH@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/cutoverH.imageset/cutoverH@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/cutoverH.imageset/cutoverH@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/cutoverH.imageset/cutoverH@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/cutoverH.imageset/cutoverH@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/deleteHIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "deleteHIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "deleteHIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/deleteHIcon.imageset/deleteHIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/deleteHIcon.imageset/deleteHIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/deleteHIcon.imageset/deleteHIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/deleteHIcon.imageset/deleteHIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/deleteIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "deleteIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "deleteIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/deleteIcon.imageset/deleteIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/deleteIcon.imageset/deleteIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/deleteIcon.imageset/deleteIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/deleteIcon.imageset/deleteIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateAIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "evaluateAIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "evaluateAIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateAIcon.imageset/evaluateAIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/evaluateAIcon.imageset/evaluateAIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateAIcon.imageset/evaluateAIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/evaluateAIcon.imageset/evaluateAIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateBIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "evaluateBIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "evaluateBIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateBIcon.imageset/evaluateBIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/evaluateBIcon.imageset/evaluateBIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateBIcon.imageset/evaluateBIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/evaluateBIcon.imageset/evaluateBIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateCIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "evaluateCIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "evaluateCIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateCIcon.imageset/evaluateCIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/evaluateCIcon.imageset/evaluateCIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/evaluateCIcon.imageset/evaluateCIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/evaluateCIcon.imageset/evaluateCIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/facialIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "facialIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "facialIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/facialIcon.imageset/facialIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/facialIcon.imageset/facialIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/facialIcon.imageset/facialIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/facialIcon.imageset/facialIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/fontSizeSlider.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "fontSizeSlider@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "fontSizeSlider@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/fontSizeSlider.imageset/fontSizeSlider@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/fontSizeSlider.imageset/fontSizeSlider@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/fontSizeSlider.imageset/fontSizeSlider@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/fontSizeSlider.imageset/fontSizeSlider@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/heart.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "heart.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/heart.imageset/heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/heart.imageset/heart.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_failed.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_failed@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "icon_failed@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_failed.imageset/icon_failed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/icon_failed.imageset/icon_failed@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_failed.imageset/icon_failed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/icon_failed.imageset/icon_failed@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_friend.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon_friend.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "icon_friend@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "icon_friend@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_friend.imageset/icon_friend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/icon_friend.imageset/icon_friend.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_friend.imageset/icon_friend@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/icon_friend.imageset/icon_friend@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_friend.imageset/icon_friend@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/icon_friend.imageset/icon_friend@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_voice.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_voice@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "icon_voice@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_voice.imageset/icon_voice@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/icon_voice.imageset/icon_voice@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/icon_voice.imageset/icon_voice@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/icon_voice.imageset/icon_voice@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/img_time.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "img_time@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "img_time@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/img_time.imageset/img_time@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/img_time.imageset/img_time@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/img_time.imageset/img_time@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/img_time.imageset/img_time@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/keyboard.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "keyboard@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "keyboard@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/keyboard.imageset/keyboard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/keyboard.imageset/keyboard@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/keyboard.imageset/keyboard@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/keyboard.imageset/keyboard@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/knock_emoji_delete.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "knock_emoji_delete@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "knock_emoji_delete@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/knock_emoji_delete.imageset/knock_emoji_delete@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/knock_emoji_delete.imageset/knock_emoji_delete@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/knock_emoji_delete.imageset/knock_emoji_delete@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/knock_emoji_delete.imageset/knock_emoji_delete@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/leftBg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "leftBg@2x.png", 9 | "idiom" : "universal", 10 | "resizing" : { 11 | "cap-insets" : { 12 | "bottom" : 16, 13 | "left" : 40, 14 | "right" : 50, 15 | "top" : 58 16 | }, 17 | "center" : { 18 | "height" : 1, 19 | "mode" : "stretch", 20 | "width" : 1 21 | }, 22 | "mode" : "9-part" 23 | }, 24 | "scale" : "2x" 25 | }, 26 | { 27 | "filename" : "leftBg@3x.png", 28 | "idiom" : "universal", 29 | "resizing" : { 30 | "cap-insets" : { 31 | "bottom" : 21, 32 | "left" : 60, 33 | "right" : 76, 34 | "top" : 91 35 | }, 36 | "center" : { 37 | "height" : 1, 38 | "mode" : "stretch", 39 | "width" : 1 40 | }, 41 | "mode" : "9-part" 42 | }, 43 | "scale" : "3x" 44 | } 45 | ], 46 | "info" : { 47 | "author" : "xcode", 48 | "version" : 1 49 | }, 50 | "properties" : { 51 | "template-rendering-intent" : "original" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/leftBg.imageset/leftBg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/leftBg.imageset/leftBg@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/leftBg.imageset/leftBg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/leftBg.imageset/leftBg@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/like.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "like.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/like.imageset/like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/like.imageset/like.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/navigationBack.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "navigationBack.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "navigationBack@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "navigationBack@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/navigationBack.imageset/navigationBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/navigationBack.imageset/navigationBack.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/navigationBack.imageset/navigationBack@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/navigationBack.imageset/navigationBack@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/navigationBack.imageset/navigationBack@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/navigationBack.imageset/navigationBack@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/number-2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "number-2@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "number-2@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/number-2.imageset/number-2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/number-2.imageset/number-2@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/number-2.imageset/number-2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/number-2.imageset/number-2@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/pic1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "pic1.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/pic1.imageset/pic1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/pic1.imageset/pic1.jpg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/pic2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "pic2.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/pic2.imageset/pic2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/pic2.imageset/pic2.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/picIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "picIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "picIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/picIcon.imageset/picIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/picIcon.imageset/picIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/picIcon.imageset/picIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/picIcon.imageset/picIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "img_158x158@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "img_158x158@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/placeholder.imageset/img_158x158@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/placeholder.imageset/img_158x158@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/placeholder.imageset/img_158x158@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/placeholder.imageset/img_158x158@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/qq.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "qq.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/qq.imageset/qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/qq.imageset/qq.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/rightBg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "rightBg@2x.png", 9 | "idiom" : "universal", 10 | "resizing" : { 11 | "cap-insets" : { 12 | "bottom" : 17, 13 | "left" : 45, 14 | "right" : 45, 15 | "top" : 57 16 | }, 17 | "center" : { 18 | "height" : 1, 19 | "mode" : "stretch", 20 | "width" : 1 21 | }, 22 | "mode" : "9-part" 23 | }, 24 | "scale" : "2x" 25 | }, 26 | { 27 | "filename" : "rightBg@3x.png", 28 | "idiom" : "universal", 29 | "resizing" : { 30 | "cap-insets" : { 31 | "bottom" : 27, 32 | "left" : 68, 33 | "right" : 68, 34 | "top" : 85 35 | }, 36 | "center" : { 37 | "height" : 1, 38 | "mode" : "stretch", 39 | "width" : 1 40 | }, 41 | "mode" : "9-part" 42 | }, 43 | "scale" : "3x" 44 | } 45 | ], 46 | "info" : { 47 | "author" : "xcode", 48 | "version" : 1 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/rightBg.imageset/rightBg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/rightBg.imageset/rightBg@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/rightBg.imageset/rightBg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/rightBg.imageset/rightBg@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/searchIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "searchIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "searchIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/searchIcon.imageset/searchIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/searchIcon.imageset/searchIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/searchIcon.imageset/searchIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/searchIcon.imageset/searchIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/selectIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "selectIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "selectIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/selectIcon.imageset/selectIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/selectIcon.imageset/selectIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/selectIcon.imageset/selectIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/selectIcon.imageset/selectIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sendIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "sendIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "sendIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sendIcon.imageset/sendIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/sendIcon.imageset/sendIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sendIcon.imageset/sendIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/sendIcon.imageset/sendIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "share@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "share@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/share.imageset/share@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/share.imageset/share@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/share.imageset/share@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/share.imageset/share@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/smile.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "smile.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/smile.imageset/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/smile.imageset/smile.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sss.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "sss.jpeg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sss.imageset/sss.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/sss.imageset/sss.jpeg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/star.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "star.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/star.imageset/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/star.imageset/star.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/advisoty.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "advisoty@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "advisoty@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/advisoty.imageset/advisoty@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/advisoty.imageset/advisoty@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/advisoty.imageset/advisoty@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/advisoty.imageset/advisoty@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/advisotyHover.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "advisotyHover@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "advisotyHover@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/advisotyHover.imageset/advisotyHover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/advisotyHover.imageset/advisotyHover@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/advisotyHover.imageset/advisotyHover@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/advisotyHover.imageset/advisotyHover@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/indenxHover.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "indenxHover@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "indenxHover@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/indenxHover.imageset/indenxHover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/indenxHover.imageset/indenxHover@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/indenxHover.imageset/indenxHover@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/indenxHover.imageset/indenxHover@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/index.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "index@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "index@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/index.imageset/index@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/index.imageset/index@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/index.imageset/index@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/index.imageset/index@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/me.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "me@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "me@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/me.imageset/me@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/me.imageset/me@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/me.imageset/me@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/me.imageset/me@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/meHover.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "meHover@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "meHover@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/meHover.imageset/meHover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/meHover.imageset/meHover@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/meHover.imageset/meHover@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/meHover.imageset/meHover@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/meal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "meal@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "meal@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/meal.imageset/meal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/meal.imageset/meal@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/meal.imageset/meal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/meal.imageset/meal@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/mealHover.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "meal Hover@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "meal Hover@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/mealHover.imageset/meal Hover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/mealHover.imageset/meal Hover@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/mealHover.imageset/meal Hover@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/mealHover.imageset/meal Hover@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/recording.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "recording@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "recording@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/recording.imageset/recording@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/recording.imageset/recording@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/tabbar/recording.imageset/recording@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/tabbar/recording.imageset/recording@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/takingPicIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "takingPicIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "takingPicIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/takingPicIcon.imageset/takingPicIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/takingPicIcon.imageset/takingPicIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/takingPicIcon.imageset/takingPicIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/takingPicIcon.imageset/takingPicIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/voiceIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "voiceIcon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "voiceIcon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/voiceIcon.imageset/voiceIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/voiceIcon.imageset/voiceIcon@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/voiceIcon.imageset/voiceIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/voiceIcon.imageset/voiceIcon@3x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/woxin_chatLeft_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "woxin_chatLeft_bg@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/woxin_chatLeft_bg.imageset/woxin_chatLeft_bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/woxin_chatLeft_bg.imageset/woxin_chatLeft_bg@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/woxin_chatRight_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "woxin_chatRight_bg@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/woxin_chatRight_bg.imageset/woxin_chatRight_bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/woxin_chatRight_bg.imageset/woxin_chatRight_bg@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/woxin_setFontSize_line.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "woxin_setFontSize_line@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "woxin_setFontSize_line@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Resources/Assets.xcassets/woxin_setFontSize_line.imageset/woxin_setFontSize_line@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/woxin_setFontSize_line.imageset/woxin_setFontSize_line@2x.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/woxin_setFontSize_line.imageset/woxin_setFontSize_line@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JmoVxia/CLPopoverManager/63d5f061c6d25689dc09732e3973f352c7c57413/Resources/Assets.xcassets/woxin_setFontSize_line.imageset/woxin_setFontSize_line@3x.png -------------------------------------------------------------------------------- /Resources/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | --------------------------------------------------------------------------------