├── .DS_Store ├── QRCoder ├── .DS_Store ├── QRCoder.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── arun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ ├── xcschemes │ │ ├── xcschememanagement.plist │ │ └── QRCoder.xcscheme │ │ └── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist └── QRCoder │ ├── ViewController.swift │ ├── ViewControllers │ └── OpenQRVC.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Info.plist │ └── AppDelegate.swift ├── ProtectionCD ├── .DS_Store ├── ProtectionCD.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── arun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── ProtectionCD.xcscheme └── ProtectionCD │ ├── ViewController.h │ ├── ProtectionCD.xcdatamodeld │ ├── .xccurrentversion │ └── ProtectionCD.xcdatamodel │ │ └── contents │ ├── main.m │ ├── ViewController.m │ ├── AppDelegate.h │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── Main.storyboard │ └── LaunchScreen.storyboard │ └── Info.plist ├── SwipingView ├── .DS_Store ├── SwipingView.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── arun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── SwipingView.xcscheme ├── README.md └── SwipingView │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Info.plist │ ├── Base.lproj │ └── LaunchScreen.storyboard │ ├── AppDelegate.swift │ └── ViewController.swift ├── AdaptiveUITextView ├── .DS_Store ├── README.md ├── AdaptiveUITextView.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── arun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── AdaptiveUITextView.xcscheme └── AdaptiveUITextView │ ├── ViewController.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Info.plist │ ├── Base.lproj │ └── LaunchScreen.storyboard │ └── AppDelegate.swift ├── ImageMagic ├── ImageMagic │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── All.imageset │ │ │ ├── Delete_100.png │ │ │ ├── Delete_150.png │ │ │ ├── Delete_50.png │ │ │ └── Contents.json │ │ ├── 1xImage.imageset │ │ │ ├── Delete_50.png │ │ │ └── Contents.json │ │ ├── 2xImage.imageset │ │ │ ├── Delete_100.png │ │ │ └── Contents.json │ │ ├── 3xImage.imageset │ │ │ ├── Delete_150.png │ │ │ └── Contents.json │ │ ├── VectorPDF1x.imageset │ │ │ ├── Delete.pdf │ │ │ └── Contents.json │ │ ├── DeleteFill.imageset │ │ │ ├── Delete_100.png │ │ │ ├── Delete_150.png │ │ │ ├── Delete_50.png │ │ │ └── Contents.json │ │ ├── VectorPDF2x.imageset │ │ │ ├── Delete2x.pdf │ │ │ └── Contents.json │ │ ├── VectorPDF3x.imageset │ │ │ ├── Delete3x.pdf │ │ │ └── Contents.json │ │ ├── Image.imageset │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── ViewController.swift │ ├── Info.plist │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ └── AppDelegate.swift └── ImageMagic.xcodeproj │ ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ └── arun.xcuserdatad │ └── xcschemes │ ├── xcschememanagement.plist │ └── ImageMagic.xcscheme ├── ScrollDemo ├── ScrollDemo │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── kiwi.imageset │ │ │ ├── kiwi.jpeg │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── ScrollDemo.xcdatamodeld │ │ ├── .xccurrentversion │ │ └── ScrollDemo.xcdatamodel │ │ │ └── contents │ ├── ViewController.swift │ ├── Info.plist │ └── Base.lproj │ │ └── LaunchScreen.storyboard └── ScrollDemo.xcodeproj │ ├── project.xcworkspace │ └── contents.xcworkspacedata │ └── xcuserdata │ └── arun.xcuserdatad │ └── xcschemes │ └── ScrollDemo.xcscheme ├── TextViewLikeWhatsApp ├── TextViewLikeWhatsApp │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── AppIcon-1.appiconset │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@1x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ ├── Icon-App-76x76@3x.png │ │ │ ├── Icon-App-83.5x83.5@2x.png │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Next.png │ ├── Next@2x.png │ ├── Chat_Bubble_Green_1.png │ ├── Settings.bundle │ │ ├── en.lproj │ │ │ └── Root.strings │ │ └── Root.plist │ ├── Info.plist │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ └── AppDelegate.swift └── TextViewLikeWhatsApp.xcodeproj │ ├── xcuserdata │ ├── alex.xcuserdatad │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ │ ├── xcschememanagement.plist │ │ │ └── TextViewLikeWhatsApp.xcscheme │ ├── arun.xcuserdatad │ │ ├── xcschemes │ │ │ ├── xcschememanagement.plist │ │ │ └── TextViewLikeWhatsApp.xcscheme │ │ └── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ └── Inquisitoralex90741qzimT.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── TextViewLikeWhatsApp.xcscheme │ └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ ├── alex.xcuserdatad │ └── UserInterfaceState.xcuserstate │ ├── arun.xcuserdatad │ └── UserInterfaceState.xcuserstate │ └── Inquisitoralex90741qzimT.xcuserdatad │ └── UserInterfaceState.xcuserstate ├── AdaptiveUILabel ├── README.md ├── AdaptiveUILabel.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── arun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── AdaptiveUILabel.xcscheme └── AdaptiveUILabel │ ├── ViewController.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Info.plist │ ├── Base.lproj │ └── LaunchScreen.storyboard │ └── AppDelegate.swift ├── ExpandableTableViewSections ├── ExpandableTableViewSections │ ├── down-arrow.png │ ├── right-arrow.png │ ├── down-arrow@2x.png │ ├── right-arrow@2x.png │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ └── AppDelegate.swift └── ExpandableTableViewSections.xcodeproj │ ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ └── arun.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── TimerApp ├── TimerApp.xcodeproj │ ├── xcuserdata │ │ └── arun.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ └── TimerApp.xcscheme │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── TimerApp │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Info.plist │ ├── Base.lproj │ └── LaunchScreen.storyboard │ └── AppDelegate.swift ├── TypeAliasDemo ├── TypeAliasDemo.xcodeproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── xcschemes │ │ └── TypeAliasDemo.xcscheme └── TypeAliasDemo │ ├── TypeAliasDemo.xcdatamodeld │ ├── .xccurrentversion │ └── TypeAliasDemo.xcdatamodel │ │ └── contents │ ├── ViewController.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Info.plist │ └── Base.lproj │ └── LaunchScreen.storyboard ├── CreatingUIPopovers ├── CreatingUIPopovers.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── arun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── CreatingUIPopovers.xcscheme ├── README.md └── CreatingUIPopovers │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── PopoverController.swift │ ├── Info.plist │ ├── Base.lproj │ └── LaunchScreen.storyboard │ ├── AppDelegate.swift │ └── ViewController.swift └── ExpandTableCellDemo ├── ExpandTableCellDemo.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── arun.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── arun.xcuserdatad │ └── xcschemes │ ├── xcschememanagement.plist │ └── ExpandTableCellDemo.xcscheme ├── ExpandTableCellDemo ├── customCell.swift ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Info.plist ├── Base.lproj │ └── LaunchScreen.storyboard └── AppDelegate.swift └── README.md /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/.DS_Store -------------------------------------------------------------------------------- /QRCoder/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/QRCoder/.DS_Store -------------------------------------------------------------------------------- /ProtectionCD/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ProtectionCD/.DS_Store -------------------------------------------------------------------------------- /SwipingView/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/SwipingView/.DS_Store -------------------------------------------------------------------------------- /AdaptiveUITextView/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/AdaptiveUITextView/.DS_Store -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Next.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Next@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Next@2x.png -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/Assets.xcassets/kiwi.imageset/kiwi.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ScrollDemo/ScrollDemo/Assets.xcassets/kiwi.imageset/kiwi.jpeg -------------------------------------------------------------------------------- /AdaptiveUILabel/README.md: -------------------------------------------------------------------------------- 1 | #This Sample shows how to create a Self Sizing UILabel using Autolayout 2 | 3 | Watch the tutorial video here: 4 | 5 | https://youtu.be/BnD2XMqDhfI 6 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/All.imageset/Delete_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/All.imageset/Delete_100.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/All.imageset/Delete_150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/All.imageset/Delete_150.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/All.imageset/Delete_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/All.imageset/Delete_50.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Chat_Bubble_Green_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Chat_Bubble_Green_1.png -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections/down-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ExpandableTableViewSections/ExpandableTableViewSections/down-arrow.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/1xImage.imageset/Delete_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/1xImage.imageset/Delete_50.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/2xImage.imageset/Delete_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/2xImage.imageset/Delete_100.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/3xImage.imageset/Delete_150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/3xImage.imageset/Delete_150.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/VectorPDF1x.imageset/Delete.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/VectorPDF1x.imageset/Delete.pdf -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections/right-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ExpandableTableViewSections/ExpandableTableViewSections/right-arrow.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/DeleteFill.imageset/Delete_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/DeleteFill.imageset/Delete_100.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/DeleteFill.imageset/Delete_150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/DeleteFill.imageset/Delete_150.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/DeleteFill.imageset/Delete_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/DeleteFill.imageset/Delete_50.png -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/VectorPDF2x.imageset/Delete2x.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/VectorPDF2x.imageset/Delete2x.pdf -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/VectorPDF3x.imageset/Delete3x.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic/Assets.xcassets/VectorPDF3x.imageset/Delete3x.pdf -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections/down-arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ExpandableTableViewSections/ExpandableTableViewSections/down-arrow@2x.png -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections/right-arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ExpandableTableViewSections/ExpandableTableViewSections/right-arrow@2x.png -------------------------------------------------------------------------------- /TimerApp/TimerApp.xcodeproj/xcuserdata/arun.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Settings.bundle/en.lproj/Root.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Settings.bundle/en.lproj/Root.strings -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /AdaptiveUITextView/README.md: -------------------------------------------------------------------------------- 1 | #This Sample shows how to create a Self Sizing UITextView using Autolayout 2 | 3 | Watch the tutorial video here: 4 | 5 | Part 1: https://youtu.be/w7Aq-jeejyk 6 | 7 | Part 2: https://youtu.be/tROCw5tZsn8 8 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/Image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "version" : 1, 9 | "author" : "xcode" 10 | } 11 | } -------------------------------------------------------------------------------- /QRCoder/QRCoder.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@1x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-76x76@3x.png -------------------------------------------------------------------------------- /TimerApp/TimerApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /QRCoder/QRCoder.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/QRCoder/QRCoder.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SwipingView/SwipingView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TypeAliasDemo/TypeAliasDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ImageMagic/ImageMagic.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SwipingView/SwipingView.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/SwipingView/SwipingView.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ProtectionCD/ProtectionCD.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/AdaptiveUILabel/AdaptiveUILabel.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/AdaptiveUITextView/AdaptiveUITextView.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/CreatingUIPopovers/CreatingUIPopovers.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CreatingUIPopovers/README.md: -------------------------------------------------------------------------------- 1 | #This Sample shows how to create a UIPopover for both iPad and iPhone 2 | 3 | You can watch the video here: 4 | 5 | Part 1: https://www.youtube.com/watch?v=hZvqKmQuHfo 6 | 7 | ![alt tag](https://github.com/quantumarun/quantumarun.github.io/blob/master/Images/Popover_iPad.gif) 8 | -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ExpandTableCellDemo/ExpandTableCellDemo.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/project.xcworkspace/xcuserdata/alex.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // ProtectionCD 4 | // 5 | // Created by Arun on 3/3/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/ExpandableTableViewSections/ExpandableTableViewSections.xcodeproj/project.xcworkspace/xcuserdata/arun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/project.xcworkspace/xcuserdata/Inquisitoralex90741qzimT.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantumarun/Demos/HEAD/TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/project.xcworkspace/xcuserdata/Inquisitoralex90741qzimT.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/ScrollDemo.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | ScrollDemo.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/VectorPDF1x.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Delete.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/ProtectionCD.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | ProtectionCD.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/VectorPDF2x.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Delete2x.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/VectorPDF3x.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Delete3x.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } -------------------------------------------------------------------------------- /TypeAliasDemo/TypeAliasDemo/TypeAliasDemo.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | TypeAliasDemo.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/ScrollDemo.xcdatamodeld/ScrollDemo.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /TypeAliasDemo/TypeAliasDemo/TypeAliasDemo.xcdatamodeld/TypeAliasDemo.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /SwipingView/README.md: -------------------------------------------------------------------------------- 1 | #This Tutorial demostrates how to add a swipe gesture to UIView and animate the UILabel change in the swipe direction 2 | 3 | Watch the Tutorial Video at: 4 | 5 | Part 1: https://youtu.be/g4ONKzaEQ2E 6 | 7 | Part 2: https://youtu.be/Jp9jTWUuj10 8 | 9 | ![alt tag](https://github.com/quantumarun/quantumarun.github.io/blob/master/Images/LeftToRightAnimation.gif) 10 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ProtectionCD 4 | // 5 | // Created by Arun on 3/3/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/ProtectionCD.xcdatamodeld/ProtectionCD.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/Assets.xcassets/kiwi.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "kiwi.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/1xImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Delete_50.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | }, 21 | "properties" : { 22 | "template-rendering-intent" : "template" 23 | } 24 | } -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/2xImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Delete_100.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | }, 21 | "properties" : { 22 | "template-rendering-intent" : "template" 23 | } 24 | } -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/3xImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "Delete_150.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | }, 21 | "properties" : { 22 | "template-rendering-intent" : "template" 23 | } 24 | } -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/All.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Delete_50.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Delete_100.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Delete_150.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | }, 23 | "properties" : { 24 | "template-rendering-intent" : "template" 25 | } 26 | } -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/DeleteFill.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Delete_50.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Delete_100.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Delete_150.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | }, 23 | "properties" : { 24 | "template-rendering-intent" : "template" 25 | } 26 | } -------------------------------------------------------------------------------- /QRCoder/QRCoder/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // QRCoder 4 | // 5 | // Created by Arun on 3/21/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // ProtectionCD 4 | // 5 | // Created by Arun on 3/3/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do any additional setup after loading the view, typically from a nib. 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | // Dispose of any resources that can be recreated. 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /QRCoder/QRCoder.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | QRCoder.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F4AD5DBB1C9FF6B30085BC64 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ImageMagic.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F44C9C1F1E740C2100AD49B0 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ProtectionCD.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F4DE8F711C88214800BEF372 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AdaptiveUILabel.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F401E9391CE9D1BF00F663E9 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AdaptiveUITextView.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F4DE6ACA1CEC828700E1EC7D 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CreatingUIPopovers.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F4D4ABE21CF8849200715C41 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ExpandTableCellDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F45728881CCDE6F700893FA6 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | TextViewLikeWhatsApp.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | FAA5BDB51D12D6B70085D4FC 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | TextViewLikeWhatsApp.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | FAA5BDB51D12D6B70085D4FC 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ExpandableTableViewSections.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F4D1211D1D4E3329008A2F5C 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/xcuserdata/Inquisitoralex90741qzimT.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | TextViewLikeWhatsApp.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | FAA5BDB51D12D6B70085D4FC 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ProtectionCD 4 | // 5 | // Created by Arun on 3/3/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface AppDelegate : UIResponder 13 | 14 | @property (strong, nonatomic) UIWindow *window; 15 | 16 | @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext; 17 | @property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel; 18 | @property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator; 19 | 20 | - (void)saveContext; 21 | - (NSURL *)applicationDocumentsDirectory; 22 | 23 | 24 | @end 25 | 26 | -------------------------------------------------------------------------------- /QRCoder/QRCoder/ViewControllers/OpenQRVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OpenQRVC.swift 3 | // QRCoder 4 | // 5 | // Created by Arun on 3/21/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | class OpenQRVC: UIViewController { 13 | 14 | @IBOutlet weak var qrCodeLabel: UILabel! 15 | 16 | @IBOutlet weak var qrImage: UIImageView! 17 | 18 | @IBAction func openQRBtnAction(sender: UIButton) { 19 | if let text = qrCodeLabel.text { 20 | if let qrURL:NSURL = NSURL(string:text) { 21 | let application:UIApplication = UIApplication.sharedApplication() 22 | if (application.canOpenURL(qrURL)) { 23 | application.openURL(qrURL); 24 | } 25 | } 26 | } 27 | } 28 | 29 | @IBAction func shareQRBtnAction(sender: UIButton) { 30 | 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /SwipingView/SwipingView.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SwipingView.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | imageview (Notification).xcscheme 13 | 14 | orderHint 15 | 2 16 | 17 | imageview.xcscheme 18 | 19 | orderHint 20 | 1 21 | 22 | 23 | SuppressBuildableAutocreation 24 | 25 | F43F7FCF1CE074CE00FA824F 26 | 27 | primary 28 | 29 | 30 | F43F7FE61CE07B8500FA824F 31 | 32 | primary 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ScrollDemo 4 | // 5 | // Created by Arun on 4/19/17. 6 | // Copyright © 2017 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | 14 | /* 15 | //Constraints for Label 16 | Leading = 10, Trailing = 10 , Top to NextButton = 23, bottom from TextView = 10 17 | //Constraints for TextView 18 | Leading = 10, Trailing = 10 , Top to Label = 10, bottom from ImageView = 10 19 | //Constraints for ImageView 20 | Center Horizontally , Top to TextView = 10, Width = 300, Height = 300 21 | */ 22 | override func viewDidLoad() { 23 | super.viewDidLoad() 24 | // Do any additional setup after loading the view, typically from a nib. 25 | 26 | } 27 | 28 | override func didReceiveMemoryWarning() { 29 | super.didReceiveMemoryWarning() 30 | // Dispose of any resources that can be recreated. 31 | } 32 | 33 | 34 | } 35 | 36 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ImageMagic 4 | // 5 | // Created by Arun Gupta on 11/03/17. 6 | // Copyright © 2017 Arun Gupta. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | @IBOutlet weak var image1: UIImageView! 13 | @IBOutlet weak var image2: UIImageView! 14 | @IBOutlet weak var image3: UIImageView! 15 | @IBOutlet weak var image4: UIImageView! 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | // Do any additional setup after loading the view, typically from a nib. 19 | image1.tintColor = UIColor.red 20 | image2.tintColor = UIColor.blue 21 | image3.tintColor = UIColor.darkGray 22 | image4.tintColor = UIColor.green 23 | 24 | image1.image = #imageLiteral(resourceName: "DeleteFill") 25 | } 26 | 27 | override func didReceiveMemoryWarning() { 28 | super.didReceiveMemoryWarning() 29 | // Dispose of any resources that can be recreated. 30 | } 31 | 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo/customCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // customCell.swift 3 | // ExpandTableCellDemo 4 | // 5 | // Created by Arun on 4/25/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class customCell: UITableViewCell { 12 | 13 | @IBOutlet weak var matchName: UILabel! 14 | @IBOutlet weak var team1: UILabel! 15 | @IBOutlet weak var team2: UILabel! 16 | @IBOutlet weak var score: UILabel! 17 | @IBOutlet weak var firstView: UIView! 18 | @IBOutlet weak var secondView: UIView! 19 | @IBOutlet weak var heightConstraintSecondView: NSLayoutConstraint! 20 | @IBOutlet weak var summaryLabel: UILabel! 21 | override func awakeFromNib() { 22 | super.awakeFromNib() 23 | // Initialization code 24 | } 25 | 26 | override func setSelected(_ selected: Bool, animated: Bool) { 27 | super.setSelected(selected, animated: animated) 28 | 29 | // Configure the view for the selected state 30 | } 31 | 32 | var showsDetails = false { 33 | didSet { 34 | heightConstraintSecondView.priority = showsDetails ? 250 : 999 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // AdaptiveUILabel 4 | // 5 | // Created by Arun on 5/16/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | @IBOutlet weak var textLabel: UILabel! 14 | var count = 0 15 | 16 | let items = ["Jack and Jill went up the hill, to fetch a pail of water.", "Jonny jonny yes papa eating sugar no papa", "DJ", "A Little seed, For me to sow. A little earth, To help it grow. A little sun, A little shower, A little while, And then - A FLOWER!"] 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | // Do any additional setup after loading the view, typically from a nib. 20 | } 21 | 22 | @IBAction func changeText(_ sender: UIButton) { 23 | if(self.count > 3) { 24 | self.count = 0 25 | } 26 | self.textLabel.text = items[count] 27 | self.count = self.count + 1 28 | } 29 | override func didReceiveMemoryWarning() { 30 | super.didReceiveMemoryWarning() 31 | // Dispose of any resources that can be recreated. 32 | } 33 | 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /TypeAliasDemo/TypeAliasDemo/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // TypeAliasDemo 4 | // 5 | // Created by Arun on 4/25/17. 6 | // Copyright © 2017 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | typealias Even = (String, Int) -> Void 12 | typealias Odd = (Error) -> Void 13 | 14 | class ViewController: UIViewController { 15 | @IBOutlet weak var txtLbl: UILabel! 16 | 17 | var i = 0 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | // Do any additional setup after loading the view, typically from a nib. 21 | 22 | 23 | } 24 | 25 | @IBAction func CallFunction(_ sender: UIButton) { 26 | testTypeAlias(even: { str, num in 27 | txtLbl.text = "\(str) \(num)" 28 | }, odd: { err in 29 | txtLbl.text = err.localizedDescription 30 | }) 31 | 32 | } 33 | override func didReceiveMemoryWarning() { 34 | super.didReceiveMemoryWarning() 35 | // Dispose of any resources that can be recreated. 36 | } 37 | 38 | func testTypeAlias(even: Even, odd: Odd) { 39 | if (i % 2 == 0) { 40 | even("This is an Even number: ", i) 41 | i += 1 42 | } else { 43 | let err = NSError(domain: "", code: i, userInfo: nil) 44 | odd(err) 45 | i += 1 46 | } 47 | } 48 | 49 | 50 | } 51 | 52 | -------------------------------------------------------------------------------- /QRCoder/QRCoder/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // AdaptiveUITextView 4 | // 5 | // Created by Arun on 5/18/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | @IBOutlet weak var textEntry: UITextView! 14 | 15 | @IBOutlet weak var textHeightConstraint: NSLayoutConstraint! 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | // Do any additional setup after loading the view, typically from a nib. 19 | } 20 | 21 | @IBAction func dismissKeyboard(_ sender: UIButton) { 22 | self.textEntry.resignFirstResponder() 23 | } 24 | override func didReceiveMemoryWarning() { 25 | super.didReceiveMemoryWarning() 26 | // Dispose of any resources that can be recreated. 27 | } 28 | } 29 | 30 | extension ViewController: UITextViewDelegate { 31 | func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { 32 | print("Content Height \(self.textEntry.contentSize.height) ") 33 | if(self.textEntry.contentSize.height < self.textHeightConstraint.constant) { 34 | self.textEntry.isScrollEnabled = false 35 | } else { 36 | self.textEntry.isScrollEnabled = true 37 | } 38 | 39 | return true 40 | } 41 | } 42 | 43 | 44 | -------------------------------------------------------------------------------- /TimerApp/TimerApp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /SwipingView/SwipingView/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /TypeAliasDemo/TypeAliasDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers/PopoverController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PopoverController.swift 3 | // CreatingUIPopovers 4 | // 5 | // Created by Arun on 5/27/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | protocol SelectionViewControllerDelegate: class { 13 | func selection(selectedItem: Int) 14 | } 15 | 16 | 17 | class PopoverController: UITableViewController { 18 | 19 | var items: [String] = [] 20 | 21 | weak var delegate: SelectionViewControllerDelegate? 22 | 23 | override func viewDidLoad() { 24 | super.viewDidLoad() 25 | } 26 | 27 | override func viewDidAppear(animated: Bool) { 28 | super.viewDidAppear(true) 29 | self.preferredContentSize = self.tableView.contentSize 30 | } 31 | 32 | 33 | override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 34 | return self.items.count 35 | } 36 | 37 | override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 38 | let cell = tableView.dequeueReusableCellWithIdentifier("tableRow", forIndexPath: indexPath) 39 | cell.textLabel?.text = items[indexPath.row] 40 | return cell 41 | } 42 | 43 | override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 44 | self.dismissViewControllerAnimated(false, completion: {()->Void in 45 | self.delegate?.selection(indexPath.row) 46 | }); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /TimerApp/TimerApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /TypeAliasDemo/TypeAliasDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /QRCoder/QRCoder/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/xcuserdata/arun.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 24 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /SwipingView/SwipingView/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /QRCoder/QRCoder.xcodeproj/xcuserdata/arun.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 24 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /SwipingView/SwipingView/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /TimerApp/TimerApp/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /TypeAliasDemo/TypeAliasDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | } 88 | ], 89 | "info" : { 90 | "version" : 1, 91 | "author" : "xcode" 92 | } 93 | } -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | } 88 | ], 89 | "info" : { 90 | "version" : 1, 91 | "author" : "xcode" 92 | } 93 | } -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | } 88 | ], 89 | "info" : { 90 | "version" : 1, 91 | "author" : "xcode" 92 | } 93 | } -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Settings.bundle/Root.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | StringsTable 6 | Root 7 | PreferenceSpecifiers 8 | 9 | 10 | Type 11 | PSGroupSpecifier 12 | Title 13 | Group 14 | 15 | 16 | Type 17 | PSTextFieldSpecifier 18 | Title 19 | Name 20 | Key 21 | name_preference 22 | DefaultValue 23 | 24 | IsSecure 25 | 26 | KeyboardType 27 | Alphabet 28 | AutocapitalizationType 29 | None 30 | AutocorrectionType 31 | No 32 | 33 | 34 | Type 35 | PSToggleSwitchSpecifier 36 | Title 37 | Enabled 38 | Key 39 | enabled_preference 40 | DefaultValue 41 | 42 | 43 | 44 | Type 45 | PSSliderSpecifier 46 | Key 47 | slider_preference 48 | DefaultValue 49 | 0.5 50 | MinimumValue 51 | 0 52 | MaximumValue 53 | 1 54 | MinimumValueImage 55 | 56 | MaximumValueImage 57 | 58 | 59 | 60 | Type 61 | PSTextFieldSpecifier 62 | Title 63 | Version 64 | Key 65 | appVersion 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /QRCoder/QRCoder/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // QRCoder 4 | // 5 | // Created by Arun on 3/21/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /SwipingView/SwipingView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // SwipingView 4 | // 5 | // Created by Arun on 5/9/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // CreatingUIPopovers 4 | // 5 | // Created by Arun on 5/27/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // AdaptiveUILabel 4 | // 5 | // Created by Arun on 5/16/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ImageMagic 4 | // 5 | // Created by Arun Gupta on 11/03/17. 6 | // Copyright © 2017 Arun Gupta. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // AdaptiveUITextView 4 | // 5 | // Created by Arun on 5/18/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExpandTableCellDemo 4 | // 5 | // Created by Arun on 4/25/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /ExpandableTableViewSections/ExpandableTableViewSections/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExpandableTableViewSections 4 | // 5 | // Created by Arun on 7/31/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /TimerApp/TimerApp/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // TimerApp 4 | // 5 | // Created by Arun on 5/2/17. 6 | // Copyright © 2017 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | /* 31 | let shared = UserDefaults.standard 32 | shared.set(Date(), forKey: "savedTime") 33 | print(Date()) 34 | */ 35 | 36 | } 37 | 38 | func applicationWillEnterForeground(_ application: UIApplication) { 39 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 40 | } 41 | 42 | func applicationDidBecomeActive(_ application: UIApplication) { 43 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 44 | /* 45 | if let savedDate = UserDefaults.standard.object(forKey: "savedTime") as? Date { 46 | (hour, min, sec) = ViewController.getTimeDifference(startDate: savedDate) 47 | } 48 | */ 49 | } 50 | 51 | func applicationWillTerminate(_ application: UIApplication) { 52 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 53 | } 54 | 55 | 56 | } 57 | 58 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // TextViewLikeWhatsApp 4 | // 5 | // Created by alex on 6/16/16. 6 | // Copyright © 2016 MOSTELECOM. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | let appInfo = Bundle.main.infoDictionary as! Dictionary 20 | let shortVersionString = appInfo["CFBundleShortVersionString"] as! String 21 | let bundleVersion = appInfo["CFBundleVersion"] as! String 22 | let applicationVersion = shortVersionString + "." + bundleVersion 23 | let defaults = UserDefaults.standard 24 | defaults.set(applicationVersion, forKey: "appVersion") 25 | defaults.synchronize() 26 | return true 27 | } 28 | 29 | func applicationWillResignActive(_ application: UIApplication) { 30 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 31 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 32 | } 33 | 34 | func applicationDidEnterBackground(_ application: UIApplication) { 35 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 36 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 37 | } 38 | 39 | func applicationWillEnterForeground(_ application: UIApplication) { 40 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 41 | } 42 | 43 | func applicationDidBecomeActive(_ application: UIApplication) { 44 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 45 | } 46 | 47 | func applicationWillTerminate(_ application: UIApplication) { 48 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 49 | } 50 | 51 | 52 | } 53 | 54 | -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // CreatingUIPopovers 4 | // 5 | // Created by Arun on 5/27/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController, UIPopoverPresentationControllerDelegate, SelectionViewControllerDelegate { 12 | 13 | let items = ["One", "Two", "Three", "Four", "Five"] 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | // Do any additional setup after loading the view, typically from a nib. 18 | } 19 | 20 | override func didReceiveMemoryWarning() { 21 | super.didReceiveMemoryWarning() 22 | // Dispose of any resources that can be recreated. 23 | } 24 | 25 | @IBAction func showPopover(sender: UIButton) { 26 | let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 27 | let popOverVC: PopoverController = 28 | storyboard.instantiateViewControllerWithIdentifier("PopVC") as! PopoverController 29 | popOverVC.items = items 30 | popOverVC.modalPresentationStyle = .Popover 31 | popOverVC.preferredContentSize = CGSizeMake(300, 250) 32 | popOverVC.delegate = self 33 | let popoverMenuViewController = popOverVC.popoverPresentationController 34 | popoverMenuViewController?.permittedArrowDirections = .Any 35 | popoverMenuViewController?.delegate = self 36 | popoverMenuViewController?.sourceView = sender 37 | popoverMenuViewController?.sourceRect = CGRectMake(0, 0, sender.frame.size.width, sender.frame.size.height) 38 | presentViewController(popOverVC, animated: true, completion: nil) 39 | } 40 | 41 | 42 | @IBAction func showPopoverfromBarButton(sender: UIBarButtonItem) { 43 | let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 44 | let popOverVC: PopoverController = 45 | storyboard.instantiateViewControllerWithIdentifier("PopVC") as! PopoverController 46 | popOverVC.items = items 47 | popOverVC.modalPresentationStyle = .Popover 48 | popOverVC.preferredContentSize = CGSizeMake(300, 250) 49 | popOverVC.delegate = self 50 | let popoverMenuViewController = popOverVC.popoverPresentationController 51 | popoverMenuViewController?.permittedArrowDirections = .Any 52 | popoverMenuViewController?.delegate = self 53 | popoverMenuViewController?.barButtonItem = sender as UIBarButtonItem 54 | presentViewController(popOverVC, animated: true, completion: nil) 55 | } 56 | 57 | func selection(selectedItem: Int) { 58 | print("Selected Index: \(selectedItem), Item: \(items[selectedItem])") 59 | } 60 | 61 | func adaptivePresentationStyleForPresentationController(controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle { 62 | return .None 63 | } 64 | 65 | } 66 | 67 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp/Assets.xcassets/AppIcon-1.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "size" : "29x29", 15 | "idiom" : "iphone", 16 | "filename" : "Icon-App-29x29@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "size" : "29x29", 21 | "idiom" : "iphone", 22 | "filename" : "Icon-App-29x29@3x.png", 23 | "scale" : "3x" 24 | }, 25 | { 26 | "size" : "40x40", 27 | "idiom" : "iphone", 28 | "filename" : "Icon-App-40x40@2x.png", 29 | "scale" : "2x" 30 | }, 31 | { 32 | "size" : "40x40", 33 | "idiom" : "iphone", 34 | "filename" : "Icon-App-40x40@3x.png", 35 | "scale" : "3x" 36 | }, 37 | { 38 | "size" : "60x60", 39 | "idiom" : "iphone", 40 | "filename" : "Icon-App-60x60@2x.png", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "size" : "60x60", 45 | "idiom" : "iphone", 46 | "filename" : "Icon-App-60x60@3x.png", 47 | "scale" : "3x" 48 | }, 49 | { 50 | "idiom" : "ipad", 51 | "size" : "20x20", 52 | "scale" : "1x" 53 | }, 54 | { 55 | "idiom" : "ipad", 56 | "size" : "20x20", 57 | "scale" : "2x" 58 | }, 59 | { 60 | "size" : "29x29", 61 | "idiom" : "ipad", 62 | "filename" : "Icon-App-29x29@1x.png", 63 | "scale" : "1x" 64 | }, 65 | { 66 | "size" : "29x29", 67 | "idiom" : "ipad", 68 | "filename" : "Icon-App-29x29@2x.png", 69 | "scale" : "2x" 70 | }, 71 | { 72 | "size" : "40x40", 73 | "idiom" : "ipad", 74 | "filename" : "Icon-App-40x40@1x.png", 75 | "scale" : "1x" 76 | }, 77 | { 78 | "size" : "40x40", 79 | "idiom" : "ipad", 80 | "filename" : "Icon-App-40x40@2x.png", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "size" : "76x76", 85 | "idiom" : "ipad", 86 | "filename" : "Icon-App-76x76@1x.png", 87 | "scale" : "1x" 88 | }, 89 | { 90 | "size" : "76x76", 91 | "idiom" : "ipad", 92 | "filename" : "Icon-App-76x76@2x.png", 93 | "scale" : "2x" 94 | }, 95 | { 96 | "size" : "83.5x83.5", 97 | "idiom" : "ipad", 98 | "filename" : "Icon-App-83.5x83.5@2x.png", 99 | "scale" : "2x" 100 | }, 101 | { 102 | "size" : "40x40", 103 | "idiom" : "iphone", 104 | "filename" : "Icon-App-40x40@1x.png", 105 | "scale" : "1x" 106 | }, 107 | { 108 | "size" : "60x60", 109 | "idiom" : "iphone", 110 | "filename" : "Icon-App-60x60@1x.png", 111 | "scale" : "1x" 112 | }, 113 | { 114 | "size" : "76x76", 115 | "idiom" : "ipad", 116 | "filename" : "Icon-App-76x76@3x.png", 117 | "scale" : "3x" 118 | }, 119 | { 120 | "size" : "29x29", 121 | "idiom" : "iphone", 122 | "filename" : "Icon-App-29x29@1x.png", 123 | "unassigned" : true, 124 | "scale" : "1x" 125 | } 126 | ], 127 | "info" : { 128 | "version" : 1, 129 | "author" : "xcode" 130 | } 131 | } -------------------------------------------------------------------------------- /ExpandTableCellDemo/README.md: -------------------------------------------------------------------------------- 1 | #This Sample shows how to create a expandable and collapsible cell in UITableView 2 | 3 | You can watch the video here: https://youtu.be/LqHzHkuXRxQ 4 | 5 | ![alt tag](https://github.com/quantumarun/quantumarun.github.io/blob/master/Images/ExpandableUITableViewCells.gif) 6 | 7 | 8 | 9 | Lets walk through the example. 10 | I have UITableView with custom UITableViewCell called customCell with identifier as Cell and Style as custom. Cell is design in Storyboard within the UITableView by adding UITableViewCell. 11 | 12 | My customCell has 2 UIView - FirstView and SecondView. FirstView is one which will be displayed in collapsible or normal mode and when user clicks on a cell it expands to show SecondView below FirstView. 13 | 14 | In short if you see the UITableViewCell 15 | - FirstView has one child as UILabel, created using Autolayout and Size Classes 16 | - SecondView has 3 UILabel as subview, everything using the Autolayout and Size Classes. 17 | 18 | Till now its as simple as creating the custom UITableViewCell nothing great about it. Lets start how we go about making this as Expandable/Collasible type Cell. 19 | 20 | Since we will be hiding and showing the SecondView, all changes need to be made in SecondView. We will be playing with the Priority property of the Constraints. 21 | 22 | - Set the Height Constraint of the SecondView as 0 and set the Priority as 999. 23 | - For all the SubViews of SecondView set there constraint Priority as 998. 24 | 25 | What this means is we have set the default height of SecondView as 0 and priority as 999 and its subviews priority as 998 which says that SecondView height property takes precedence over the internal constraints whose priority is less that height property. 26 | Since initially we have set the heightconstraint with priority as 999 to 0, all subviews are collapsed or hidden. 27 | Now when we click the cell we are setting the priority as 250 as below which is less then the priority of its subviews thus expanding the SecondView to show its subview. 28 | 29 | In your customCell class, update the HeightConstraintProperty of SecondView on click as below. 30 | 31 | var showsDetails = false { 32 | didSet { 33 | heightConstraintSecondView.priority = showsDetails ? 250 : 999 34 | } 35 | } 36 | 37 | In Your ViewController 38 | Implement the TableViewDelegates, in didSelectRowAtIndexPath set the indexPath.row to a variable and reload the cell using begin and end updates 39 | 40 | func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 41 | if(selectedIndex == indexPath.row) { 42 | selectedIndex = -1 43 | } else { 44 | selectedIndex = indexPath.row 45 | } 46 | self.expandTableView.beginUpdates() 47 | self.expandTableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic ) 48 | self.expandTableView.endUpdates() 49 | } 50 | 51 | 52 | In heightForRowAtIndexPath set the height of the cell accordingly for selectedIndex 53 | 54 | func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 55 | if(selectedIndex == indexPath.row) { 56 | return 100; 57 | } else { 58 | return 40; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /QRCoder/QRCoder.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/QRCoder.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /TimerApp/TimerApp.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/TimerApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /ImageMagic/ImageMagic.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/ImageMagic.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /ScrollDemo/ScrollDemo.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/ScrollDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /SwipingView/SwipingView.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/SwipingView.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /ProtectionCD/ProtectionCD.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/ProtectionCD.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /TypeAliasDemo/TypeAliasDemo.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/TypeAliasDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /AdaptiveUILabel/AdaptiveUILabel.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/AdaptiveUILabel.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /AdaptiveUITextView/AdaptiveUITextView.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/AdaptiveUITextView.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /CreatingUIPopovers/CreatingUIPopovers.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/CreatingUIPopovers.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /ExpandTableCellDemo/ExpandTableCellDemo.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/ExpandTableCellDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/xcuserdata/alex.xcuserdatad/xcschemes/TextViewLikeWhatsApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/xcuserdata/arun.xcuserdatad/xcschemes/TextViewLikeWhatsApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /TextViewLikeWhatsApp/TextViewLikeWhatsApp.xcodeproj/xcuserdata/Inquisitoralex90741qzimT.xcuserdatad/xcschemes/TextViewLikeWhatsApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /SwipingView/SwipingView/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // SwipingView 4 | // 5 | // Created by Arun on 5/9/16. 6 | // Copyright © 2016 Arun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | @IBOutlet weak var view1: UIView! 14 | @IBOutlet weak var view2: UIView! 15 | @IBOutlet weak var label1: UILabel! 16 | @IBOutlet weak var label2: UILabel! 17 | 18 | var displayString: String? 19 | var quotes = ["Geometrics", "Vectors", "Celebration", "Triangle", "Landscapes", "Seasons", "Snow", "Rain", "Sunrays", "Stencils", "Paint", "Graphics", "Graffiti", "Sports","Fashion","Ancient Greek", "Philosophers", "Fairy tales", "Fantasy", "Clouds", "Mystery", "Time Clocks", "Canvas", "Tie-dye", "Glitter", "Dessert", "Desert", "Energy", "Astrology", "Solar Systems", "Sea", "Beach", "Sphere", "Roots", "Lights", "Darks", "Fire", "Air", "Aperture", "Long exposure", "Portraits", "World", "Travel", "Architecture", "Freedom", "Old", "New", "Urban", "Lenses", "Fisheye", "Chords", "Music notes", "Spices", "Herbs", "Natural", "Marbles", "Wood", "Trees", "Forests", "Interior","Mammals", "Reptiles", "Ocean", "Birds", "Photography", "Exposure", "Opaque", "Translucent", "Freestyle", "Spots", "Stripes", "Zig Zag", "Spiral", "Glass", "Feathers", "Calm", "Bulb", "Heat", "Cold", "Stitches", "Views", "Birds", "Sunset", "Earth"] 20 | 21 | var whichQuotestoChoose = 0 22 | 23 | 24 | override func viewDidLoad() { 25 | super.viewDidLoad() 26 | // Do any additional setup after loading the view, typically from a nib. 27 | 28 | let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.viewSwipped(_:))) 29 | swipeLeft.direction = UISwipeGestureRecognizerDirection.Left 30 | view1.addGestureRecognizer(swipeLeft) 31 | 32 | let swipeLeft1 = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.viewSwipped(_:))) 33 | swipeLeft1.direction = UISwipeGestureRecognizerDirection.Left 34 | view2.addGestureRecognizer(swipeLeft1) 35 | } 36 | 37 | func viewSwipped(gesture: UIGestureRecognizer) { 38 | self.chooseAQuote() 39 | 40 | if let swippedView = gesture.view { 41 | //swippedView.slideInFromRight() 42 | if swippedView.tag == 1 { 43 | label1.leftToRightAnimation() 44 | label1.text = displayString 45 | } else { 46 | label2.leftToRightAnimation() 47 | label2.text = displayString 48 | } 49 | } 50 | } 51 | 52 | func chooseAQuote() { 53 | displayString = quotes[whichQuotestoChoose] 54 | whichQuotestoChoose = Int(arc4random_uniform (84)) 55 | } 56 | 57 | override func didReceiveMemoryWarning() { 58 | super.didReceiveMemoryWarning() 59 | // Dispose of any resources that can be recreated. 60 | } 61 | } 62 | 63 | extension UIView { 64 | func leftToRightAnimation(duration: NSTimeInterval = 0.5, completionDelegate: AnyObject? = nil) { 65 | // Create a CATransition object 66 | let leftToRightTransition = CATransition() 67 | 68 | // Set its callback delegate to the completionDelegate that was provided 69 | if let delegate: AnyObject = completionDelegate { 70 | leftToRightTransition.delegate = delegate 71 | } 72 | 73 | leftToRightTransition.type = kCATransitionPush 74 | leftToRightTransition.subtype = kCATransitionFromRight 75 | leftToRightTransition.duration = duration 76 | leftToRightTransition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 77 | leftToRightTransition.fillMode = kCAFillModeRemoved 78 | 79 | // Add the animation to the View's layer 80 | self.layer.addAnimation(leftToRightTransition, forKey: "leftToRightTransition") 81 | } 82 | } 83 | 84 | 85 | 86 | --------------------------------------------------------------------------------