Popularity
1.5
Stable
Activity
0.0
Stable
58
3
7

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

AmazingBubbles alternatives and similar libraries

Based on the "UI" category

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.