From 444ee519b362632537f0bb0cb2dbbb8d724e95c7 Mon Sep 17 00:00:00 2001 From: Muhammad Zeeshan Date: Sat, 16 Jan 2021 11:48:26 +0500 Subject: [PATCH 1/2] - example added for showing reactions in presented view controller - fixing #18 --- Example/Podfile.lock | 2 +- Example/Pods/Manifest.lock | 2 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 204 +++++++++--------- .../ReactionButton/Base.lproj/Main.storyboard | 40 +++- .../SampleTableViewController.swift | 15 ++ .../ReactionButton/SampleViewController.swift | 7 + Sources/ReactionButton/ReactionButton.swift | 12 +- 7 files changed, 175 insertions(+), 107 deletions(-) diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 9dc321b..b607bc8 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -13,4 +13,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 7418ca581c2e0f390ac3d8da4bb8888c4bc25faa -COCOAPODS: 1.8.4 +COCOAPODS: 1.9.3 diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 9dc321b..b607bc8 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -13,4 +13,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 7418ca581c2e0f390ac3d8da4bb8888c4bc25faa -COCOAPODS: 1.8.4 +COCOAPODS: 1.9.3 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index a55bf45..62cda69 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,24 +7,24 @@ objects = { /* Begin PBXBuildFile section */ - 0167EC59425DCB1241A6A32E610AC3AA /* ReactionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081132FF23AC14B72D80EC06FA0040DE /* ReactionButton.swift */; }; - 082B08E103A26399977E4FEEE4D02A43 /* EmojiSelectorView.Config+rect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A186FD5F7A49693BFDD63D62623BE9B /* EmojiSelectorView.Config+rect.swift */; }; - 157ED89F863C3436B6287D6AE97CBC5C /* UIView+animation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2113D9F113220A95301999A4CF19EC5E /* UIView+animation.swift */; }; + 0167EC59425DCB1241A6A32E610AC3AA /* ReactionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BBC52C417CA32AAFC008CA0729C6D14 /* ReactionButton.swift */; }; + 082B08E103A26399977E4FEEE4D02A43 /* EmojiSelectorView.Config+rect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 887261F94C4F7BBA9155E1AAF759A7BC /* EmojiSelectorView.Config+rect.swift */; }; + 157ED89F863C3436B6287D6AE97CBC5C /* UIView+animation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5DF69D0AB488BEF117B20E1AEF287A /* UIView+animation.swift */; }; 170F6CA354E56309407BA844717E0B5A /* Pods-ReactionButton_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E8F17DAB918EEB9C05615F951A7939A8 /* Pods-ReactionButton_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1830969FC5B96C68D5040B17FC810C93 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - 1F421860EA1A479BAE2035BCEC1CC5ED /* ReactionButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B61CDF9032C235FC37180845A68333 /* ReactionButton-dummy.m */; }; - 2B342ABCA13861F220FCF6BA37CC76FB /* UIColor+Selector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B8CBE2D4256025613996BB89C6E365 /* UIColor+Selector.swift */; }; + 1F421860EA1A479BAE2035BCEC1CC5ED /* ReactionButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BDBBF851ED31E941C8FB8BC5E3A77F5 /* ReactionButton-dummy.m */; }; + 2B342ABCA13861F220FCF6BA37CC76FB /* UIColor+Selector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69E4628EA19473F1A904FACDAD39B6A6 /* UIColor+Selector.swift */; }; 497A4105A7E79EE4175B6549A7FBF55C /* Pods-ReactionButton_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DFC70B9345F00F95206131A0C436F87 /* Pods-ReactionButton_Tests-dummy.m */; }; - 4D030FA677AFEE2D2F18CF57C93EAF98 /* ReactionButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E768FF67DD737AD53C01159C6658849 /* ReactionButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D030FA677AFEE2D2F18CF57C93EAF98 /* ReactionButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C62A3004BE6C4417C1C2649E5F0B5EEF /* ReactionButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5AFD1C12956D52764C5A0A85AB99592D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - 6C7AD3F1372328965A3C3F2A7603FA14 /* UIView+contains.swift in Sources */ = {isa = PBXBuildFile; fileRef = C82435B1C058F55240E7C92FE5DDD2EA /* UIView+contains.swift */; }; - 751C47A864246551E7A5D9688B891EE4 /* CGSize+init.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBF99FE7DAA5937109C9B2BD589178DB /* CGSize+init.swift */; }; - 7C8432391B83AB3104BCE6C8912A4E14 /* ReactionButton+protocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8C91FBECFD466E2487D30135A1977E /* ReactionButton+protocols.swift */; }; - 7CFAC2EC8265E7B12943AC5FCDDAAADA /* CGRect+init.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F4EF1DEC66E720A83356272E3A88AF4 /* CGRect+init.swift */; }; + 6C7AD3F1372328965A3C3F2A7603FA14 /* UIView+contains.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CD93BDF09F232D0D249541BE3C6373F /* UIView+contains.swift */; }; + 751C47A864246551E7A5D9688B891EE4 /* CGSize+init.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63A07A7236070F319BC701A6C9EBC8B1 /* CGSize+init.swift */; }; + 7C8432391B83AB3104BCE6C8912A4E14 /* ReactionButton+protocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4605C43C49F7BD9472E80CD1110AF0E3 /* ReactionButton+protocols.swift */; }; + 7CFAC2EC8265E7B12943AC5FCDDAAADA /* CGRect+init.swift in Sources */ = {isa = PBXBuildFile; fileRef = 901B6573F92580D82EF8F032D8CA8B21 /* CGRect+init.swift */; }; 9B94EE2E346C365A29BD93F95F2B5AB6 /* Pods-ReactionButton_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FCB0FFF5A310D2C9C1AA25D2BB3D2C42 /* Pods-ReactionButton_Example-dummy.m */; }; B3A881704A623E4BAF3D7D616DEDC1B3 /* Pods-ReactionButton_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 912C974DCE3329FC3CF832D442E39EBC /* Pods-ReactionButton_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; B42822CB3ED0E784119B70C44A6C1074 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - D515620C6EA8CF7ECB80D1C186EC9BB4 /* ReactionButtonConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E6B4CADB733A766553A36E9D1E4972 /* ReactionButtonConfig.swift */; }; + D515620C6EA8CF7ECB80D1C186EC9BB4 /* ReactionButtonConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84BA69C75828092F0377817C4AA3E46E /* ReactionButtonConfig.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -45,45 +45,46 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 081132FF23AC14B72D80EC06FA0040DE /* ReactionButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReactionButton.swift; path = Sources/ReactionButton/ReactionButton.swift; sourceTree = ""; }; - 0A186FD5F7A49693BFDD63D62623BE9B /* EmojiSelectorView.Config+rect.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EmojiSelectorView.Config+rect.swift"; sourceTree = ""; }; 0DFC70B9345F00F95206131A0C436F87 /* Pods-ReactionButton_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ReactionButton_Tests-dummy.m"; sourceTree = ""; }; 1EC547090269357B7E36A4B1F2B78C2B /* Pods-ReactionButton_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReactionButton_Tests-acknowledgements.plist"; sourceTree = ""; }; - 2113D9F113220A95301999A4CF19EC5E /* UIView+animation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+animation.swift"; sourceTree = ""; }; 23F11AEB8DDECBFDED097EFBF6000571 /* Pods-ReactionButton_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReactionButton_Example.release.xcconfig"; sourceTree = ""; }; + 2BBC52C417CA32AAFC008CA0729C6D14 /* ReactionButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReactionButton.swift; path = Sources/ReactionButton/ReactionButton.swift; sourceTree = ""; }; 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 3283995A80FCDC53AA21EA7B57C06EBF /* Pods-ReactionButton_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReactionButton_Example-Info.plist"; sourceTree = ""; }; 347AA17A84FE471B591F69B3A097F11D /* Pods-ReactionButton_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReactionButton_Tests.release.xcconfig"; sourceTree = ""; }; 397A92D4BFD73E3ED786F5137A184D91 /* Pods-ReactionButton_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReactionButton_Example.debug.xcconfig"; sourceTree = ""; }; - 40B8CBE2D4256025613996BB89C6E365 /* UIColor+Selector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+Selector.swift"; sourceTree = ""; }; - 4F59E629289283B603368F07FB6545CB /* ReactionButton.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = ReactionButton.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 550E6616961A8B94990F7221D0D5F973 /* ReactionButton-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ReactionButton-Info.plist"; sourceTree = ""; }; - 5F4EF1DEC66E720A83356272E3A88AF4 /* CGRect+init.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGRect+init.swift"; sourceTree = ""; }; - 64E6B4CADB733A766553A36E9D1E4972 /* ReactionButtonConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReactionButtonConfig.swift; path = Sources/ReactionButton/ReactionButtonConfig.swift; sourceTree = ""; }; + 3C290FFE00880B4F8E5341B16910C337 /* ReactionButton-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ReactionButton-prefix.pch"; sourceTree = ""; }; + 3CD93BDF09F232D0D249541BE3C6373F /* UIView+contains.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+contains.swift"; sourceTree = ""; }; + 45D4731A33ED72641354CBD077BE8C9F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 4605C43C49F7BD9472E80CD1110AF0E3 /* ReactionButton+protocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ReactionButton+protocols.swift"; path = "Sources/ReactionButton/ReactionButton+protocols.swift"; sourceTree = ""; }; + 63A07A7236070F319BC701A6C9EBC8B1 /* CGSize+init.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGSize+init.swift"; sourceTree = ""; }; 66519E80B48EA0A8B21331486D2970A2 /* Pods_ReactionButton_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ReactionButton_Tests.framework; path = "Pods-ReactionButton_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 69E4628EA19473F1A904FACDAD39B6A6 /* UIColor+Selector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+Selector.swift"; sourceTree = ""; }; + 6C1F0F7A4A5E47D33EF9AC2D4A00307B /* ReactionButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ReactionButton.modulemap; sourceTree = ""; }; 6DD500BD48C3A95EBEB73F3B0AC8B19A /* ReactionButton.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ReactionButton.framework; path = ReactionButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6E768FF67DD737AD53C01159C6658849 /* ReactionButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ReactionButton-umbrella.h"; sourceTree = ""; }; - 87590F7772DA23CC2148BBDA0FA46196 /* ReactionButton-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ReactionButton-prefix.pch"; sourceTree = ""; }; + 7A5DF69D0AB488BEF117B20E1AEF287A /* UIView+animation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+animation.swift"; sourceTree = ""; }; + 7BDBBF851ED31E941C8FB8BC5E3A77F5 /* ReactionButton-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ReactionButton-dummy.m"; sourceTree = ""; }; + 84BA69C75828092F0377817C4AA3E46E /* ReactionButtonConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReactionButtonConfig.swift; path = Sources/ReactionButton/ReactionButtonConfig.swift; sourceTree = ""; }; + 887261F94C4F7BBA9155E1AAF759A7BC /* EmojiSelectorView.Config+rect.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EmojiSelectorView.Config+rect.swift"; sourceTree = ""; }; 8D1ACAD95B13DFE6B645C23F70611EF0 /* Pods_ReactionButton_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ReactionButton_Example.framework; path = "Pods-ReactionButton_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8E8C91FBECFD466E2487D30135A1977E /* ReactionButton+protocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ReactionButton+protocols.swift"; path = "Sources/ReactionButton/ReactionButton+protocols.swift"; sourceTree = ""; }; - 8F0D9657FA2D47E9A181A87F8D394AEA /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 901B6573F92580D82EF8F032D8CA8B21 /* CGRect+init.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGRect+init.swift"; sourceTree = ""; }; 912C974DCE3329FC3CF832D442E39EBC /* Pods-ReactionButton_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ReactionButton_Tests-umbrella.h"; sourceTree = ""; }; 9A90DADD4D20F75F230A9D2BDD72CA53 /* Pods-ReactionButton_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ReactionButton_Example.modulemap"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9E50AB4F3071F27A8C24F59CBDD05124 /* Pods-ReactionButton_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ReactionButton_Tests-frameworks.sh"; sourceTree = ""; }; A5E6EEC3E04F0B8B3A5AAC60F7DAB28B /* Pods-ReactionButton_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReactionButton_Tests.debug.xcconfig"; sourceTree = ""; }; + BF64AA14CCCEE0BED01FE0FE17F6922A /* ReactionButton.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = ReactionButton.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; BFA3C4A4A9A0114CA9274E95266FB0D6 /* Pods-ReactionButton_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ReactionButton_Example-acknowledgements.markdown"; sourceTree = ""; }; - C0790C2C73215E3C9AE8F49040B61224 /* ReactionButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ReactionButton.modulemap; sourceTree = ""; }; - C6A91FEC93556E03CDE296B8C81B829F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + C62A3004BE6C4417C1C2649E5F0B5EEF /* ReactionButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ReactionButton-umbrella.h"; sourceTree = ""; }; C7FFA0FABFB808501451F2C026B641CF /* Pods-ReactionButton_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReactionButton_Example-acknowledgements.plist"; sourceTree = ""; }; - C82435B1C058F55240E7C92FE5DDD2EA /* UIView+contains.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+contains.swift"; sourceTree = ""; }; CB694CEC5496BC66EB177F7CBDFCA304 /* Pods-ReactionButton_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ReactionButton_Example-frameworks.sh"; sourceTree = ""; }; + D118D8678BD514BE3AA37112BF3B5B9A /* ReactionButton-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ReactionButton-Info.plist"; sourceTree = ""; }; + D4236FE03E87C58A7858A42135959D79 /* ReactionButton.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ReactionButton.release.xcconfig; sourceTree = ""; }; D6FADF543D1FDB26E76F90254E59F682 /* Pods-ReactionButton_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ReactionButton_Tests.modulemap"; sourceTree = ""; }; - E4B61CDF9032C235FC37180845A68333 /* ReactionButton-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ReactionButton-dummy.m"; sourceTree = ""; }; + DDEF691A7973F20F6B09B3D6507544EF /* ReactionButton.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ReactionButton.debug.xcconfig; sourceTree = ""; }; E8F17DAB918EEB9C05615F951A7939A8 /* Pods-ReactionButton_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ReactionButton_Example-umbrella.h"; sourceTree = ""; }; - F466A30AB3AA956307FF7838D45C5EC6 /* ReactionButton.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ReactionButton.xcconfig; sourceTree = ""; }; + F950E710B9F19D00076BB7C91ACF8C14 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; F996EEB09C7FC61779E492A35DED0C11 /* Pods-ReactionButton_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReactionButton_Tests-Info.plist"; sourceTree = ""; }; - FBF99FE7DAA5937109C9B2BD589178DB /* CGSize+init.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGSize+init.swift"; sourceTree = ""; }; FCB0FFF5A310D2C9C1AA25D2BB3D2C42 /* Pods-ReactionButton_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ReactionButton_Example-dummy.m"; sourceTree = ""; }; FD0A6CA1A83FD07B71C66B8819452E4C /* Pods-ReactionButton_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ReactionButton_Tests-acknowledgements.markdown"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -133,28 +134,57 @@ path = "Target Support Files/Pods-ReactionButton_Tests"; sourceTree = ""; }; - 5E4CF1FB0B7D86A3FE25D08363340F9A /* Extensions */ = { + 5D2D2B4222C435B634F50F1572F5EBB7 /* Support Files */ = { isa = PBXGroup; children = ( - 5F4EF1DEC66E720A83356272E3A88AF4 /* CGRect+init.swift */, - FBF99FE7DAA5937109C9B2BD589178DB /* CGSize+init.swift */, - 0A186FD5F7A49693BFDD63D62623BE9B /* EmojiSelectorView.Config+rect.swift */, - 40B8CBE2D4256025613996BB89C6E365 /* UIColor+Selector.swift */, - 2113D9F113220A95301999A4CF19EC5E /* UIView+animation.swift */, - C82435B1C058F55240E7C92FE5DDD2EA /* UIView+contains.swift */, + 6C1F0F7A4A5E47D33EF9AC2D4A00307B /* ReactionButton.modulemap */, + 7BDBBF851ED31E941C8FB8BC5E3A77F5 /* ReactionButton-dummy.m */, + D118D8678BD514BE3AA37112BF3B5B9A /* ReactionButton-Info.plist */, + 3C290FFE00880B4F8E5341B16910C337 /* ReactionButton-prefix.pch */, + C62A3004BE6C4417C1C2649E5F0B5EEF /* ReactionButton-umbrella.h */, + DDEF691A7973F20F6B09B3D6507544EF /* ReactionButton.debug.xcconfig */, + D4236FE03E87C58A7858A42135959D79 /* ReactionButton.release.xcconfig */, ); - name = Extensions; - path = Sources/ReactionButton/Extensions; + name = "Support Files"; + path = "Example/Pods/Target Support Files/ReactionButton"; sourceTree = ""; }; 6E40287BA5B27362BB888DF273FECE83 /* Development Pods */ = { isa = PBXGroup; children = ( - DC6BE866CE0395D58803308FE927E3E7 /* ReactionButton */, + 73FE2F281098CDF042AA03CA30CE7E4F /* ReactionButton */, ); name = "Development Pods"; sourceTree = ""; }; + 73FE2F281098CDF042AA03CA30CE7E4F /* ReactionButton */ = { + isa = PBXGroup; + children = ( + 2BBC52C417CA32AAFC008CA0729C6D14 /* ReactionButton.swift */, + 4605C43C49F7BD9472E80CD1110AF0E3 /* ReactionButton+protocols.swift */, + 84BA69C75828092F0377817C4AA3E46E /* ReactionButtonConfig.swift */, + 8BEC72A5A6B00DFE47AC1CFCDED3F695 /* Extensions */, + C165DA1C41ACE357E02BDCFBFF97A57A /* Pod */, + 5D2D2B4222C435B634F50F1572F5EBB7 /* Support Files */, + ); + name = ReactionButton; + path = ../..; + sourceTree = ""; + }; + 8BEC72A5A6B00DFE47AC1CFCDED3F695 /* Extensions */ = { + isa = PBXGroup; + children = ( + 901B6573F92580D82EF8F032D8CA8B21 /* CGRect+init.swift */, + 63A07A7236070F319BC701A6C9EBC8B1 /* CGSize+init.swift */, + 887261F94C4F7BBA9155E1AAF759A7BC /* EmojiSelectorView.Config+rect.swift */, + 69E4628EA19473F1A904FACDAD39B6A6 /* UIColor+Selector.swift */, + 7A5DF69D0AB488BEF117B20E1AEF287A /* UIView+animation.swift */, + 3CD93BDF09F232D0D249541BE3C6373F /* UIView+contains.swift */, + ); + name = Extensions; + path = Sources/ReactionButton/Extensions; + sourceTree = ""; + }; 901852B1E8772AE959CEC0A0CD05B90B /* Pods-ReactionButton_Example */ = { isa = PBXGroup; children = ( @@ -180,12 +210,12 @@ name = iOS; sourceTree = ""; }; - C36203257002AC8B6821CE1A92CBE0FE /* Pod */ = { + C165DA1C41ACE357E02BDCFBFF97A57A /* Pod */ = { isa = PBXGroup; children = ( - 8F0D9657FA2D47E9A181A87F8D394AEA /* LICENSE */, - 4F59E629289283B603368F07FB6545CB /* ReactionButton.podspec */, - C6A91FEC93556E03CDE296B8C81B829F /* README.md */, + F950E710B9F19D00076BB7C91ACF8C14 /* LICENSE */, + BF64AA14CCCEE0BED01FE0FE17F6922A /* ReactionButton.podspec */, + 45D4731A33ED72641354CBD077BE8C9F /* README.md */, ); name = Pod; sourceTree = ""; @@ -218,20 +248,6 @@ name = Frameworks; sourceTree = ""; }; - DC6BE866CE0395D58803308FE927E3E7 /* ReactionButton */ = { - isa = PBXGroup; - children = ( - 081132FF23AC14B72D80EC06FA0040DE /* ReactionButton.swift */, - 8E8C91FBECFD466E2487D30135A1977E /* ReactionButton+protocols.swift */, - 64E6B4CADB733A766553A36E9D1E4972 /* ReactionButtonConfig.swift */, - 5E4CF1FB0B7D86A3FE25D08363340F9A /* Extensions */, - C36203257002AC8B6821CE1A92CBE0FE /* Pod */, - F1DE4631E2107D048AAC2C3E2719A683 /* Support Files */, - ); - name = ReactionButton; - path = ../..; - sourceTree = ""; - }; E2A8201FAC72E1BF7856990FB3E32A58 /* Products */ = { isa = PBXGroup; children = ( @@ -242,20 +258,6 @@ name = Products; sourceTree = ""; }; - F1DE4631E2107D048AAC2C3E2719A683 /* Support Files */ = { - isa = PBXGroup; - children = ( - C0790C2C73215E3C9AE8F49040B61224 /* ReactionButton.modulemap */, - F466A30AB3AA956307FF7838D45C5EC6 /* ReactionButton.xcconfig */, - E4B61CDF9032C235FC37180845A68333 /* ReactionButton-dummy.m */, - 550E6616961A8B94990F7221D0D5F973 /* ReactionButton-Info.plist */, - 87590F7772DA23CC2148BBDA0FA46196 /* ReactionButton-prefix.pch */, - 6E768FF67DD737AD53C01159C6658849 /* ReactionButton-umbrella.h */, - ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/ReactionButton"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -507,9 +509,9 @@ }; name = Release; }; - 289710AA008F9CFE2A92C95E58F9733B /* Release */ = { + 34EFD86CF6AC5C28AA4A47367D0B0BEF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F466A30AB3AA956307FF7838D45C5EC6 /* ReactionButton.xcconfig */; + baseConfigurationReference = D4236FE03E87C58A7858A42135959D79 /* ReactionButton.release.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -540,10 +542,11 @@ }; name = Release; }; - 3C9C3F7EC698A07862AE34496864C78D /* Debug */ = { + 725790F14ABC8CF3AEC73BC34003DAAB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F466A30AB3AA956307FF7838D45C5EC6 /* ReactionButton.xcconfig */; + baseConfigurationReference = 23F11AEB8DDECBFDED097EFBF6000571 /* Pods-ReactionButton_Example.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -555,26 +558,29 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/ReactionButton/ReactionButton-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ReactionButton/ReactionButton-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ReactionButton_Example/Pods-ReactionButton_Example-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/ReactionButton/ReactionButton.modulemap"; - PRODUCT_MODULE_NAME = ReactionButton; - PRODUCT_NAME = ReactionButton; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ReactionButton_Example/Pods-ReactionButton_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 725790F14ABC8CF3AEC73BC34003DAAB /* Release */ = { + 7DC0DC8342F203113C013564F795BE55 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 23F11AEB8DDECBFDED097EFBF6000571 /* Pods-ReactionButton_Example.release.xcconfig */; + baseConfigurationReference = A5E6EEC3E04F0B8B3A5AAC60F7DAB28B /* Pods-ReactionButton_Tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; @@ -588,12 +594,12 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-ReactionButton_Example/Pods-ReactionButton_Example-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ReactionButton_Tests/Pods-ReactionButton_Tests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ReactionButton_Example/Pods-ReactionButton_Example.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-ReactionButton_Tests/Pods-ReactionButton_Tests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -602,17 +608,15 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 7DC0DC8342F203113C013564F795BE55 /* Debug */ = { + 959890FAD04B7D19D47584702EBBC51C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A5E6EEC3E04F0B8B3A5AAC60F7DAB28B /* Pods-ReactionButton_Tests.debug.xcconfig */; + baseConfigurationReference = DDEF691A7973F20F6B09B3D6507544EF /* ReactionButton.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -624,19 +628,17 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-ReactionButton_Tests/Pods-ReactionButton_Tests-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/ReactionButton/ReactionButton-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ReactionButton/ReactionButton-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ReactionButton_Tests/Pods-ReactionButton_Tests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/ReactionButton/ReactionButton.modulemap"; + PRODUCT_MODULE_NAME = ReactionButton; + PRODUCT_NAME = ReactionButton; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -784,8 +786,8 @@ 3E6D3C0863798C9B87DBF43919B03B36 /* Build configuration list for PBXNativeTarget "ReactionButton" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3C9C3F7EC698A07862AE34496864C78D /* Debug */, - 289710AA008F9CFE2A92C95E58F9733B /* Release */, + 959890FAD04B7D19D47584702EBBC51C /* Debug */, + 34EFD86CF6AC5C28AA4A47367D0B0BEF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/ReactionButton/Base.lproj/Main.storyboard b/Example/ReactionButton/Base.lproj/Main.storyboard index 260c5b9..0d12bcd 100644 --- a/Example/ReactionButton/Base.lproj/Main.storyboard +++ b/Example/ReactionButton/Base.lproj/Main.storyboard @@ -45,11 +45,20 @@ + + + @@ -77,7 +86,7 @@ - + @@ -85,7 +94,7 @@ - + @@ -144,10 +153,35 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/ReactionButton/SampleTableViewController.swift b/Example/ReactionButton/SampleTableViewController.swift index 663fa22..c504e0e 100644 --- a/Example/ReactionButton/SampleTableViewController.swift +++ b/Example/ReactionButton/SampleTableViewController.swift @@ -11,6 +11,16 @@ import ReactionButton final class SampleTableViewController: UITableViewController { + var canShowCancelButton: Bool = false + + override func viewDidLoad() { + super.viewDidLoad() + + if !canShowCancelButton { + self.navigationItem.leftBarButtonItem = nil + } + } + override func numberOfSections(in tableView: UITableView) -> Int { return 1 } @@ -23,6 +33,11 @@ final class SampleTableViewController: UITableViewController { override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { return tableView.dequeueReusableCell(withIdentifier: "SampleCell", for: indexPath) } + + //MARK: IBActions + @IBAction func cancelButtonTapped(sender: UIBarButtonItem) { + self.dismiss(animated: true, completion: nil) + } } diff --git a/Example/ReactionButton/SampleViewController.swift b/Example/ReactionButton/SampleViewController.swift index 1e85dfb..049801e 100644 --- a/Example/ReactionButton/SampleViewController.swift +++ b/Example/ReactionButton/SampleViewController.swift @@ -28,6 +28,13 @@ final class SampleViewController: UIViewController { selectorView.dataSource = self } + //MARK: IBActions + @IBAction func presentButtonTapped(sender: UIButton) { + let navController = (self.storyboard!.instantiateViewController(identifier: "TableNavigation") as! UINavigationController) + let simpleTableController = (navController.viewControllers.first as! SampleTableViewController) + simpleTableController.canShowCancelButton = true + self.present(navController, animated: true, completion: nil) + } } // MARK: ReactionButtonDelegate diff --git a/Sources/ReactionButton/ReactionButton.swift b/Sources/ReactionButton/ReactionButton.swift index e0b6cd4..5b92721 100644 --- a/Sources/ReactionButton/ReactionButton.swift +++ b/Sources/ReactionButton/ReactionButton.swift @@ -43,7 +43,17 @@ open class ReactionButton: UIButton { } private var rootView: UIView? { - UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.rootViewController?.view + var currentVc = UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.rootViewController + while let presentedVc = currentVc?.presentedViewController { + if let navVc = (presentedVc as? UINavigationController)?.viewControllers.last { + currentVc = navVc + } else if let tabVc = (presentedVc as? UITabBarController)?.selectedViewController { + currentVc = tabVc + } else { + currentVc = presentedVc + } + } + return currentVc?.view } // MARK: - View lifecycle From cf6a019330655a995b3d755781c98a16ea6b1315 Mon Sep 17 00:00:00 2001 From: Muhammad Zeeshan Date: Sat, 16 Jan 2021 12:11:27 +0500 Subject: [PATCH 2/2] - should show up reactions view from the targeted view --- .../Extensions/EmojiSelectorView.Config+rect.swift | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Sources/ReactionButton/Extensions/EmojiSelectorView.Config+rect.swift b/Sources/ReactionButton/Extensions/EmojiSelectorView.Config+rect.swift index 6a3c4c0..ee18fae 100644 --- a/Sources/ReactionButton/Extensions/EmojiSelectorView.Config+rect.swift +++ b/Sources/ReactionButton/Extensions/EmojiSelectorView.Config+rect.swift @@ -10,14 +10,10 @@ import UIKit extension ReactionButton.Config { func rect(items: Int, originalPos: CGPoint, trait: UITraitCollection) -> CGRect { - var originalPos = CGPoint(x: originalPos.x, y: originalPos.y - heightForSize - 10) + let originalPos = CGPoint(x: originalPos.x, y: originalPos.y - heightForSize - 10) let option = CGFloat(items) let width = (option + 1) * spacing + self.size * option - if trait.horizontalSizeClass == .compact && trait.verticalSizeClass == .regular { - originalPos.x = (UIScreen.main.bounds.width - width) / 2 - } - return CGRect(origin: originalPos, size: CGSize(width: width, height: heightForSize)) }