Ramotion/reel-search
Ramotion/reel-search has 2,503 GitHub stars and 178 forks. GitHot measured -1 stars in 24 hours and -1 in 7 days. Last checked 2026-11-12 14:59 UTC. Last push 2020-04-06.
:octocat: 🔍 RAMReel is a UI controller that allows you to choose options from a list. Swift UI library made by @Ramotion
Measured star growth
- in 24h
- -1
- in 7 days
- -1
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
REEL SEARCH
Reel Search is a Swift UI controller that allows you to choose options from a list
We specialize in the designing and coding of custom UI for Mobile Apps and Websites.
Stay tuned for the latest updates:
RAMReel
Requirements
- iOS 8.0+
- Swift 4.0
Installation
We recommend using CocoaPods to install our library.
Just put this in your Podfile:
pod 'RAMReel'
or Carthage users can simply add reel-search to their Cartfile:
github "Ramotion/reel-search"
Usage
In order to use our control you need to implement the following:
Types
CellClass: Your cell class must inherit fromUICollectionViewCelland implement theConfigurableCellprotocol. Or you can just use our predefined classRAMCell.TextFieldClass: Any subclass ofUITextFieldwill do.DataSource: Your type must implement theFlowDataSourceprotocol, withQueryTypebeingStringandResultTypebeingRenderableandParsable. Or you can just use our predefined classSimplePrefixQueryDataSource, which has itsResultTypeset toString.
Now you can use those types as generic parameters of type declaration of RAMReel:
RAMReel<CellClass, TextFieldClass, DataSource>
Values
Next you need to create an instance of RAMReel, and for that you need the following:
frame: CGRect: Rect, specifying where you want to put the control.dataSource: DataSource: the source of data for the reel.placeholder: String(optional): Placeholder text; by default, an empty string is used.hook: DataSource.ResultType -> Void(optional): Action to perform on element selection,nilby default. You can add additional hooks later, if you need multiple actions performed.
Let's use it to create an instance of RAMReel:
let ramReel = RAMReel<CellClass, TextFieldClass, DataSource>(frame: frame, dataSource: dataSource, placeholder: placeholder, hook: hook)
Adding action hooks
To add extra actions you may append DataSource.ResultType -> Void functions to RAMReel object property hooks:
ramReel.hooks.append { data in
// your code goes here
}
Putting on the view
And the final step, showing RAMReel on your view:
ramReel.view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
yourView.addSubview(ramReel.view)
If you have visual problems, try calling prepareForViewing before showing your view.
Like this:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
ramReel.prepareForViewing()
}
Theming
If you want to change RAMReel look and feel, you can use theming.
To do so, you just to have to implement the Theme protocol in your class/structure and set your RAMReel object's theme property to your theme.
Or you can just use the predefined instance of type RAMTheme.
let textColor: UIColor
let listBackgroundColor: UIColor
let font: UIFont
let theme = RAMTheme(textColor: textColor, listBackgroundColor: listBackgroundColor, font: font)
Docs
See more at RAMReel docs
📄 License
Reel Search is released under the MIT license. See LICENSE for details.
This library is a part of a selection of our best UI open-source projects.
If you use the open-source library in your project, please make sure to credit and backlink to www.ramotion.com
📱 Get the Showroom App for iOS to give it a try
Try this UI component and more like this in our iOS app. Contact us if interested.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
562,179 starspublic-apis/public-apis
A collective list of free APIs
498,573 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
455,682 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,411 stars