SwiftShareBubbles
SwiftShareBubbles copied to clipboard
Animated Social share buttons control for iOS written in Swift
SwiftShareBubbles
Animated Social share buttons control for iOS written in Swift. This library is inspired AAShareBubbles.
I tried AAShareBubbles with Swift, it mostly worked. But I cannot use AAShareBubbles(Objective-c code) in protocol extension. So I created SwiftShareBubbles in pure Swift.
Requirements
iOS 8.0 or later, written in Swift.
Installation
Cocoapods
pod 'SwiftShareBubbles'
Carthage
SwiftRoutes is compatible with Carthage. Add it to your Cartfile
:
github "takecian/SwiftShareBubbles"
Usage
- Instantiate SwiftShareBubbles, specify center position and radius of Circle.
- Choose social buttons to be shown.
- Set delegate
- Call show method.
class ViewController: UIViewController, SwiftShareBubblesDelegate {
var bubbles: SwiftShareBubbles?
override func viewDidLoad() {
super.viewDidLoad()
bubbles = SwiftShareBubbles(point: CGPoint(x: view.frame.width / 2, y: view.frame.height / 2), radius: 100, in: view)
bubbles?.showBubbleTypes = [Bubble.twitter, Bubble.line, Bubble.safari]
bubbles?.delegate = self
}
// SwiftShareBubblesDelegate
func bubblesTapped(bubbles: SwiftShareBubbles, bubbleId: Int) {
if let bubble = Bubble(rawValue: bubbleId) {
print("\(bubble)")
switch bubble {
case .facebook:
break
case .twitter:
if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeTwitter) {
guard let composer = SLComposeViewController(forServiceType: SLServiceTypeTwitter) else { return }
composer.setInitialText("test test")
present(composer, animated: true, completion: nil)
}
break
case .line:
break
default:
break
}
} else {
// custom case
}
}
func bubblesDidHide(bubbles: SwiftShareBubbles) {
}
@IBAction func buttonTapped(_ sender: Any) {
bubbles?.show()
}
}
Supported buttons
- LINE
- google plus
- Youtube
- Pintereset
- Safari
Custom icons
You can add custom icons as follows,
class ViewController: UIViewController, SwiftShareBubblesDelegate {
var bubbles: SwiftShareBubbles?
let customBubbleId = 100
override func viewDidLoad() {
super.viewDidLoad()
...
let customAttribute = ShareAttirbute(bubbleId: customBubbleId, icon: UIImage(named: "Custom")!, backgroundColor: UIColor.white)
bubbles?.customBubbleAttributes = [customAttribute]
bubbles?.delegate = self
}
func bubblesTapped(bubbles: SwiftShareBubbles, bubbleId: Int) {
if customBubbleId == bubbleId {
// custom case
print("custom tapped")
}
}
}
License
MIT