├── .gitignore ├── README.md ├── apps ├── money │ ├── Money │ │ ├── Money.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Money │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── MoneyIcon1024.png │ │ │ │ ├── MoneyIcon120-1.png │ │ │ │ ├── MoneyIcon120.png │ │ │ │ ├── MoneyIcon180.png │ │ │ │ ├── MoneyIcon58.png │ │ │ │ ├── MoneyIcon80.png │ │ │ │ └── MoneyIcon87.png │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MoreViewController.swift │ │ │ ├── PostViewController.swift │ │ │ ├── SQLiteConnect.swift │ │ │ ├── ViewController.swift │ │ │ └── icons │ │ │ ├── add.png │ │ │ ├── add@2x.png │ │ │ ├── add@3x.png │ │ │ ├── next.png │ │ │ ├── next@2x.png │ │ │ ├── next@3x.png │ │ │ ├── prev.png │ │ │ ├── prev@2x.png │ │ │ ├── prev@3x.png │ │ │ ├── settings.png │ │ │ ├── settings@2x.png │ │ │ └── settings@3x.png │ └── files │ │ ├── IconsAndLaunchImages │ │ ├── MoneyIcon.psd │ │ ├── MoneyIcon1024.png │ │ ├── MoneyIcon120.png │ │ ├── MoneyIcon180.png │ │ ├── MoneyIcon58.png │ │ ├── MoneyIcon80.png │ │ ├── MoneyIcon87.png │ │ ├── MoneyLaunchImage 1242x2208.png │ │ ├── MoneyLaunchImage 640x1136.png │ │ ├── MoneyLaunchImage 640x960.png │ │ ├── MoneyLaunchImage 750x1334.png │ │ └── MoneyLaunchImage.psd │ │ ├── ItunesconnectImages │ │ ├── IMG_1806 1242x2208.PNG │ │ ├── IMG_1806 640x1136.PNG │ │ ├── IMG_1806 640x960.PNG │ │ └── IMG_1806 750x1334.PNG │ │ └── icons │ │ ├── add.png │ │ ├── add@2x.png │ │ ├── add@3x.png │ │ ├── next.png │ │ ├── next@2x.png │ │ ├── next@3x.png │ │ ├── prev.png │ │ ├── prev@2x.png │ │ ├── prev@3x.png │ │ ├── settings.png │ │ ├── settings@2x.png │ │ └── settings@3x.png ├── taipeitravel │ ├── ExFetchDataAndStorage │ │ ├── ExFetchDataAndStorage.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── ExFetchDataAndStorage │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ └── ViewController.swift │ ├── ExMap │ │ ├── ExMap.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── ExMap │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── ViewController.swift │ │ │ ├── user.png │ │ │ ├── user@2x.png │ │ │ └── user@3x.png │ ├── TaipeiTravel │ │ ├── TaipeiTravel.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── TaipeiTravel │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── TaipeiTravelIcon1024.png │ │ │ │ ├── TaipeiTravelIcon120-1.png │ │ │ │ ├── TaipeiTravelIcon120.png │ │ │ │ ├── TaipeiTravelIcon180.png │ │ │ │ ├── TaipeiTravelIcon58.png │ │ │ │ ├── TaipeiTravelIcon80.png │ │ │ │ └── TaipeiTravelIcon87.png │ │ │ └── Contents.json │ │ │ ├── BaseMainViewController.swift │ │ │ ├── Coordinate.swift │ │ │ ├── DetailViewController.swift │ │ │ ├── HotelDetailViewController.swift │ │ │ ├── HotelMainViewController.swift │ │ │ ├── Info.plist │ │ │ ├── InfoMainViewController.swift │ │ │ ├── LandmarkDetailViewController.swift │ │ │ ├── LandmarkMainViewController.swift │ │ │ ├── Launch.png │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── MapViewController.swift │ │ │ ├── ParkDetailViewController.swift │ │ │ ├── ParkMainViewController.swift │ │ │ ├── ToiletDetailViewController.swift │ │ │ ├── ToiletMainViewController.swift │ │ │ └── icons │ │ │ ├── hotel.png │ │ │ ├── hotel@2x.png │ │ │ ├── hotel@3x.png │ │ │ ├── info.png │ │ │ ├── info@2x.png │ │ │ ├── info@3x.png │ │ │ ├── landmark.png │ │ │ ├── landmark@2x.png │ │ │ ├── landmark@3x.png │ │ │ ├── park.png │ │ │ ├── park@2x.png │ │ │ ├── park@3x.png │ │ │ ├── toilet.png │ │ │ ├── toilet@2x.png │ │ │ └── toilet@3x.png │ └── files │ │ ├── IconsAndLaunchImages │ │ ├── Launch.png │ │ ├── TaipeiTravelIcon.psd │ │ ├── TaipeiTravelIcon1024.png │ │ ├── TaipeiTravelIcon120.png │ │ ├── TaipeiTravelIcon180.png │ │ ├── TaipeiTravelIcon58.png │ │ ├── TaipeiTravelIcon80.png │ │ ├── TaipeiTravelIcon87.png │ │ ├── TaipeiTravelLaunchImage.psd │ │ ├── TaipeiTravelLaunchImage1242x2208.png │ │ ├── TaipeiTravelLaunchImage640x1136.png │ │ ├── TaipeiTravelLaunchImage640x960.png │ │ └── TaipeiTravelLaunchImage750x1334.png │ │ └── ItunesconnectImages │ │ ├── IMG_1799 1242x2208.PNG │ │ ├── IMG_1799 640x1136.PNG │ │ ├── IMG_1799 640x960.PNG │ │ └── IMG_1799.PNG └── todo │ ├── ExEditUITableView │ ├── ExEditUITableView.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ExEditUITableView │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift │ ├── ExSound │ ├── ExSound.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ExSound │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── ViewController.swift │ │ └── woohoo.wav │ ├── ToDo │ ├── Record+CoreDataProperties.swift │ ├── Record.swift │ ├── ToDo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ToDo │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── ToDoIcon1024.png │ │ │ ├── ToDoIcon120-1.png │ │ │ ├── ToDoIcon120.png │ │ │ ├── ToDoIcon180.png │ │ │ ├── ToDoIcon58.png │ │ │ ├── ToDoIcon80.png │ │ │ └── ToDoIcon87.png │ │ └── Contents.json │ │ ├── BaseViewController.swift │ │ ├── ChechedRecordsViewController.swift │ │ ├── CoreDataConnect.swift │ │ ├── Info.plist │ │ ├── Launch.png │ │ ├── LaunchScreen.storyboard │ │ ├── MoreViewController.swift │ │ ├── ToDo.xcdatamodeld │ │ ├── .xccurrentversion │ │ └── ToDo.xcdatamodel │ │ │ └── contents │ │ ├── ViewController.swift │ │ └── icons │ │ ├── check.png │ │ ├── check@2x.png │ │ ├── check@3x.png │ │ ├── checkbox.png │ │ ├── checkbox@2x.png │ │ ├── checkbox@3x.png │ │ ├── more.png │ │ ├── more@2x.png │ │ ├── more@3x.png │ │ └── sounds │ │ ├── bottle_pop_3.wav │ │ ├── cutting-paper-2.mp3 │ │ ├── what-2.wav │ │ └── woohoo.wav │ └── files │ ├── IconsAndLaunchImages │ ├── Launch.png │ ├── ToDoIcon.psd │ ├── ToDoIcon1024.png │ ├── ToDoIcon120.png │ ├── ToDoIcon180.png │ ├── ToDoIcon58.png │ ├── ToDoIcon80.png │ ├── ToDoIcon87.png │ ├── ToDoLaunchImage.psd │ ├── ToDoLaunchImage1242x2208.png │ ├── ToDoLaunchImage640x1136.png │ ├── ToDoLaunchImage640x960.png │ └── ToDoLaunchImage750x1334.png │ ├── ItunesconnectImages │ ├── IMG_1805 1242x2208.PNG │ ├── IMG_1805 640x1136.PNG │ ├── IMG_1805 640x960.PNG │ └── IMG_1805 750x1334.PNG │ ├── icons │ ├── check.png │ ├── check512.png │ ├── check@2x.png │ ├── check@3x.png │ ├── checkbox.png │ ├── checkbox512.png │ ├── checkbox@2x.png │ ├── checkbox@3x.png │ ├── more.png │ ├── more512.png │ ├── more@2x.png │ └── more@3x.png │ └── sounds │ ├── bottle_pop_3.wav │ ├── cutting-paper-2.mp3 │ ├── what-2.wav │ └── woohoo.wav ├── ch1 ├── basic_operators.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── basics.playground │ ├── Contents.swift │ ├── contents.xcplayground │ ├── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── timeline.xctimeline ├── closures.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── collection_types.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── control_flow.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── functions.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── strings_characters.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── types.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── ch2 ├── arc.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── classes_structures.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── enumerations.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── error-handling.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── extensions.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── generics.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── inheritance.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── initialization_deinitialization.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── methods.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── nested-types.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── optional-chaining.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── properties.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── protocols.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── subscripts.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── type-casting.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── database ├── coredata │ └── ExCoreData │ │ ├── ExCoreData.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── ExCoreData │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── CoreDataConnect.swift │ │ ├── ExCoreData.xcdatamodeld │ │ ├── .xccurrentversion │ │ └── ExCoreData.xcdatamodel │ │ │ └── contents │ │ ├── Info.plist │ │ └── ViewController.swift └── sqlite │ └── ExSQLite │ ├── ExSQLite.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExSQLite │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── SQLiteConnect.swift │ └── ViewController.swift └── uikit ├── animations └── ExAnimations │ ├── ExAnimations.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExAnimations │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── multipages └── ExMultiPages │ ├── ExMultiPages.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExMultiPages │ ├── AppDelegate.swift │ ├── ArticleDetailViewController.swift │ ├── ArticleViewController.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── IntroViewController.swift │ └── ViewController.swift ├── uialert └── ExUIAlert │ ├── ExUIAlert.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIAlert │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uibutton └── ExUIButton │ ├── ExUIButton.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIButton │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uicollectionview └── ExUICollectionView │ ├── ExUICollectionView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUICollectionView │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── MyCollectionViewCell.swift │ ├── ViewController.swift │ └── images │ ├── 01.jpg │ ├── 02.jpg │ ├── 03.jpg │ ├── 04.jpg │ ├── 05.jpg │ ├── 06.jpg │ └── 07.jpg ├── uidatepicker ├── ExUIDatePicker │ ├── ExUIDatePicker.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ExUIDatePicker │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift └── date.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── uigesturerecognizer ├── ExImageUIGestureRecognizer │ ├── ExImageUIGestureRecognizer.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ExImageUIGestureRecognizer │ │ ├── 01.jpg │ │ ├── 02.jpg │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift └── ExUIGestureRecognizer │ ├── ExUIGestureRecognizer.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIGestureRecognizer │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uiimageview ├── ExAutoPlayImage │ ├── ExAutoPlayImage.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ExAutoPlayImage │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── ViewController.swift │ │ ├── icon │ │ ├── play.png │ │ ├── play@2x.png │ │ ├── play@3x.png │ │ ├── stop.png │ │ ├── stop@2x.png │ │ └── stop@3x.png │ │ └── images │ │ ├── 01.jpg │ │ ├── 02.jpg │ │ └── 03.jpg └── ExUIImageView │ ├── ExUIImageView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIImageView │ ├── 01.jpg │ ├── 02.jpg │ ├── 03.jpg │ ├── 04.jpg │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uikit_intro └── MyFirstProject │ ├── MyFirstProject.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── MyFirstProject │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uilabel └── ExUILabel │ ├── ExUILabel.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUILabel │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uinavigationcontroller └── ExUINavigationController │ ├── ExUINavigationController.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUINavigationController │ ├── AppDelegate.swift │ ├── ArticleViewController.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ └── LaunchScreen.storyboard │ ├── Info.plist │ ├── SettingViewController.swift │ ├── ViewController.swift │ └── icon │ ├── check.png │ ├── check@2x.png │ └── check@3x.png ├── uipickerview ├── ExPickerInUITextField │ ├── ExPickerInUITextField.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ExPickerInUITextField │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift └── ExUIPickerView │ ├── ExUIPickerView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIPickerView │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── MyViewController.swift │ └── ViewController.swift ├── uiprogressview └── ExUIProgressView │ ├── ExUIProgressView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIProgressView │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uiscrollview ├── ExIntroStepByStep │ ├── ExIntroStepByStep.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ExIntroStepByStep │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift └── ExUIScrollView │ ├── ExUIScrollView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIScrollView │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uisearchcontroller └── ExUISearchController │ ├── ExUISearchController.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUISearchController │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.swift │ └── ViewControllerExtensions.swift ├── uisegmentedcontrol └── ExUISegmentedControl │ ├── ExUISegmentedControl.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUISegmentedControl │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uislider └── ExUISlider │ ├── ExUISlider.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUISlider │ ├── 01.jpg │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uistepper └── ExUIStepper │ ├── ExUIStepper.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIStepper │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uiswitch └── ExUISwitch │ ├── ExUISwitch.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUISwitch │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uitabbarcontroller └── ExUITabBarController │ ├── ExUITabBarController.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUITabBarController │ ├── AppDelegate.swift │ ├── ArticleViewController.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ └── LaunchScreen.storyboard │ ├── Info.plist │ ├── IntroViewController.swift │ ├── SettingViewController.swift │ ├── ViewController.swift │ └── icon │ ├── article.png │ ├── article@2x.png │ ├── article@3x.png │ ├── articleSelected.png │ ├── articleSelected@2x.png │ ├── articleSelected@3x.png │ ├── profile.png │ ├── profile@2x.png │ ├── profile@3x.png │ ├── setting.png │ ├── setting@2x.png │ └── setting@3x.png ├── uitableview └── ExUITableView │ ├── ExUITableView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUITableView │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uitextfield └── ExUITextField │ ├── ExUITextField.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUITextField │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uitextview └── ExUITextView │ ├── ExUITextView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUITextView │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── uiwebview └── ExUIWebView │ ├── ExUIWebView.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ExUIWebView │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.swift │ └── icon │ ├── back.png │ ├── back@2x.png │ ├── back@3x.png │ ├── forward.png │ ├── forward@2x.png │ ├── forward@3x.png │ ├── refresh.png │ ├── refresh@2x.png │ ├── refresh@3x.png │ ├── stop.png │ ├── stop@2x.png │ └── stop@3x.png └── userdefaults └── ExUserDefaults ├── ExUserDefaults.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist └── ExUserDefaults ├── AppDelegate.swift ├── Assets.xcassets └── AppIcon.appiconset │ └── Contents.json ├── Base.lproj └── LaunchScreen.storyboard ├── DisplayViewController.swift ├── Info.plist └── ViewController.swift /.gitignore: -------------------------------------------------------------------------------- 1 | # macOS 2 | *.swp 3 | .DS_Store 4 | .Trashes 5 | *.lock 6 | *~.nib 7 | 8 | # Xcode 9 | DerivedData/ 10 | build/ 11 | *.pbxuser 12 | *.mode1v3 13 | *.mode2v3 14 | *.perspectivev3 15 | !default.pbxuser 16 | !default.mode1v3 17 | !default.mode2v3 18 | !default.perspectivev3 19 | xcuserdata 20 | .build/ 21 | Carthage/Build 22 | *.xcuserstate 23 | xcuserdata/ 24 | *~ 25 | 26 | 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # **Swift 起步走** 範例檔案 2 | 3 | 前往閱讀[線上版](https://bit.ly/GitBook-SwiftGo)電子書,或是[取得 pdf 檔案](https://github.com/itisjoe/swiftgo_ebook)隨時閱讀。 4 | 5 | 如果覺得本書對你有幫助,歡迎請我喝杯咖啡 😘 6 | - [歐付寶](https://payment.opay.tw/Broadcaster/Donate/2D4FF6ECE06312CE5D0D19F2BA7F7103) 7 | - [Paypal](https://www.paypal.me/chiao963) 8 | 9 | 10 | 有任何問題、建議或指教,歡迎到[ FB 專頁](https://www.facebook.com/swiftgogogo)與我聯絡。 11 | -------------------------------------------------------------------------------- /apps/money/Money/Money.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/money/Money/Money.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon1024.png -------------------------------------------------------------------------------- /apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon120-1.png -------------------------------------------------------------------------------- /apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon120.png -------------------------------------------------------------------------------- /apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon180.png -------------------------------------------------------------------------------- /apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon58.png -------------------------------------------------------------------------------- /apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon80.png -------------------------------------------------------------------------------- /apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/Assets.xcassets/AppIcon.appiconset/MoneyIcon87.png -------------------------------------------------------------------------------- /apps/money/Money/Money/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/add.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/add@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/add@2x.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/add@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/add@3x.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/next.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/next@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/next@2x.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/next@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/next@3x.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/prev.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/prev@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/prev@2x.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/prev@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/prev@3x.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/settings.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/settings@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/settings@2x.png -------------------------------------------------------------------------------- /apps/money/Money/Money/icons/settings@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/Money/Money/icons/settings@3x.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyIcon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyIcon.psd -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyIcon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyIcon1024.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyIcon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyIcon120.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyIcon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyIcon180.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyIcon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyIcon58.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyIcon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyIcon80.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyIcon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyIcon87.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyLaunchImage 1242x2208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyLaunchImage 1242x2208.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyLaunchImage 640x1136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyLaunchImage 640x1136.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyLaunchImage 640x960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyLaunchImage 640x960.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyLaunchImage 750x1334.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyLaunchImage 750x1334.png -------------------------------------------------------------------------------- /apps/money/files/IconsAndLaunchImages/MoneyLaunchImage.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/IconsAndLaunchImages/MoneyLaunchImage.psd -------------------------------------------------------------------------------- /apps/money/files/ItunesconnectImages/IMG_1806 1242x2208.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/ItunesconnectImages/IMG_1806 1242x2208.PNG -------------------------------------------------------------------------------- /apps/money/files/ItunesconnectImages/IMG_1806 640x1136.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/ItunesconnectImages/IMG_1806 640x1136.PNG -------------------------------------------------------------------------------- /apps/money/files/ItunesconnectImages/IMG_1806 640x960.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/ItunesconnectImages/IMG_1806 640x960.PNG -------------------------------------------------------------------------------- /apps/money/files/ItunesconnectImages/IMG_1806 750x1334.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/ItunesconnectImages/IMG_1806 750x1334.PNG -------------------------------------------------------------------------------- /apps/money/files/icons/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/add.png -------------------------------------------------------------------------------- /apps/money/files/icons/add@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/add@2x.png -------------------------------------------------------------------------------- /apps/money/files/icons/add@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/add@3x.png -------------------------------------------------------------------------------- /apps/money/files/icons/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/next.png -------------------------------------------------------------------------------- /apps/money/files/icons/next@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/next@2x.png -------------------------------------------------------------------------------- /apps/money/files/icons/next@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/next@3x.png -------------------------------------------------------------------------------- /apps/money/files/icons/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/prev.png -------------------------------------------------------------------------------- /apps/money/files/icons/prev@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/prev@2x.png -------------------------------------------------------------------------------- /apps/money/files/icons/prev@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/prev@3x.png -------------------------------------------------------------------------------- /apps/money/files/icons/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/settings.png -------------------------------------------------------------------------------- /apps/money/files/icons/settings@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/settings@2x.png -------------------------------------------------------------------------------- /apps/money/files/icons/settings@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/money/files/icons/settings@3x.png -------------------------------------------------------------------------------- /apps/taipeitravel/ExFetchDataAndStorage/ExFetchDataAndStorage.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/taipeitravel/ExFetchDataAndStorage/ExFetchDataAndStorage.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/taipeitravel/ExFetchDataAndStorage/ExFetchDataAndStorage/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExFetchDataAndStorage 4 | // 5 | // Created by joe feng on 2016/6/3. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /apps/taipeitravel/ExFetchDataAndStorage/ExFetchDataAndStorage/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /apps/taipeitravel/ExMap/ExMap.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/taipeitravel/ExMap/ExMap.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/taipeitravel/ExMap/ExMap/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExMap 4 | // 5 | // Created by joe feng on 2016/6/2. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /apps/taipeitravel/ExMap/ExMap/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /apps/taipeitravel/ExMap/ExMap/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 | NSLocationWhenInUseUsageDescription 26 | 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIMainStoryboardFile 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /apps/taipeitravel/ExMap/ExMap/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/ExMap/ExMap/user.png -------------------------------------------------------------------------------- /apps/taipeitravel/ExMap/ExMap/user@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/ExMap/ExMap/user@2x.png -------------------------------------------------------------------------------- /apps/taipeitravel/ExMap/ExMap/user@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/ExMap/ExMap/user@3x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon1024.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon120-1.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon120.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon180.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon58.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon80.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/AppIcon.appiconset/TaipeiTravelIcon87.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/LandmarkDetailViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LandmarkDetailViewController.swift 3 | // TaipeiTravel 4 | // 5 | // Created by joe feng on 2016/6/7. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LandmarkDetailViewController: DetailViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | self.fetchType = "landmark" 17 | 18 | let latitude = info["latitude"] as? Double ?? 0.0 19 | let longitude = info["longitude"] as? Double ?? 0.0 20 | hasMap = latitude == 0.0 && longitude == 0.0 ? false : true 21 | 22 | // 設置資訊 23 | detail = [ 24 | "地圖", 25 | info["type"] as? String ?? "", 26 | info["address"] as? String ?? "", 27 | info["openTime"] as? String ?? "", 28 | info["transportation"] as? String ?? "", 29 | info["intro"] as? String ?? "", 30 | ] 31 | 32 | self.title = info["title"] as? String ?? "標題" 33 | 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/Launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/Launch.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/ParkDetailViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ParkDetailViewController.swift 3 | // TaipeiTravel 4 | // 5 | // Created by joe feng on 2016/6/7. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ParkDetailViewController: DetailViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | self.fetchType = "park" 17 | 18 | let latitude = info["latitude"] as? Double ?? 0.0 19 | let longitude = info["longitude"] as? Double ?? 0.0 20 | hasMap = latitude == 0.0 && longitude == 0.0 ? false : true 21 | 22 | // 設置資訊 23 | detail = [ 24 | "地圖", 25 | info["type"] as? String ?? "", 26 | info["location"] as? String ?? "", 27 | info["area"] as? String ?? "", 28 | info["intro"] as? String ?? "", 29 | ] 30 | 31 | self.title = info["title"] as? String ?? "標題" 32 | 33 | } 34 | 35 | 36 | // MARK: UITableViewDelegate methods 37 | 38 | // 必須實作的方法:每一組有幾個 cell 39 | override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 40 | return hasMap ? 5 : 4 41 | } 42 | 43 | 44 | } 45 | -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/hotel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/hotel.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/hotel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/hotel@2x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/hotel@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/hotel@3x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/info.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/info@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/info@2x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/info@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/info@3x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/landmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/landmark.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/landmark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/landmark@2x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/landmark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/landmark@3x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/park.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/park.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/park@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/park@2x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/park@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/park@3x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/toilet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/toilet.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/toilet@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/toilet@2x.png -------------------------------------------------------------------------------- /apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/toilet@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/TaipeiTravel/TaipeiTravel/icons/toilet@3x.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/Launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/Launch.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon.psd -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon1024.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon120.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon180.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon58.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon80.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelIcon87.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage.psd -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage1242x2208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage1242x2208.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage640x1136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage640x1136.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage640x960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage640x960.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage750x1334.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/IconsAndLaunchImages/TaipeiTravelLaunchImage750x1334.png -------------------------------------------------------------------------------- /apps/taipeitravel/files/ItunesconnectImages/IMG_1799 1242x2208.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/ItunesconnectImages/IMG_1799 1242x2208.PNG -------------------------------------------------------------------------------- /apps/taipeitravel/files/ItunesconnectImages/IMG_1799 640x1136.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/ItunesconnectImages/IMG_1799 640x1136.PNG -------------------------------------------------------------------------------- /apps/taipeitravel/files/ItunesconnectImages/IMG_1799 640x960.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/ItunesconnectImages/IMG_1799 640x960.PNG -------------------------------------------------------------------------------- /apps/taipeitravel/files/ItunesconnectImages/IMG_1799.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/taipeitravel/files/ItunesconnectImages/IMG_1799.PNG -------------------------------------------------------------------------------- /apps/todo/ExEditUITableView/ExEditUITableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/todo/ExEditUITableView/ExEditUITableView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/todo/ExEditUITableView/ExEditUITableView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExEditUITableView 4 | // 5 | // Created by joe feng on 2016/6/15. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | 18 | // 建立一個 UIWindow 19 | self.window = UIWindow(frame: UIScreen.main.bounds) 20 | 21 | // 設置底色 22 | self.window!.backgroundColor = UIColor.white 23 | 24 | // 設置根視圖控制器 25 | let nav = UINavigationController(rootViewController: ViewController()) 26 | self.window!.rootViewController = nav 27 | 28 | // 將 UIWindow 設置為可見的 29 | self.window!.makeKeyAndVisible() 30 | 31 | return true 32 | } 33 | 34 | } 35 | 36 | -------------------------------------------------------------------------------- /apps/todo/ExEditUITableView/ExEditUITableView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /apps/todo/ExEditUITableView/ExEditUITableView/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 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /apps/todo/ExSound/ExSound.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/todo/ExSound/ExSound.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/todo/ExSound/ExSound/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExSound 4 | // 5 | // Created by joe feng on 2016/6/14. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /apps/todo/ExSound/ExSound/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" : "ios-marketing", 45 | "size" : "1024x1024", 46 | "scale" : "1x" 47 | } 48 | ], 49 | "info" : { 50 | "version" : 1, 51 | "author" : "xcode" 52 | } 53 | } -------------------------------------------------------------------------------- /apps/todo/ExSound/ExSound/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 | 40 | 41 | -------------------------------------------------------------------------------- /apps/todo/ExSound/ExSound/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ExSound 4 | // 5 | // Created by joe feng on 2016/6/14. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import AVFoundation 11 | 12 | class ViewController: UIViewController { 13 | var myPlayer :AVAudioPlayer! 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | // 建立播放器 19 | let soundPath = Bundle.main.path(forResource: "woohoo", ofType: "wav") 20 | do { 21 | myPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: soundPath!)) 22 | 23 | // 重複播放次數 設為 0 則是只播放一次 不重複 24 | myPlayer.numberOfLoops = 0 25 | 26 | } catch { 27 | print("error") 28 | } 29 | 30 | 31 | // 建立一個按鈕 32 | let myButton = UIButton(frame: CGRect(x: 100, y: 200, width: 100, height: 60)) 33 | myButton.setTitle("音效", for: .normal) 34 | myButton.setTitleColor(UIColor.blue, for: .normal) 35 | myButton.addTarget(self, action: #selector(ViewController.go), for: .touchUpInside) 36 | self.view.addSubview(myButton) 37 | 38 | } 39 | 40 | @objc func go() { 41 | // 播放音效 42 | myPlayer.play() 43 | } 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /apps/todo/ExSound/ExSound/woohoo.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ExSound/ExSound/woohoo.wav -------------------------------------------------------------------------------- /apps/todo/ToDo/Record+CoreDataProperties.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Record+CoreDataProperties.swift 3 | // ToDo 4 | // 5 | // Created by joe feng on 2016/6/16. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | // Choose "Create NSManagedObject Subclass…" from the Core Data editor menu 9 | // to delete and recreate this implementation file for your updated model. 10 | // 11 | 12 | import Foundation 13 | import CoreData 14 | 15 | extension Record { 16 | 17 | @NSManaged var id: NSNumber? 18 | @NSManaged var content: String? 19 | @NSManaged var seq: NSNumber? 20 | @NSManaged var done: NSNumber? 21 | 22 | } 23 | -------------------------------------------------------------------------------- /apps/todo/ToDo/Record.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Record.swift 3 | // ToDo 4 | // 5 | // Created by joe feng on 2016/6/16. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import CoreData 11 | 12 | 13 | class Record: NSManagedObject { 14 | 15 | // Insert code here to add functionality to your managed object subclass 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon1024.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon120-1.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon120.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon180.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon58.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon80.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/Assets.xcassets/AppIcon.appiconset/ToDoIcon87.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/ChechedRecordsViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChechedRecordsViewController.swift 3 | // ToDo 4 | // 5 | // Created by joe feng on 2016/6/17. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChechedRecordsViewController: BaseViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | self.title = "已完成事項" 17 | self.automaticallyAdjustsScrollViewInsets = false 18 | checkStatus = true 19 | 20 | // 建立 UITableView 21 | myTableView = UITableView(frame: CGRect(x: 0, y: 0, width: fullsize.width, height: fullsize.height - 64), style: .plain) 22 | myTableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell") 23 | myTableView.delegate = self 24 | myTableView.dataSource = self 25 | myTableView.allowsSelection = true 26 | self.view.addSubview(myTableView) 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/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 | 待辦事項 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0.0 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/Launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/Launch.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/ToDo.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | ToDo.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/ToDo.xcdatamodeld/ToDo.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/check.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/check@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/check@2x.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/check@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/check@3x.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/checkbox.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/checkbox@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/checkbox@2x.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/checkbox@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/checkbox@3x.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/more.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/more@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/more@2x.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/more@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/more@3x.png -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/sounds/bottle_pop_3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/sounds/bottle_pop_3.wav -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/sounds/cutting-paper-2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/sounds/cutting-paper-2.mp3 -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/sounds/what-2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/sounds/what-2.wav -------------------------------------------------------------------------------- /apps/todo/ToDo/ToDo/icons/sounds/woohoo.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/ToDo/ToDo/icons/sounds/woohoo.wav -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/Launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/Launch.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoIcon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoIcon.psd -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoIcon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoIcon1024.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoIcon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoIcon120.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoIcon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoIcon180.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoIcon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoIcon58.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoIcon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoIcon80.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoIcon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoIcon87.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage.psd -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage1242x2208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage1242x2208.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage640x1136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage640x1136.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage640x960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage640x960.png -------------------------------------------------------------------------------- /apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage750x1334.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/IconsAndLaunchImages/ToDoLaunchImage750x1334.png -------------------------------------------------------------------------------- /apps/todo/files/ItunesconnectImages/IMG_1805 1242x2208.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/ItunesconnectImages/IMG_1805 1242x2208.PNG -------------------------------------------------------------------------------- /apps/todo/files/ItunesconnectImages/IMG_1805 640x1136.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/ItunesconnectImages/IMG_1805 640x1136.PNG -------------------------------------------------------------------------------- /apps/todo/files/ItunesconnectImages/IMG_1805 640x960.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/ItunesconnectImages/IMG_1805 640x960.PNG -------------------------------------------------------------------------------- /apps/todo/files/ItunesconnectImages/IMG_1805 750x1334.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/ItunesconnectImages/IMG_1805 750x1334.PNG -------------------------------------------------------------------------------- /apps/todo/files/icons/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/check.png -------------------------------------------------------------------------------- /apps/todo/files/icons/check512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/check512.png -------------------------------------------------------------------------------- /apps/todo/files/icons/check@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/check@2x.png -------------------------------------------------------------------------------- /apps/todo/files/icons/check@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/check@3x.png -------------------------------------------------------------------------------- /apps/todo/files/icons/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/checkbox.png -------------------------------------------------------------------------------- /apps/todo/files/icons/checkbox512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/checkbox512.png -------------------------------------------------------------------------------- /apps/todo/files/icons/checkbox@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/checkbox@2x.png -------------------------------------------------------------------------------- /apps/todo/files/icons/checkbox@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/checkbox@3x.png -------------------------------------------------------------------------------- /apps/todo/files/icons/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/more.png -------------------------------------------------------------------------------- /apps/todo/files/icons/more512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/more512.png -------------------------------------------------------------------------------- /apps/todo/files/icons/more@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/more@2x.png -------------------------------------------------------------------------------- /apps/todo/files/icons/more@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/icons/more@3x.png -------------------------------------------------------------------------------- /apps/todo/files/sounds/bottle_pop_3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/sounds/bottle_pop_3.wav -------------------------------------------------------------------------------- /apps/todo/files/sounds/cutting-paper-2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/sounds/cutting-paper-2.mp3 -------------------------------------------------------------------------------- /apps/todo/files/sounds/what-2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/sounds/what-2.wav -------------------------------------------------------------------------------- /apps/todo/files/sounds/woohoo.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/apps/todo/files/sounds/woohoo.wav -------------------------------------------------------------------------------- /ch1/basic_operators.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch1/basic_operators.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch1/basic_operators.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch1/basics.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | 2 | // 印出:Hello World ! 3 | print("Hello, World !") 4 | 5 | 6 | // 使用 let 宣告常數 name 7 | let name = "Joe" 8 | 9 | // 使用 var 宣告變數 price 10 | var price = 300 11 | 12 | // 接著就可以使用這個宣告過的常數 用來印出名字 13 | print(name) 14 | 15 | 16 | let score = 100 17 | let myFullName = "Kevin Chen" 18 | //var 123myName = "Jess" // 不能以數字開頭 所以這行會報錯誤 19 | var myClass55 = "101" // 在其他部分使用數字則是沒問題 20 | 21 | 22 | // 這是單行註解,以兩個斜線開始,因為單行即結束,所以不用特別語法結尾 23 | 24 | let anotherName = "Kevin" // 也可以將單行註解寫在程式的後面,但後面就不能再寫程式了 25 | 26 | /* 27 | 這是多行註解,以一個斜線跟星號開始,再以一個星號跟斜線做結尾。 28 | 這裡面的內容 29 | 都會被程式忽略,不會被執行。 30 | */ 31 | 32 | 33 | /* 34 | 比較特別的一點是 35 | Swift 的多行註解支援巢狀註解 36 | 37 | /* 38 | 也就是多行註解裡 39 | 再包著多行註解 40 | */ 41 | 42 | 仍然是可以執行的 43 | 這點在需要暫時將一大段包含註解的程式碼一次註解起來時很好用 44 | */ 45 | 46 | -------------------------------------------------------------------------------- /ch1/basics.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch1/basics.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch1/basics.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch1/basics.playground/timeline.xctimeline: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ch1/closures.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch1/closures.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch1/closures.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch1/collection_types.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch1/collection_types.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch1/collection_types.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch1/control_flow.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch1/control_flow.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch1/control_flow.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch1/functions.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch1/functions.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch1/functions.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch1/strings_characters.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch1/strings_characters.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch1/strings_characters.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch1/types.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch1/types.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch1/types.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/arc.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/arc.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/arc.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/classes_structures.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/classes_structures.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/classes_structures.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/enumerations.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/enumerations.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/enumerations.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/error-handling.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/error-handling.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/error-handling.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/extensions.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/extensions.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/extensions.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/generics.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/generics.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/generics.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/inheritance.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/inheritance.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/inheritance.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/initialization_deinitialization.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/initialization_deinitialization.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/initialization_deinitialization.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/methods.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/methods.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/methods.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/nested-types.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | 2 | struct Poker { 3 | 4 | enum Suit: String { 5 | case spades = "黑桃", hearts = "紅心" 6 | case diamonds = "方塊", clubs = "梅花" 7 | } 8 | 9 | enum Rank: Int { 10 | case two = 2, three, four, five, six 11 | case seven, eight, nine, ten 12 | case jack, queen, king, ace 13 | } 14 | 15 | let rank: Rank, suit: Suit 16 | 17 | func description () { 18 | print("這張牌的花色是:\(suit.rawValue)") 19 | print("點數為:\(rank.rawValue)") 20 | } 21 | 22 | } 23 | 24 | let poker = Poker(rank: .king, suit: .hearts) 25 | 26 | // 印出:這張牌的花色是:紅心,點數為:13 27 | poker.description() 28 | 29 | 30 | let diamondsName = Poker.Suit.diamonds 31 | 32 | // 印出:方塊 33 | print(diamondsName.rawValue) 34 | -------------------------------------------------------------------------------- /ch2/nested-types.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/nested-types.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/nested-types.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/optional-chaining.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/optional-chaining.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/optional-chaining.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/properties.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/properties.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/properties.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/protocols.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/protocols.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/protocols.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/subscripts.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | 2 | // 宣告一個 [Int] 型別的陣列 3 | var arr = [1,2,3,4,5,6,7] 4 | 5 | // 印出其內第三個元素(請記得 陣列的索引值是從 0 開始算起) 6 | print(arr[2]) 7 | 8 | // 修改第四個元素為 12 9 | arr[3] = 12 10 | 11 | 12 | // 宣告一個 [String:String] 型別的字典 13 | var dict = ["name":"Kevin","city":"Taipei"] 14 | 15 | // 印出鍵為 name 的值 16 | print(dict["name"]!) 17 | 18 | // 修改鍵為 city 的值為 New York 19 | dict["city"] = "New York" 20 | 21 | 22 | // 定義一個簡單數學算式功能的類別 23 | class SimpleMath { 24 | // 一個數字屬性預設值 25 | var num = 500 26 | 27 | // 定義一個下標 為乘法 28 | subscript(times: String) -> Int { 29 | get { 30 | // 其內可以使用這個索引值 31 | print(times) 32 | 33 | // 會返回 數字屬性乘以 2 的數值 34 | return num * 2 35 | } 36 | set { 37 | // 將數字屬性乘以新的倍數 38 | num *= newValue 39 | } 40 | } 41 | 42 | // 定義另一個下標 為除法 43 | subscript(divided: Int) -> Int { 44 | return num / divided 45 | } 46 | } 47 | 48 | // 宣告一個類別 SimpleMath 的常數 49 | let oneMath = SimpleMath() 50 | 51 | // 印出:1000 52 | print(oneMath["simple"]) 53 | 54 | // 傳入值為 3, 會將數字屬性乘以 3 55 | oneMath["star"] = 3 56 | 57 | // 這個下標例子中的字串索引值沒有被使用到 58 | // 其實是可以依照傳入的索引值 來做不同的需求及返回值 59 | 60 | // 印出:1500 61 | print(oneMath.num) 62 | 63 | // 使用到另一個下標 索引值型別為 Int 64 | // 印出:15 65 | print(oneMath[100]) 66 | -------------------------------------------------------------------------------- /ch2/subscripts.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/subscripts.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/subscripts.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ch2/type-casting.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ch2/type-casting.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ch2/type-casting.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /database/coredata/ExCoreData/ExCoreData.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /database/coredata/ExCoreData/ExCoreData.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /database/coredata/ExCoreData/ExCoreData/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /database/coredata/ExCoreData/ExCoreData/ExCoreData.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | ExCoreData.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /database/coredata/ExCoreData/ExCoreData/ExCoreData.xcdatamodeld/ExCoreData.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /database/sqlite/ExSQLite/ExSQLite.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /database/sqlite/ExSQLite/ExSQLite.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /database/sqlite/ExSQLite/ExSQLite/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExSQLite 4 | // 5 | // Created by joe feng on 2018/11/5. 6 | // Copyright © 2018年 Feng. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | 18 | return true 19 | } 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /database/sqlite/ExSQLite/ExSQLite/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /uikit/animations/ExAnimations/ExAnimations.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/animations/ExAnimations/ExAnimations.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/animations/ExAnimations/ExAnimations/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExAnimations 4 | // 5 | // Created by joe feng on 2016/5/26. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/animations/ExAnimations/ExAnimations/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/multipages/ExMultiPages/ExMultiPages.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/multipages/ExMultiPages/ExMultiPages.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/multipages/ExMultiPages/ExMultiPages/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExMultiPages 4 | // 5 | // Created by joe feng on 2016/5/23. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/multipages/ExMultiPages/ExMultiPages/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uialert/ExUIAlert/ExUIAlert.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uialert/ExUIAlert/ExUIAlert.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uialert/ExUIAlert/ExUIAlert/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIAlert 4 | // 5 | // Created by joe feng on 2016/5/16. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uialert/ExUIAlert/ExUIAlert/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uialert/ExUIAlert/ExUIAlert/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 | 40 | 41 | -------------------------------------------------------------------------------- /uikit/uibutton/ExUIButton/ExUIButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uibutton/ExUIButton/ExUIButton.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uibutton/ExUIButton/ExUIButton/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIButton 4 | // 5 | // Created by joe feng on 2016/5/16. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uibutton/ExUIButton/ExUIButton/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uibutton/ExUIButton/ExUIButton/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 | 40 | 41 | -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUICollectionView 4 | // 5 | // Created by joe feng on 2016/5/20. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/MyCollectionViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MyCollectionViewCell.swift 3 | // ExUICollectionView 4 | // 5 | // Created by joe feng on 2016/5/20. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MyCollectionViewCell: UICollectionViewCell { 12 | var imageView:UIImageView! 13 | var titleLabel:UILabel! 14 | 15 | override init(frame: CGRect) { 16 | super.init(frame: frame) 17 | 18 | // 取得螢幕寬度 19 | let w = Double(UIScreen.main.bounds.size.width) 20 | 21 | // 建立一個 UIImageView 22 | imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: w/3 - 10.0, height: w/3 - 10.0)) 23 | self.addSubview(imageView) 24 | 25 | // 建立一個 UILabel 26 | titleLabel = UILabel(frame:CGRect(x: 0, y: 0, width: w/3 - 10.0, height: 40)) 27 | titleLabel.textAlignment = .center 28 | titleLabel.textColor = UIColor.orange 29 | self.addSubview(titleLabel) 30 | } 31 | 32 | required init?(coder aDecoder: NSCoder) { 33 | fatalError("init(coder:) has not been implemented") 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/01.jpg -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/02.jpg -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/03.jpg -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/04.jpg -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/05.jpg -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/06.jpg -------------------------------------------------------------------------------- /uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uicollectionview/ExUICollectionView/ExUICollectionView/images/07.jpg -------------------------------------------------------------------------------- /uikit/uidatepicker/ExUIDatePicker/ExUIDatePicker.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uidatepicker/ExUIDatePicker/ExUIDatePicker.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uidatepicker/ExUIDatePicker/ExUIDatePicker/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIDatePicker 4 | // 5 | // Created by joe feng on 2016/5/17. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uidatepicker/ExUIDatePicker/ExUIDatePicker/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uidatepicker/date.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | // 簡單的建立了一個目前時間的常數 4 | // 型別為 Date 5 | let nowDate = Date() 6 | 7 | // 你可以使用型別為 Date 的常數來對日期時間作處理 8 | // 例如將現在時間加上一天 9 | // addingTimeInterval 的單位是秒 10 | let oneDayAfter = nowDate.addingTimeInterval(60 * 60 * 24) 11 | 12 | // 現在處理完後 13 | // 如果要將這個 Date 常數轉換成字串 14 | // 則是要利用 DateFormatter 15 | let formatter = DateFormatter() 16 | 17 | // 先設置日期時間顯示的格式 18 | formatter.dateFormat = "yyyy-MM-dd HH:mm" 19 | 20 | // 再利用 DateFormatter 的 string(from:) 方法 21 | // 將 oneDayAfter 轉換成字串 22 | let oneDayAfterToString = formatter.string(from: oneDayAfter) 23 | 24 | // 印出:明天這一刻的日期時間 25 | print(oneDayAfterToString) 26 | 27 | // 或是你要從一個顯示日期時間的字串 轉換成 Date 28 | let xmasDate = formatter.date(from: "2016-12-25 21:30") 29 | // 這時便可以再對這個 Date 常數作處理 30 | 31 | -------------------------------------------------------------------------------- /uikit/uidatepicker/date.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /uikit/uidatepicker/date.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uidatepicker/date.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExImageUIGestureRecognizer/ExImageUIGestureRecognizer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExImageUIGestureRecognizer/ExImageUIGestureRecognizer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExImageUIGestureRecognizer/ExImageUIGestureRecognizer/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uigesturerecognizer/ExImageUIGestureRecognizer/ExImageUIGestureRecognizer/01.jpg -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExImageUIGestureRecognizer/ExImageUIGestureRecognizer/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uigesturerecognizer/ExImageUIGestureRecognizer/ExImageUIGestureRecognizer/02.jpg -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExImageUIGestureRecognizer/ExImageUIGestureRecognizer/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExImageUIGestureRecognizer 4 | // 5 | // Created by joe feng on 2016/5/25. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExImageUIGestureRecognizer/ExImageUIGestureRecognizer/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExUIGestureRecognizer/ExUIGestureRecognizer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExUIGestureRecognizer/ExUIGestureRecognizer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExUIGestureRecognizer/ExUIGestureRecognizer/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIGestureRecognizer 4 | // 5 | // Created by joe feng on 2016/5/25. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uigesturerecognizer/ExUIGestureRecognizer/ExUIGestureRecognizer/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExAutoPlayImage 4 | // 5 | // Created by joe feng on 2016/5/17. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/play.png -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/play@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/play@2x.png -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/play@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/play@3x.png -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/stop.png -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/stop@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/stop@2x.png -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/stop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/icon/stop@3x.png -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/images/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/images/01.jpg -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/images/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/images/02.jpg -------------------------------------------------------------------------------- /uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/images/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExAutoPlayImage/ExAutoPlayImage/images/03.jpg -------------------------------------------------------------------------------- /uikit/uiimageview/ExUIImageView/ExUIImageView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uiimageview/ExUIImageView/ExUIImageView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uiimageview/ExUIImageView/ExUIImageView/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExUIImageView/ExUIImageView/01.jpg -------------------------------------------------------------------------------- /uikit/uiimageview/ExUIImageView/ExUIImageView/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExUIImageView/ExUIImageView/02.jpg -------------------------------------------------------------------------------- /uikit/uiimageview/ExUIImageView/ExUIImageView/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExUIImageView/ExUIImageView/03.jpg -------------------------------------------------------------------------------- /uikit/uiimageview/ExUIImageView/ExUIImageView/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiimageview/ExUIImageView/ExUIImageView/04.jpg -------------------------------------------------------------------------------- /uikit/uiimageview/ExUIImageView/ExUIImageView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIImageView 4 | // 5 | // Created by joe feng on 2016/5/17. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uiimageview/ExUIImageView/ExUIImageView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uikit_intro/MyFirstProject/MyFirstProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uikit_intro/MyFirstProject/MyFirstProject.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uikit_intro/MyFirstProject/MyFirstProject/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // MyFirstProject 4 | // 5 | // Created by joe feng on 2016/5/11. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uikit_intro/MyFirstProject/MyFirstProject/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" : "ios-marketing", 45 | "size" : "1024x1024", 46 | "scale" : "1x" 47 | } 48 | ], 49 | "info" : { 50 | "version" : 1, 51 | "author" : "xcode" 52 | } 53 | } -------------------------------------------------------------------------------- /uikit/uikit_intro/MyFirstProject/MyFirstProject/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // MyFirstProject 4 | // 5 | // Created by joe feng on 2016/5/11. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | // 取得螢幕的尺寸 13 | let fullScreenSize = UIScreen.main.bounds.size 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | // 定義一個 UIView 的常數 名稱為 firstView 19 | let firstView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) 20 | 21 | // 將 firstView 加入到 self.view 22 | self.view.addSubview(firstView) 23 | 24 | // 設置 UIView 的位置到畫面的中心 25 | firstView.center = CGPoint(x: fullScreenSize.width * 0.5 , y: fullScreenSize.height * 0.5) 26 | 27 | // 將 UIView 的底色設置為藍色 28 | firstView.backgroundColor = UIColor.blue 29 | 30 | } 31 | 32 | } 33 | 34 | -------------------------------------------------------------------------------- /uikit/uilabel/ExUILabel/ExUILabel.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uilabel/ExUILabel/ExUILabel.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uilabel/ExUILabel/ExUILabel/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUILabel 4 | // 5 | // Created by joe feng on 2016/5/13. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uilabel/ExUILabel/ExUILabel/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uilabel/ExUILabel/ExUILabel/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 | 40 | 41 | -------------------------------------------------------------------------------- /uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUINavigationController 4 | // 5 | // Created by joe feng on 2016/5/24. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // 建立一個 UIWindow 18 | self.window = UIWindow(frame: UIScreen.main.bounds) 19 | 20 | // 設置底色 21 | self.window!.backgroundColor = UIColor.white 22 | 23 | // 設置根視圖控制器 24 | let nav = UINavigationController(rootViewController: ViewController()) 25 | self.window!.rootViewController = nav 26 | 27 | // 將 UIWindow 設置為可見的 28 | self.window!.makeKeyAndVisible() 29 | 30 | return true 31 | } 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/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 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/icon/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/icon/check.png -------------------------------------------------------------------------------- /uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/icon/check@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/icon/check@2x.png -------------------------------------------------------------------------------- /uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/icon/check@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uinavigationcontroller/ExUINavigationController/ExUINavigationController/icon/check@3x.png -------------------------------------------------------------------------------- /uikit/uipickerview/ExPickerInUITextField/ExPickerInUITextField.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uipickerview/ExPickerInUITextField/ExPickerInUITextField.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uipickerview/ExPickerInUITextField/ExPickerInUITextField/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExPickerInUITextField 4 | // 5 | // Created by joe feng on 2016/5/18. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uipickerview/ExPickerInUITextField/ExPickerInUITextField/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uipickerview/ExUIPickerView/ExUIPickerView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uipickerview/ExUIPickerView/ExUIPickerView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uipickerview/ExUIPickerView/ExUIPickerView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIPickerView 4 | // 5 | // Created by joe feng on 2016/5/18. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uipickerview/ExUIPickerView/ExUIPickerView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uipickerview/ExUIPickerView/ExUIPickerView/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ExUIPickerView 4 | // 5 | // Created by joe feng on 2016/5/18. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | // 取得螢幕的尺寸 13 | let fullScreenSize = UIScreen.main.bounds.size 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | // 建立 UIPickerView 設置位置及尺寸 19 | let myPickerView = UIPickerView(frame: CGRect(x: 0, y: fullScreenSize.height * 0.3, width: fullScreenSize.width, height: 150)) 20 | 21 | // 新增另一個 UIViewController 22 | // 用來實作委任模式的方法 23 | let myViewController = MyViewController() 24 | 25 | // 必須將這個 UIViewController 加入 26 | self.addChild(myViewController) 27 | 28 | // 設定 UIPickerView 的 delegate 及 dataSource 29 | myPickerView.delegate = myViewController 30 | myPickerView.dataSource = myViewController 31 | 32 | // 加入到畫面 33 | self.view.addSubview(myPickerView) 34 | 35 | } 36 | 37 | } 38 | 39 | -------------------------------------------------------------------------------- /uikit/uiprogressview/ExUIProgressView/ExUIProgressView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uiprogressview/ExUIProgressView/ExUIProgressView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uiprogressview/ExUIProgressView/ExUIProgressView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIProgressView 4 | // 5 | // Created by joe feng on 2016/5/19. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uiprogressview/ExUIProgressView/ExUIProgressView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uiscrollview/ExIntroStepByStep/ExIntroStepByStep.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uiscrollview/ExIntroStepByStep/ExIntroStepByStep.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uiscrollview/ExIntroStepByStep/ExIntroStepByStep/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExIntroStepByStep 4 | // 5 | // Created by joe feng on 2016/5/22. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uiscrollview/ExIntroStepByStep/ExIntroStepByStep/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uiscrollview/ExUIScrollView/ExUIScrollView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uiscrollview/ExUIScrollView/ExUIScrollView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uiscrollview/ExUIScrollView/ExUIScrollView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIScrollView 4 | // 5 | // Created by joe feng on 2016/5/22. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uiscrollview/ExUIScrollView/ExUIScrollView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uisearchcontroller/ExUISearchController/ExUISearchController.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uisearchcontroller/ExUISearchController/ExUISearchController.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uisearchcontroller/ExUISearchController/ExUISearchController/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUISearchController 4 | // 5 | // Created by joe feng on 2016/5/21. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uisearchcontroller/ExUISearchController/ExUISearchController/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uisegmentedcontrol/ExUISegmentedControl/ExUISegmentedControl.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uisegmentedcontrol/ExUISegmentedControl/ExUISegmentedControl.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uisegmentedcontrol/ExUISegmentedControl/ExUISegmentedControl/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUISegmentedControl 4 | // 5 | // Created by joe feng on 2016/5/18. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uisegmentedcontrol/ExUISegmentedControl/ExUISegmentedControl/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uislider/ExUISlider/ExUISlider.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uislider/ExUISlider/ExUISlider.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uislider/ExUISlider/ExUISlider/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uislider/ExUISlider/ExUISlider/01.jpg -------------------------------------------------------------------------------- /uikit/uislider/ExUISlider/ExUISlider/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUISlider 4 | // 5 | // Created by joe feng on 2016/5/19. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uislider/ExUISlider/ExUISlider/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uislider/ExUISlider/ExUISlider/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 | 40 | 41 | -------------------------------------------------------------------------------- /uikit/uistepper/ExUIStepper/ExUIStepper.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uistepper/ExUIStepper/ExUIStepper.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uistepper/ExUIStepper/ExUIStepper/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIStepper 4 | // 5 | // Created by joe feng on 2016/5/19. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uistepper/ExUIStepper/ExUIStepper/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uiswitch/ExUISwitch/ExUISwitch.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uiswitch/ExUISwitch/ExUISwitch.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uiswitch/ExUISwitch/ExUISwitch/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUISwitch 4 | // 5 | // Created by joe feng on 2016/5/18. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uiswitch/ExUISwitch/ExUISwitch/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uiswitch/ExUISwitch/ExUISwitch/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 | 40 | 41 | -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/ArticleViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ArticleViewController.swift 3 | // ExUITabBarController 4 | // 5 | // Created by joe feng on 2016/5/25. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ArticleViewController: UIViewController { 12 | // 取得螢幕的尺寸 13 | let fullSize = UIScreen.main.bounds.size 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | // 建立一個 UILabel 19 | let myLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 40)) 20 | myLabel.backgroundColor = UIColor.lightGray 21 | myLabel.text = "Article 文章頁" 22 | myLabel.textAlignment = .center 23 | myLabel.center = CGPoint(x: fullSize.width * 0.5, y: fullSize.height * 0.2) 24 | self.view.addSubview(myLabel) 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/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 | "info" : { 45 | "version" : 1, 46 | "author" : "xcode" 47 | } 48 | } -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/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 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/IntroViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IntroViewController.swift 3 | // ExUITabBarController 4 | // 5 | // Created by joe feng on 2016/5/25. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class IntroViewController: UIViewController { 12 | // 取得螢幕的尺寸 13 | let fullSize = UIScreen.main.bounds.size 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | // 建立一個 UILabel 19 | let myLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 40)) 20 | myLabel.backgroundColor = UIColor.lightGray 21 | myLabel.text = "Intro 介紹頁" 22 | myLabel.textAlignment = .center 23 | myLabel.center = CGPoint(x: fullSize.width * 0.5, y: fullSize.height * 0.2) 24 | self.view.addSubview(myLabel) 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/SettingViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SettingViewController.swift 3 | // ExUITabBarController 4 | // 5 | // Created by joe feng on 2016/5/25. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class SettingViewController: UIViewController { 12 | // 取得螢幕的尺寸 13 | let fullSize = UIScreen.main.bounds.size 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | // 建立一個 UILabel 19 | let myLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 40)) 20 | myLabel.backgroundColor = UIColor.lightGray 21 | myLabel.text = "Setting 設定頁" 22 | myLabel.textAlignment = .center 23 | myLabel.center = CGPoint(x: fullSize.width * 0.5, y: fullSize.height * 0.2) 24 | self.view.addSubview(myLabel) 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ExUITabBarController 4 | // 5 | // Created by joe feng on 2016/5/25. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | // 取得螢幕的尺寸 13 | let fullSize = UIScreen.main.bounds.size 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | // 建立一個 UILabel 19 | let myLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 40)) 20 | myLabel.backgroundColor = UIColor.lightGray 21 | myLabel.text = "系統圖示頁" 22 | myLabel.textAlignment = .center 23 | myLabel.center = CGPoint(x: fullSize.width * 0.5, y: fullSize.height * 0.2) 24 | self.view.addSubview(myLabel) 25 | } 26 | 27 | } 28 | 29 | -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/article.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/article@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/article@2x.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/article@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/article@3x.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/articleSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/articleSelected.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/articleSelected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/articleSelected@2x.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/articleSelected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/articleSelected@3x.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/profile.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/profile@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/profile@2x.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/profile@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/profile@3x.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/setting.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/setting@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/setting@2x.png -------------------------------------------------------------------------------- /uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/setting@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uitabbarcontroller/ExUITabBarController/ExUITabBarController/icon/setting@3x.png -------------------------------------------------------------------------------- /uikit/uitableview/ExUITableView/ExUITableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uitableview/ExUITableView/ExUITableView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uitableview/ExUITableView/ExUITableView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUITableView 4 | // 5 | // Created by joe feng on 2016/5/20. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uitableview/ExUITableView/ExUITableView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uitextfield/ExUITextField/ExUITextField.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uitextfield/ExUITextField/ExUITextField.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uitextfield/ExUITextField/ExUITextField/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUITextField 4 | // 5 | // Created by joe feng on 2016/5/13. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uitextfield/ExUITextField/ExUITextField/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uitextview/ExUITextView/ExUITextView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uitextview/ExUITextView/ExUITextView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uitextview/ExUITextView/ExUITextView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUITextView 4 | // 5 | // Created by joe feng on 2016/5/16. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uitextview/ExUITextView/ExUITextView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUIWebView 4 | // 5 | // Created by joe feng on 2016/5/19. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/back.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/back@2x.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/back@3x.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/forward.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/forward@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/forward@2x.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/forward@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/forward@3x.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/refresh.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/refresh@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/refresh@2x.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/refresh@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/refresh@3x.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/stop.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/stop@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/stop@2x.png -------------------------------------------------------------------------------- /uikit/uiwebview/ExUIWebView/ExUIWebView/icon/stop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itisjoe/swiftgo_files/96e9c0ab112563860decb4b053d30a066225214f/uikit/uiwebview/ExUIWebView/ExUIWebView/icon/stop@3x.png -------------------------------------------------------------------------------- /uikit/userdefaults/ExUserDefaults/ExUserDefaults.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /uikit/userdefaults/ExUserDefaults/ExUserDefaults.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /uikit/userdefaults/ExUserDefaults/ExUserDefaults/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExUserDefaults 4 | // 5 | // Created by joe feng on 2016/10/17. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // 建立一個 UIWindow 18 | self.window = UIWindow(frame: UIScreen.main.bounds) 19 | 20 | // 設置底色 21 | self.window!.backgroundColor = UIColor.white 22 | 23 | // 設置根視圖控制器 24 | let nav = UINavigationController(rootViewController: ViewController()) 25 | self.window!.rootViewController = nav 26 | 27 | // 將 UIWindow 設置為可見的 28 | self.window!.makeKeyAndVisible() 29 | 30 | return true 31 | } 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /uikit/userdefaults/ExUserDefaults/ExUserDefaults/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 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /uikit/userdefaults/ExUserDefaults/ExUserDefaults/DisplayViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisplayViewController.swift 3 | // ExUserDefaults 4 | // 5 | // Created by joe feng on 2016/10/17. 6 | // Copyright © 2016年 hsin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class DisplayViewController: UIViewController { 12 | // 取得螢幕的尺寸 13 | let fullSize = UIScreen.main.bounds.size 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | 18 | // 設置底色 19 | self.view.backgroundColor = UIColor.white 20 | 21 | // 取得儲存的預設資料 22 | let myUserDefaults = UserDefaults.standard 23 | 24 | // 顯示儲存資訊的 UILabel 25 | let myLabel = UILabel(frame: CGRect(x: 0, y: 0, width: fullSize.width, height: 40)) 26 | myLabel.textColor = UIColor.brown 27 | myLabel.textAlignment = .center 28 | myLabel.center = CGPoint(x: fullSize.width * 0.5, y: fullSize.height * 0.25) 29 | 30 | if let info = myUserDefaults.object(forKey: "info") as? String { 31 | myLabel.text = info 32 | } else { 33 | myLabel.text = "尚未儲存資訊" 34 | myLabel.textColor = UIColor.red 35 | } 36 | 37 | self.view.addSubview(myLabel) 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /uikit/userdefaults/ExUserDefaults/ExUserDefaults/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 | UIRequiredDeviceCapabilities 26 | 27 | armv7 28 | 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | 36 | 37 | --------------------------------------------------------------------------------