[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7134":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},7134,"reel-search","Ramotion\u002Freel-search","Ramotion",":octocat: 🔍 RAMReel is a UI controller that allows you to choose options from a list. Swift UI library made by @Ramotion","https:\u002F\u002Fwww.ramotion.com\u002Fagency\u002Fapp-development\u002F",null,"Swift",2514,179,49,4,0,58.77,"MIT License",false,"master",true,[23,24,25,26],"component","ios","library","swift","2026-06-12 04:00:32","\u003Ca href=\"https:\u002F\u002Fwww.ramotion.com\u002Fagency\u002Fapp-development\u002F?utm_source=gthb&utm_medium=repo&utm_campaign=reel-search\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FRamotion\u002Ffolding-cell\u002Fblob\u002Fmaster\u002Fheader.png\">\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamotion\u002Freel-search\">\n\u003Cimg align=\"left\" src=\"https:\u002F\u002Fgithub.com\u002FRamotion\u002Freel-search\u002Fblob\u002Fmaster\u002Freel-search.gif\" width=\"480\" height=\"360\" \u002F>\u003C\u002Fa>\n\n\u003Cp>\u003Ch1 align=\"left\">REEL SEARCH\u003C\u002Fh1>\u003C\u002Fp>\n\n\u003Ch4>Reel Search is a Swift UI controller that allows you to choose options from a list\u003C\u002Fh4>\n\n\n___\n\n\n\n\u003Cp>\u003Ch6>We specialize in the designing and coding of custom UI for Mobile Apps and Websites.\u003C\u002Fh6>\n\u003Ca href=\"https:\u002F\u002Fwww.ramotion.com\u002Fagency\u002Fapp-development\u002F?utm_source=gthb&utm_medium=repo&utm_campaign=reel-search\">\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Framotion\u002Fgliding-collection\u002Fraw\u002Fmaster\u002Fcontact_our_team@2x.png\" width=\"187\" height=\"34\">\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp>\u003Ch6>Stay tuned for the latest updates:\u003C\u002Fh6>\n\u003Ca href=\"https:\u002F\u002Fgoo.gl\u002FrPFpid\" >\n\u003Cimg src=\"https:\u002F\u002Fi.imgur.com\u002FziSqeSo.png\u002F\" width=\"156\" height=\"28\">\u003C\u002Fa>\u003C\u002Fp>\n\n\u003C\u002Fbr>\n\n# RAMReel\n[![Swift 4.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSwift-4.0-green.svg?style=flat)](https:\u002F\u002Fdeveloper.apple.com\u002Fswift\u002F)\n[![CocoaPods](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fp\u002FRAMReel.svg)](https:\u002F\u002Fcocoapods.org\u002Fpods\u002FRAMReel)\n[![CocoaPods](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FRAMReel.svg)](http:\u002F\u002Fcocoapods.org\u002Fpods\u002FRAMReel)\n[![Carthage compatible](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCarthage-compatible-4BC51D.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FRamotion\u002Freel-search)\n[![codebeat badge](https:\u002F\u002Fcodebeat.co\u002Fbadges\u002Fa591dc07-0f55-4321-929b-b33904c3dca8)](https:\u002F\u002Fcodebeat.co\u002Fprojects\u002Fgithub-com-ramotion-reel-search)\n[![Travis](https:\u002F\u002Fimg.shields.io\u002Ftravis\u002FRamotion\u002Freel-search.svg)](https:\u002F\u002Ftravis-ci.org\u002FRamotion\u002Freel-search)\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTwitter-@Ramotion-blue.svg?style=flat)](http:\u002F\u002Ftwitter.com\u002FRamotion)\n[![Donate](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDonate-PayPal-blue.svg)](https:\u002F\u002Fpaypal.me\u002FRamotion)\n\n## Requirements\n\n- iOS 8.0+\n- Swift 4.0\n\n## Installation\n\nWe recommend using **[CocoaPods](https:\u002F\u002Fcocoapods.org\u002F)** to install our library.\n\nJust put this in your `Podfile`:\n\n~~~ruby\npod 'RAMReel'\n~~~\n\nor [Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage) users can simply add `reel-search` to their `Cartfile`:\n```\ngithub \"Ramotion\u002Freel-search\"\n```\n\n## Usage\n\nIn order to use our control you need to implement the following:\n\n### Types\n- **`CellClass`**: Your cell class must inherit from [`UICollectionViewCell`](https:\u002F\u002Fdeveloper.apple.com\u002Flibrary\u002Fios\u002Fdocumentation\u002FUIKit\u002FReference\u002FUICollectionViewCell_class\u002F) and implement the [`ConfigurableCell`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FProtocols\u002FConfigurableCell.html) protocol. Or you can just use our predefined class [`RAMCell`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FClasses\u002FRAMCell.html).\n- **`TextFieldClass`**: Any subclass of [`UITextField`](https:\u002F\u002Fdeveloper.apple.com\u002Flibrary\u002Fios\u002Fdocumentation\u002FUIKit\u002FReference\u002FUITextField_Class\u002F) will do.\n- **`DataSource`**: Your type must implement the [`FlowDataSource`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FProtocols\u002FFlowDataSource.html) protocol, with `QueryType` being `String` and `ResultType` being [`Renderable`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FProtocols\u002FRenderable.html) and [`Parsable`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FProtocols\u002FParsable.html). Or you can just use our predefined class [`SimplePrefixQueryDataSource`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FStructs\u002FSimplePrefixQueryDataSource.html), which has its `ResultType` set to `String`.\n\nNow you can use those types as generic parameters of type declaration of `RAMReel`:\n\n~~~swift\nRAMReel\u003CCellClass, TextFieldClass, DataSource>\n~~~\n\n### Values\nNext you need to create an instance of `RAMReel`, and for that you need the following:\n\n- **`frame: CGRect`**: Rect, specifying where you want to put the control.\n- **`dataSource: DataSource`**: the source of data for the reel.\n- **`placeholder: String`** (*optional*): Placeholder text; by default, an empty string is used.\n- **`hook: DataSource.ResultType -> Void`** (*optional*): Action to perform on element selection, `nil` by default. You can add additional hooks later, if you need multiple actions performed.\n\nLet's use it to create an instance of `RAMReel`:\n\n~~~swift\nlet ramReel = RAMReel\u003CCellClass, TextFieldClass, DataSource>(frame: frame, dataSource: dataSource, placeholder: placeholder, hook: hook)\n~~~\n\n### Adding action hooks\n\nTo add extra actions you may append `DataSource.ResultType -> Void` functions to `RAMReel` object property `hooks`:\n\n~~~swift\nramReel.hooks.append { data in\n\t\u002F\u002F your code goes here\n}\n~~~\n\n### Putting on the view\n\nAnd the final step, showing `RAMReel` on your view:\n\n~~~swift\nramReel.view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]\nyourView.addSubview(ramReel.view)\n~~~\n\nIf you have visual problems, try calling  [`prepareForViewing`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FClasses\u002FRAMReel.html#\u002Fs:FC7RAMReel7RAMReel17prepareForViewingu1_Rdq_CSo20UICollectionViewCellq_S_16ConfigurableCelldq0_CSo11UITextFieldq1_S_14FlowDataSourceqq_S2_8DataTypeS_8Parsableqq_S2_8DataTypeS_10Renderablezqq_S2_8DataTypeqq1_S4_10ResultTypezqq1_S4_9QueryTypeSS_FGS0_q_q0_q1__FT_T_) before showing your view.\n\nLike this:\n\n~~~swift\noverride func viewDidLayoutSubviews() {\n\tsuper.viewDidLayoutSubviews()\n\tramReel.prepareForViewing()\n}\n~~~\n\n### Theming\n\nIf you want to change `RAMReel` look and feel, you can use theming.\n\nTo do so, you just to have to implement the [`Theme`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FProtocols\u002FTheme.html) protocol in your class\u002Fstructure and set your `RAMReel` object's `theme` property to your theme.\n\nOr you can just use the predefined instance of type [`RAMTheme`](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002FStructs\u002FRAMTheme.html).\n\n~~~swift\nlet textColor: UIColor\nlet listBackgroundColor: UIColor\nlet font: UIFont\n\nlet theme = RAMTheme(textColor: textColor, listBackgroundColor: listBackgroundColor, font: font)\n~~~\n\n### Docs\n\n[![CocoaPods](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fmetrics\u002Fdoc-percent\u002FRAMReel.svg)](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002Findex.html)\n\nSee more at [RAMReel docs](https:\u002F\u002Frawgit.com\u002FRamotion\u002Freel-search\u002Fmaster\u002Fdocs\u002Findex.html)\n\n\u003Cbr>\n\n## 📄 License\n\nReel Search is released under the MIT license.\nSee [LICENSE](.\u002FLICENSE) for details.\n\nThis library is a part of a \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamotion\u002Fswift-ui-animation-components-and-libraries\">\u003Cb>selection of our best UI open-source projects.\u003C\u002Fb>\u003C\u002Fa>\n\nIf you use the open-source library in your project, please make sure to credit and backlink to www.ramotion.com\n\n## 📱 Get the Showroom App for iOS to give it a try\nTry this UI component and more like this in our iOS app. Contact us if interested.\n\n\u003Ca href=\"https:\u002F\u002Fitunes.apple.com\u002Fapp\u002Fapple-store\u002Fid1182360240?pt=550053&ct=reel-search&mt=8\" >\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Framotion\u002Fgliding-collection\u002Fraw\u002Fmaster\u002Fapp_store@2x.png\" width=\"117\" height=\"34\">\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fwww.ramotion.com\u002Fagency\u002Fapp-development\u002F?utm_source=gthb&utm_medium=repo&utm_campaign=reel-search\">\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Framotion\u002Fgliding-collection\u002Fraw\u002Fmaster\u002Fcontact_our_team@2x.png\" width=\"187\" height=\"34\">\u003C\u002Fa>\n\u003Cbr>\n\u003Cbr>\n","RAMReel 是一个用 Swift 编写的 UI 控制器，允许用户从列表中选择选项。其核心功能是提供了一个简洁且易于集成的界面组件，支持自定义单元格和文本字段，使得开发者可以快速构建具有搜索或选择功能的界面。该库适用于 iOS 8.0 及以上版本，并且兼容 CocoaPods 和 Carthage 两种依赖管理工具，方便集成到现有的 iOS 项目中。RAMReel 特别适合于需要在应用内实现下拉选择、搜索过滤等交互场景的应用开发。",2,"2026-06-11 03:10:41","top_language"]