All Projects → icaksama → Cardviewlist

icaksama / Cardviewlist

Licence: mit
An elegant and responsive CardView like Android on iOS with Swift. Available horizontal and vertical scrolling with full animations and customizable.

Programming Languages

swift
15916 projects
swift4
162 projects

Projects that are alternatives of or similar to Cardviewlist

RDPopup
A simple way to add custom Popup. Design on Nib and use as you want. Written in Objective-C.
Stars: ✭ 19 (-36.67%)
Mutual labels:  ios-ui, ios-lib
Kdintroview
Stars: ✭ 300 (+900%)
Mutual labels:  ios-lib, ios-ui
Avatarimageview
DEPRECATED!!! --- Use https://github.com/neone/NDAvatarApp
Stars: ✭ 257 (+756.67%)
Mutual labels:  ios-lib, ios-ui
PaymentCardView
Custom Credit/Debit card view
Stars: ✭ 62 (+106.67%)
Mutual labels:  android-ui, cardview
Dsgradientprogressview
A simple animated progress bar in Swift
Stars: ✭ 437 (+1356.67%)
Mutual labels:  ios-lib, ios-ui
StackViewLayout
Coming soon!
Stars: ✭ 26 (-13.33%)
Mutual labels:  ios-ui, ios-lib
Iosproject
IOS综合项目,完善的框架,路由模块化设计,集成科大讯飞SDK方便iOS基本输入控件实现语音辅助输入,UI效果参照京东APP,JS与OC交互,ionic跨平台开发,MQTT 协议,即时通讯协议,视屏播放,跑马灯效果 仿美团地图定位,城市收索, 友盟分享,基础动画 增加FCUIID帮助类,引导页功能模块,照片上传 ,UIView自定义导航栏,文件下载,Masonry 案例,fmdb,数据库,sqlite,百度地图,二维码,照片上传,照片上传有进度,列表倒计时,H5和原生交互,自定义各种弹框,常见表单类型,人脸识别,列表加载图片,列表拖拽,日历操作,导航条渐变,核心动画,动画特效等等
Stars: ✭ 291 (+870%)
Mutual labels:  ios-lib, ios-ui
React Indiana Drag Scroll
React component which implements scrolling via holding the mouse button or touch
Stars: ✭ 190 (+533.33%)
Mutual labels:  library, scrolling
Cornercutlinearlayout
Linear Layout that allow corner (parent and children) cuts, complex shadow and divider.
Stars: ✭ 391 (+1203.33%)
Mutual labels:  library, android-ui
Awesome Android Ui
😎 A curated list of awesome Android UI/UX libraries
Stars: ✭ 353 (+1076.67%)
Mutual labels:  library, android-ui
FacebookMessengerActivity
Share with Facebook Messenger App.
Stars: ✭ 16 (-46.67%)
Mutual labels:  ios-ui, ios-lib
Swipeablecard
A simple implementation of swipe card like StreetView
Stars: ✭ 812 (+2606.67%)
Mutual labels:  library, android-ui
Titled navigation bar
A beautiful and simple bottom navigation bar with smooth animation when switching selected item.
Stars: ✭ 232 (+673.33%)
Mutual labels:  library, ios-lib
iconic-input
Beautiful Input components for React Native... <IconicTextbox/> and much more!
Stars: ✭ 22 (-26.67%)
Mutual labels:  android-ui, ios-ui
Androidappshortcuts
App Shortcuts for Android on Pre Nougat 7.1!
Stars: ✭ 223 (+643.33%)
Mutual labels:  library, android-ui
Md parola
Library for modular scrolling LED matrix text displays
Stars: ✭ 282 (+840%)
Mutual labels:  library, scrolling
Swipelayout
A library what allows you to execute a swipe for the android platform
Stars: ✭ 150 (+400%)
Mutual labels:  library, android-ui
Md max72xx
LED Matrix Library
Stars: ✭ 186 (+520%)
Mutual labels:  library, scrolling
Aestheticdialogs
📱 An Android Library for 💫fluid, 😍beautiful, 🎨custom Dialogs.
Stars: ✭ 352 (+1073.33%)
Mutual labels:  library, android-ui
My flutter challenges
Flutter project containing all my flutter UI challenges
Stars: ✭ 563 (+1776.67%)
Mutual labels:  ios-ui, android-ui

CardViewList

Creator Travis GitHub license Code Size Pod Version Platform Download Total
Create CardView like Android easier on iOS. This library provides horizontal and vertical scrolling with many features inside.

Features

  • [x] Support swift 4 and iOS 8 above
  • [x] Suport vertical and horizontal scrolling
  • [x] CardView can be customized
  • [x] CardView shandow
  • [x] Clickable CardView
  • [x] Multi touch CardView
  • [x] Responsive design
  • [x] Awesome scrolling and touch animation
  • [x] EASY TO USE & FAST!

Preview

   

Add to Podfile

Add CardViewList library to your Podfile and install.

pod 'CardViewList', '~> 1.1.8'

Import Library

Add import CardViewList library in your class before use this library.

import CardViewList

Add CardViewListDelegete

Add CardViewListDelegete in your Class/ViewController

class ViewController: UIViewController, CardViewListDelegete {

Add Method Delegete

Method delegete is optional. But you can add them to your code for detecting some condition for your programs. Please define the method depend on CardView from UIView/UIViewController.

// Response when CardView will Display.
func cardView(willDisplay scrollView: UIScrollView, identifierCards identifier: String) {}

// Response when every single of CardView from UIView will attach.
func cardView(_ scrollView: UIScrollView, willAttachCardView cardView: UIView, identifierCards identifier: String, index: Int) {}

// Response when every single of CardView from UIViewController will attach.
func cardView(_ scrollView: UIScrollView, willAttachCardViewController cardViewController: UIViewController, identifierCards identifier: String, index: Int) {}

// Response when CardView from UIView did finish attached.
func cardView(_ scrollView: UIScrollView, didFinishDisplayCardViews cardViews: [UIView], identifierCards identifier: String) {}

// Response when CardView from UIViewController did finish attached.
func cardView(_ scrollView: UIScrollView, didFinishDisplayCardViewControllers cardViewsController: [UIViewController], identifierCards identifier: String) {}

// Response when CardView is selected.
func cardView(_ scrollView: UIScrollView, didSelectCardView cardView: UIView, identifierCards identifier: String, index: Int) {}

Create CardView List with UIViewControler

First, You need to create your UIViewControler as CardView. You can see the demo project. Make sure run this program inside viewDidAppear for best appearance. "identifier" will let you create more than one CardView list in one page and detect it with the identifier.

fileprivate var cardViewList: CardViewList!
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    self.cardViewList = CardViewList()
    self.cardViewList.delegete = self
    
    // Create CardView List from UIViewController
    var cardViewControllers = [UIViewController]()
    for _ in 1 ... 25 {
        cardViewControllers.append(CardViewController(nibName: "CardViewController", bundle: nil))
    }
    self.cardViewList.animationScroll = .transformToBottom
    self.cardViewList.isClickable = true
    self.cardViewList.clickAnimation = .bounce
    self.cardViewList.grid = 1
    self.cardViewList.generateCardViewList(containerView: self.view, viewControllers: cardViewControllers, listType: .horizontal, identifier: "CardWithUIViewController")
}

Create CardView List with UIView

First, You need to create your Views as CardView. You can see in the demo project. Make sure run this program inside viewDidAppear for best appearance. "identifier" will let you create more than one CardView list in one page and detect it with the identifier.

fileprivate var cardViewList: CardViewList!
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    self.cardViewList = CardViewList()
    self.cardViewList.delegete = self
    
    // Create CardView List from UIView
    var cardViews = [UIView]()
    for _ in 1 ... 25 {
        cardViews.append(UIView(frame: CGRect(x: 0, y: 0, width: 150, height: 150)))
    }
    self.cardViewList.animationScroll = .scaleBounce
    self.cardViewList.isClickable = true
    self.cardViewList.clickAnimation = .bounce
    self.cardViewList.cardSizeType = .autoSize
    self.cardViewList.grid = 1
    self.cardViewList.generateCardViewList(containerView: self.view, views: cardViews, listType: .vertical, identifier: "CardWithUIView")
}

CardView Setting

Setting the CardView before generate CardView List.

/** Set disable/enable shadow of CardView. Default is true */
cardViewList.isShadowEnable = true
    
/** Set disable/enable click of CardView. Default is false */
cardViewList.isClickable = false
    
/** Set multiple touch of CardView. Default is false */
cardViewList.isMultipleTouch = false
    
/** Set corner radius of card view in pixel. Default is 12.0 */
cardViewList.cornerRadius = 12.0
    
/** Set shadow size of card view in pixel. Default is 5.0 */
cardViewList.shadowSize = 5.0
    
/** Set shadow opacity of card view in 0 - 1. Default is 0.9 */
cardViewList.shadowOpacity = 0.9
    
/** Set shadow color of card view. Default color is black */
cardViewList.shadowColor = UIColor.black
    
/** Set CardView margin in percent(%) of containerView. Default is 5 */
cardViewList.margin = 5
    
/** Set margin between CardView in percent(%) of containerView. Default is 5 */
cardViewList.marginCards = 5
    
/** Set list type horizontal, vertical, horizontalVertical. Default is vertical */
cardViewList.listType = .vertical
    
/** Set grid List of CardView. Default is 1 */
cardViewList.grid = 1
    
/** Set size of CardView. Default is autoSize */
cardViewList.cardSizeType = .autoSize
    
/** Set max width of CardView in percent(%) of containerView. Default is 100 */
cardViewList.maxWidth = 100
    
/** Set max height of CardView in percent(%) of containerView. Default is 100 */
cardViewList.maxHeight = 100
    
/** Set animation when CardView showing. Default is none */
cardViewList.animationScroll = .none
    
/** Set animation click for CardView. Default is none */
cardViewList.clickAnimation = .none

List of AnimationScroll Types

There are many animation scrolls. You can use them for your CardView list. The animation will start when CardView is visible to the user when scrolling.

  • [x] none
  • [x] scaleBounce
  • [x] transformToRight
  • [x] transformToLeft
  • [x] transformToBottom
  • [x] transformToTop

List of CardSize Types

There are three CardSize type.

  • [x] autoSize : CardView size will generated from library.
  • [x] square : CardView size will be generated to square shape depend by width or height containerView that lower.
  • [x] circle : CardView size will be generated to square circle depend by width or height containerView that lower.

MIT License

Copyright (c) 2017 Saiful Irham Wicaksana

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].