[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6822":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":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":18,"lastSyncTime":34,"discoverSource":35},6822,"expanding-collection","Ramotion\u002Fexpanding-collection","Ramotion",":octocat: ExpandingCollection is an animated material design UI card peek\u002Fpop controller. iOS library made by @Ramotion","https:\u002F\u002Fwww.ramotion.com\u002Fsmartphone-app-development-ui-library-to-peek-and-pop-cards\u002F",null,"Swift",5522,518,146,24,0,1,2,39.15,"MIT License",false,"master",true,[25,26,27,28,29,30],"animation","component","library","material-design","swift","ui","2026-06-12 02:01:30","\u003Ca href=\"https:\u002F\u002Fwww.ramotion.com\u002Fagency\u002Fapp-development\u002F?utm_source=gthb&utm_medium=repo&utm_campaign=expanding-collection\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FRamotion\u002Ffolding-cell\u002Fblob\u002Fmaster\u002Fheader.png\">\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamotion\u002Fexpanding-collection\">\n\u003Cimg align=\"left\" src=\"https:\u002F\u002Fgithub.com\u002FRamotion\u002Fexpanding-collection\u002Fblob\u002Fmaster\u002Fexpanding-collection.gif\" width=\"480\" height=\"360\" \u002F>\u003C\u002Fa>\n\n\u003Cp>\u003Ch1 align=\"left\">EXPANDING COLLECTION\u003C\u002Fh1>\u003C\u002Fp>\n\n\u003Ch4>An animated material design UI card peek\u002Fpop controller\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=expanding-collection\">\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[![Twitter](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTwitter-@Ramotion-blue.svg?style=flat)](http:\u002F\u002Ftwitter.com\u002FRamotion)\n[![CocoaPods](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fp\u002Fexpanding-collection.svg)](https:\u002F\u002Fcocoapods.org\u002Fpods\u002Fexpanding-collection)\n[![CocoaPods](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002Fexpanding-collection.svg)](http:\u002F\u002Fcocoapods.org\u002Fpods\u002Fexpanding-collection)\n[![Carthage compatible](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCarthage-compatible-4BC51D.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FRamotion\u002Fexpanding-collection)\n[![Travis](https:\u002F\u002Ftravis-ci.org\u002FRamotion\u002Fexpanding-collection.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002FRamotion\u002Fexpanding-collection)\n[![codebeat badge](https:\u002F\u002Fcodebeat.co\u002Fbadges\u002F6a009992-5bf2-4730-aa35-f3b20ce7693d)](https:\u002F\u002Fcodebeat.co\u002Fprojects\u002Fgithub-com-ramotion-expanding-collection)\n[![Donate](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDonate-PayPal-blue.svg)](https:\u002F\u002Fpaypal.me\u002FRamotion)\n\n## Requirements\n\n- iOS 9.0+\n- Xcode 9.0+\n\n## Installation\n\nJust add the Source folder to your project.\n\nor use [CocoaPods](https:\u002F\u002Fcocoapods.org) with Podfile:\n``` ruby\npod 'expanding-collection'\n```\n\nor [Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage) users can simply add to their `Cartfile`:\n```\ngithub \"Ramotion\u002Fexpanding-collection\"\n```\n\n## Usage\n\n```swift\nimport expanding_collection\n```\n\n#### Create CollectionViewCell\n![cell](https:\u002F\u002Fraw.githubusercontent.com\u002FRamotion\u002Fexpanding-collection\u002Fmaster\u002Fimages\u002Fimage2.png)\n\n1) Create UICollectionViewCell inherit from `BasePageCollectionCell` (recommend create cell with xib file)\n\n2) Adding FrontView\n  - add a view to YOURCELL.xib and connect it to `@IBOutlet weak var frontContainerView: UIView!`  \n  - add width, height, centerX and centerY constraints (width and height constranints must equal cellSize)\n\n  ![cell](https:\u002F\u002Fraw.githubusercontent.com\u002FRamotion\u002Fexpanding-collection\u002Fmaster\u002Fimages\u002Fimage1.png)  \n  - connect centerY constraint to `@IBOutlet weak var frontConstraintY: NSLayoutConstraint!`\n  - add any desired uiviews to frontView\n\n3) Adding BackView\n  - repeat step 2 (connect outlets to `@IBOutlet weak var backContainerView: UIView!`, `@IBOutlet weak var backConstraintY: NSLayoutConstraint!`)\n\n4) Cell example [DemoCell](https:\u002F\u002Fgithub.com\u002FRamotion\u002Fexpanding-collection\u002Ftree\u002Fmaster\u002FDemoExpandingCollection\u002FDemoExpandingCollection\u002FViewControllers\u002FDemoViewController\u002FCells)\n\n###### If set `tag = 101` for any `FrontView.subviews` this view will be hidden during the transition animation\n\n#### Create CollectionViewController  \n\n1) Create a UIViewController inheriting from `ExpandingViewController`\n\n2) Register Cell and set Cell size:\n\n``` swift\noverride func viewDidLoad() {\n    itemSize = CGSize(width: 214, height: 460) \u002F\u002FIMPORTANT!!! Height of open state cell\n    super.viewDidLoad()\n\n    \u002F\u002F register cell\n    let nib = UINib(nibName: \"NibName\", bundle: nil)\n    collectionView?.registerNib(nib, forCellWithReuseIdentifier: \"CellIdentifier\")\n}\n```\n\n3) Add UICollectionViewDataSource methods\n\n``` swift\nextension YourViewController {\n\n  override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {\n    return items.count\n  }\n\n  override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {\n    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(\"CellIdentifier\"), forIndexPath: indexPath)\n    \u002F\u002F configure cell\n    return cell\n  }\n}\n```\n\n4) Open Cell animation\n\n```swift\noverride func viewDidLoad() {\n    itemSize = CGSize(width: 214, height: 264)\n    super.viewDidLoad()\n\n    \u002F\u002F register cell\n    let nib = UINib(nibName: \"CellIdentifier\", bundle: nil)\n    collectionView?.registerNib(nib, forCellWithReuseIdentifier: String(DemoCollectionViewCell))\n}\n```\n\n``` swift\nfunc collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {\n    cell.cellIsOpen(!cell.isOpened)\n}\n```\n\n###### if you use this delegates method:\n```Swift\nfunc collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath)\n\nfunc scrollViewDidEndDecelerating(scrollView: UIScrollView)\n```\n###### must call super method:  \n```Swift\nfunc collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {\n  super.collectionView(collectionView: collectionView, willDisplayCell cell: cell, forItemAtIndexPath indexPath: indexPath)\n  \u002F\u002F code\n}\n\nfunc scrollViewDidEndDecelerating(scrollView: UIScrollView) {\n  super.scrollViewDidEndDecelerating(scrollView: scrollView)\n  \u002F\u002F code\n}\n```\n#### Transition animation\n\n1) Create a UITableViewController inheriting from `ExpandingTableViewController`\n\n2) Set header height default 236\n\n``` swift\noverride init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {\n    super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)\n    headerHeight = ***\n}\n```\nOR\n\n``` swift\nrequired init?(coder aDecoder: NSCoder) {\n    super.init(coder: aDecoder)\n    headerHeight = ***\n}\n```\n\n3) Call the push method in YourViewController to YourTableViewController\n\n``` swift\n  if cell.isOpened == true {\n    let vc: YourTableViewController = \u002F\u002F ... create view controller  \n    pushToViewController(vc)\n  }\n```\n4) For back transition use `popTransitionAnimation()`\n\n\n## 🗂 Check this library on other language:\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamotion\u002Fexpanding-collection-android\">\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Framotion\u002Fnavigation-stack\u002Fraw\u002Fmaster\u002FAndroid_Java@2x.png\" width=\"178\" height=\"81\">\u003C\u002Fa>\n\n\n## 📄 License\n\nExpanding Collection 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=expanding-collection&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=expanding-collection\">\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","ExpandingCollection 是一个用于实现动画材质设计UI卡片预览\u002F弹出控制器的iOS库。其核心功能包括通过动画效果展示和隐藏卡片，支持自定义视图，并且易于集成到现有的iOS项目中。该库使用Swift语言编写，具有良好的代码质量和稳定性，适用于需要增强用户界面交互体验的应用场景，如新闻阅读、图片浏览等移动应用开发。","2026-06-11 03:09:04","top_language"]