Popularity
1.8
Stable
Activity
0.0
Stable
61
3
7

Programming language: Swift
License: MIT License
Tags: UI    
Latest version: v1.0.1

AmazingBubbles alternatives and similar libraries

Based on the "UI" category.
Alternatively, view AmazingBubbles alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of AmazingBubbles or a related project?

Add another 'UI' Library

README

AmazingBubbles

Bubble pickers, inspired by Apple

Requirements:

  • iOS 9.1+
  • XCode 8.0+
  • Swift 3.0

Installation

AmazingBubbles Library is available through CocoPods. To install, add the following line to your Podfile:

  pod 'AmazingBubbles', '~> 0.0'

Usage:

  1. Import library as follows:
  import AmazingBubbles
  1. Add ContentBubblesView to your VC;
  2. Add delegate and dataSource for ContentBubblesView instance:
class ViewController: UIViewController {

    @IBOutlet weak var bubblesView: ContentBubblesView! {
        didSet {
            bubblesView.delegate = self
            bubblesView.dataSource = self
        }
    }

}
  1. Implement protocols :

    public protocol ContentBubblesViewDelegate: class {
    func minimalSizeForBubble(in view: ContentBubblesView) -> CGSize
    func maximumSizeForBubble(in view: ContentBubblesView) -> CGSize
    
    func contentBubblesView(_ view: ContentBubblesView, didSelectItemAt index: Int)
    func contentBubblesView(_ view: ContentBubblesView, shouldChangeSizeForItemAt index: Int) -> Bool
    func contentBubblesView(_ view: ContentBubblesView, didChangeSizeForItemAt index: Int)
    }
    

public protocol ContentBubblesViewDataSource: class { func countOfSizes(in view: ContentBubblesView) -> Int

func numberOfItems(in view: ContentBubblesView) -> Int
func addOrUpdateBubbleView(forItemAt index: Int, currentView: BubbleView?) -> BubbleView

}

for example: 
``` swift
extension ViewController: ContentBubblesViewDataSource {
    func countOfSizes(in view: ContentBubblesView) -> Int {
        return 3
    }

    func numberOfItems(in view: ContentBubblesView) -> Int {
        return 15
    }

    func addOrUpdateBubbleView(forItemAt index: Int, currentView: BubbleView?) -> BubbleView {
        var view: BubbleView = currentView ?? BubbleView()        
        view.backgroundColor = .clear
        let randomOrigin = CGPoint(x: CGFloat(drand48() * Double(self.view.frame.width * 2 / 3)),
                                   y: CGFloat(drand48() * Double(self.view.frame.height * 2 / 3)))
        view.frame = CGRect(origin: randomOrigin,
                            size: .zero)
        return view
    }
}
  1. And than call:
 bubblesView.reload(randomizePosition: true) 

## Additional features:

  • You can create custom views by subclassing BubbleView
  • You can enable/disable gestures in ContentBubblesView: swift bubblesView.tapEnabled = true bubblesView.panEnabled = false
  • Also you can change some settings in BubbleConstants struct or play with some settings of UIDynamicBehaviors.