EMEmojiableBtn
  • November 9, 2023

Usage


To run the example project, clone the repo, and run pod install from the Example directory first.

There’s also an Swift implementation developed by lojals.

Installtion


EMEmojiableBtn is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod “EMEmojiableBtn”

Examples


  1. Basic Instance

Example Code

EMEmojiableBtn *button = [[EMEmojiableBtn alloc] initWithFrame:CGRectMake(20, 150, 52.0, 52.0)];
button.delegate = self;
button.dataset = @[
[[EMEmojiableOption alloc] initWithImage:@”img_1″ withName:@”dislike”],
[[EMEmojiableOption alloc] initWithImage:@”img_2″ withName:@”broken”],
[[EMEmojiableOption alloc] initWithImage:@”img_3″ withName:@”he he”],
[[EMEmojiableOption alloc] initWithImage:@”img_4″ withName:@”ooh”],
[[EMEmojiableOption alloc] initWithImage:@”img_5″ withName:@”meh !”],
[[EMEmojiableOption alloc] initWithImage:@”img_6″ withName:@”ahh !”]
];
[button setImage:[UIImage imageNamed:@”img_1″] forState:UIControlStateNormal];
[self.view addSubview:button];

2. Custom styled instance

Example Code

With this instance you can fully custom your component. Following the EMEmojiableBtnConfig variables.

You can custom your selector with the following variables, used in the

EMEmojiableBtnConfig *config = [[EMEmojiableBtnConfig alloc] init];
config.spacing = 6.0;
config.size = 30.0;
config.minSize = 34.0;
config.maxSize = 45.0;
config.s_options_selector = 30.0;

EMEmojiableBtn *button = [[EMEmojiableBtn alloc] initWithFrame:CGRectMake(20, 150, 52.0, 52.0) withConfig:config];
button.delegate = self;
button.dataset = @[
[[EMEmojiableOption alloc] initWithImage:@”img_1″ withName:@”dislike”],
[[EMEmojiableOption alloc] initWithImage:@”img_2″ withName:@”broken”],
[[EMEmojiableOption alloc] initWithImage:@”img_3″ withName:@”he he”],
[[EMEmojiableOption alloc] initWithImage:@”img_4″ withName:@”ooh”],
[[EMEmojiableOption alloc] initWithImage:@”img_5″ withName:@”meh !”],
[[EMEmojiableOption alloc] initWithImage:@”img_6″ withName:@”ahh !”]
];
[button setImage:[UIImage imageNamed:@”img_1″] forState:UIControlStateNormal];
[self.view addSubview:button];

Available customization options using EMEmojiableBtnConfig
  • size – Size of each available option
  • maxSize – Size of option when it is hilighted
  • minSize – Size of options when one option is hilighted. When option is hilighted other options are smaller
  • spacing – Spacing between options
  • s_options_selector – Bottom space of option selector view to button and information view
  • backgroundColor – Background color of screen when options selector is active after UILongPressGestureRecognizer
  • optionsViewInitialAlpha – Initial opacity of options listing view
  • optionsViewBackgroundColor – Background color of options listing view
  • optionsViewShadowColor – Shadow color of options listing view
  • optionsViewShadowOpacity – Opacity of options listing shadow
  • optionsViewShadowOffset – Offset of options listing shadow
  • informationViewBackgroundColor – Background color of information view
  • informationViewDotsColor – Dots color of information view
  • informationViewBorderColor – Border color of information view
  • informationViewFont – Font of information view
  • informationViewTextColor – Text color of information view
  • informationViewText – Text for information view. Default : Release to cancel

GitHub


View Github

#cocoapods #objectivec #reactions #swift #uibutton
YOU MIGHT ALSO LIKE...
🧭 NavigationKit

NavigationKit is a lightweight library which makes SwiftUI navigation super easy to use. 💻 Installation 📦 Swift Package Manager Using Swift Package Manager, add ...

swiftui-navigation-stack

An alternative SwiftUI NavigationView implementing classic stack-based navigation giving also some more control on animations and programmatic navigation. NavigationStack Installation ...

Stinsen

Simple, powerful and elegant implementation of the Coordinator pattern in SwiftUI. Stinsen is written using 100% SwiftUI which makes it ...

SwiftUI Router

With SwiftUI Router you can power your SwiftUI app with path-based routing. By utilizing a path-based system, navigation in your app becomes ...

FlowStacks

This package takes SwiftUI's familiar and powerful NavigationStack API and gives it superpowers, allowing you to use the same API not just ...