Skip to content

Commit

Permalink
Component 3 - List and ScrollView
Browse files Browse the repository at this point in the history
  • Loading branch information
sshikalgar committed Jul 13, 2020
1 parent b1ce6b9 commit fb48577
Show file tree
Hide file tree
Showing 28 changed files with 494 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "facebook.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "instagram.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "linkedin.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "pinterest.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "skype.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "snapchat.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "telegram.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "twitter.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "whatsapp.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ import Foundation
enum ComponentType: String {
case text = "Text"
case image = "Image"
case list = "List"
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ class ContentViewModel {
// MARK: - Variables
/// Model object array
let contentViewItems = [ContentModel(id: 1, contentType: ComponentType.text.rawValue),
ContentModel(id: 2, contentType: ComponentType.image.rawValue)]

ContentModel(id: 2, contentType: ComponentType.image.rawValue),
ContentModel(id: 3, contentType: ComponentType.list.rawValue)]

// MARK: - User define methods
/// Method to get destination view
/// - Parameter type: Type of view component
func getDestinationView(type: String) -> AnyView {
Expand All @@ -26,6 +28,8 @@ class ContentViewModel {
return AnyView(TextSwiftUIView())
case .image:
return AnyView(ImageListView())
case .list:
return AnyView(ListHomeView())
}
}
}
15 changes: 15 additions & 0 deletions SwiftUILearning/Components/List - Week 3/Enum/ListEnum.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// ListEnum.swift
// SwiftUILearning
//
// Created by Shikalgar, Shahrukh on 13/07/20.
// Copyright © 2020 Shahrukh Shikalgar. All rights reserved.
//

import Foundation

// MARK: - Enum for ListType
enum ListType: String {
case list = "List"
case scrollView = "ScrollView"
}
18 changes: 18 additions & 0 deletions SwiftUILearning/Components/List - Week 3/Model/ListHomeModel.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// ListHomeModel.swift
// SwiftUILearning
//
// Created by Shikalgar, Shahrukh on 13/07/20.
// Copyright © 2020 Shahrukh Shikalgar. All rights reserved.
//

import Foundation

// MARK: - ListHome Model
/// Model for listHome screen
struct ListHomeModel: Codable, Identifiable, Hashable {
let id: Int?
let title: String?
let subTitle: String?
let icon: String?
}
37 changes: 37 additions & 0 deletions SwiftUILearning/Components/List - Week 3/View/ListHomeView.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//
// ListHomeView.swift
// SwiftUILearning
//
// Created by Shikalgar, Shahrukh on 13/07/20.
// Copyright © 2020 Shahrukh Shikalgar. All rights reserved.
//

import SwiftUI

// MARK: - Struct for ListHomeView
/// View for ListHomeView
struct ListHomeView: View {
// MARK: - Variables
private let viewModel = ListHomeViewModel()

// MARK: - View
/// Body for View
var body: some View {
List {
ForEach(self.viewModel.contentViewItems, id: \.self) { item in
NavigationLink(destination: self.viewModel.getDestinationView(type: item.contentType ?? "")) {
Text("\(item.contentType ?? "")")
}
}
}.listStyle(GroupedListStyle())
.navigationBarTitle("SwiftUI List")
}
}

// MARK: - ListHomeView_Previews
/// Preview provider for ListHomeView
struct ListHomeView_Previews: PreviewProvider {
static var previews: some View {
ListHomeView()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//
// HomeScrollView.swift
// SwiftUILearning
//
// Created by Shikalgar, Shahrukh on 13/07/20.
// Copyright © 2020 Shahrukh Shikalgar. All rights reserved.
//

import SwiftUI

// MARK: - Struct for HomeScrollView
/// View for HomeScrollView
struct HomeScrollView: View {
// MARK: - Variables
private let viewModel = ListHomeViewModel()

// MARK: - View
/// Body for View
var body: some View {
ScrollView {
ForEach(self.viewModel.getListHomeModel(), id: \.self) { item in
SocialMediaListRow(icon: item.icon ?? "",
title: item.title ?? "",
subTitle: item.subTitle ?? "")
}
}.padding()
.navigationBarTitle(Text("ScrollView"), displayMode: .inline)
}
}

// MARK: - HomeScrollView_Previews
/// Preview provider for HomeScrollView
struct HomeScrollView_Previews: PreviewProvider {
static var previews: some View {
HomeScrollView()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//
// ListTypeView.swift
// SwiftUILearning
//
// Created by Shikalgar, Shahrukh on 13/07/20.
// Copyright © 2020 Shahrukh Shikalgar. All rights reserved.
//

import SwiftUI

// MARK: - Struct for ListTypeView
/// View for ListTypeView
struct ListTypeView: View {
// MARK: - Variables
private let viewModel = ListHomeViewModel()

// MARK: - View
/// Body for View
var body: some View {
List {
ForEach(self.viewModel.getListHomeModel(), id: \.self) { item in
SocialMediaListRow(icon: item.icon ?? "",
title: item.title ?? "",
subTitle: item.subTitle ?? "")
}
}
.listStyle(PlainListStyle())
.navigationBarTitle(Text("List"), displayMode: .inline)
}
}

// MARK: - ListTypeView_Previews
/// Preview provider for ListTypeView
struct ListTypeView_Previews: PreviewProvider {
static var previews: some View {
ListTypeView()
}
}
Loading

0 comments on commit fb48577

Please sign in to comment.