Skip to content

Commit

Permalink
merge: #7 3주차 과제 PR(#6)
Browse files Browse the repository at this point in the history
[Feat/#6 week03] 3주차 과제
  • Loading branch information
hyesuuou authored May 15, 2022
2 parents b33a241 + fd54358 commit fad2e1e
Show file tree
Hide file tree
Showing 85 changed files with 1,113 additions and 9 deletions.
56 changes: 56 additions & 0 deletions Instagram-Clone/Instagram-Clone.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@
15963F7D2800AFC2003C7A14 /* Storyboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15963F7C2800AFC2003C7A14 /* Storyboard.swift */; };
15963F7F2800B05A003C7A14 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15963F7E2800B05A003C7A14 /* ViewController.swift */; };
15963F812800B0FB003C7A14 /* InstagramTitleLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15963F802800B0FB003C7A14 /* InstagramTitleLabel.swift */; };
15F0B8922822455B008A300E /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15F0B8912822455B008A300E /* HomeViewController.swift */; };
15F0B89628224A66008A300E /* StoryCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15F0B89428224A66008A300E /* StoryCollectionViewCell.swift */; };
15F0B89728224A66008A300E /* StoryCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 15F0B89528224A66008A300E /* StoryCollectionViewCell.xib */; };
15F0B89A28224D16008A300E /* HomeViewController+CollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15F0B89928224D16008A300E /* HomeViewController+CollectionView.swift */; };
15F0B89E282382D0008A300E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15F0B89D282382D0008A300E /* User.swift */; };
15F0B8A0282382D5008A300E /* Feed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15F0B89F282382D5008A300E /* Feed.swift */; };
15F0B8A3282388B9008A300E /* FeedCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15F0B8A1282388B9008A300E /* FeedCollectionViewCell.swift */; };
15F0B8A4282388B9008A300E /* FeedCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 15F0B8A2282388B9008A300E /* FeedCollectionViewCell.xib */; };
6B32C10577BFCF0CC42F4629 /* Pods_Instagram_Clone.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 541B2B5ED91686F41F07A0A8 /* Pods_Instagram_Clone.framework */; };
/* End PBXBuildFile section */

Expand Down Expand Up @@ -73,6 +81,14 @@
15963F7C2800AFC2003C7A14 /* Storyboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Storyboard.swift; sourceTree = "<group>"; };
15963F7E2800B05A003C7A14 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
15963F802800B0FB003C7A14 /* InstagramTitleLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstagramTitleLabel.swift; sourceTree = "<group>"; };
15F0B8912822455B008A300E /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = "<group>"; };
15F0B89428224A66008A300E /* StoryCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoryCollectionViewCell.swift; sourceTree = "<group>"; };
15F0B89528224A66008A300E /* StoryCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StoryCollectionViewCell.xib; sourceTree = "<group>"; };
15F0B89928224D16008A300E /* HomeViewController+CollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "HomeViewController+CollectionView.swift"; sourceTree = "<group>"; };
15F0B89D282382D0008A300E /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
15F0B89F282382D5008A300E /* Feed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Feed.swift; sourceTree = "<group>"; };
15F0B8A1282388B9008A300E /* FeedCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedCollectionViewCell.swift; sourceTree = "<group>"; };
15F0B8A2282388B9008A300E /* FeedCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FeedCollectionViewCell.xib; sourceTree = "<group>"; };
2FD571BBDA6B7266B6880E1A /* Pods-Instagram-Clone.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Instagram-Clone.debug.xcconfig"; path = "Target Support Files/Pods-Instagram-Clone/Pods-Instagram-Clone.debug.xcconfig"; sourceTree = "<group>"; };
541B2B5ED91686F41F07A0A8 /* Pods_Instagram_Clone.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Instagram_Clone.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A9F2CFFA6199E7BEFAA4F976 /* Pods-Instagram-Clone.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Instagram-Clone.release.xcconfig"; path = "Target Support Files/Pods-Instagram-Clone/Pods-Instagram-Clone.release.xcconfig"; sourceTree = "<group>"; };
Expand All @@ -93,7 +109,10 @@
1521D0732811C25A00A9C29B /* Home */ = {
isa = PBXGroup;
children = (
15F0B89C282382B6008A300E /* Models */,
15F0B89828224CFE008A300E /* Extensions */,
1521D0782811C2C600A9C29B /* Home.storyboard */,
15F0B8912822455B008A300E /* HomeViewController.swift */,
);
path = Home;
sourceTree = "<group>";
Expand Down Expand Up @@ -173,6 +192,7 @@
children = (
15963F782800AAE5003C7A14 /* Base */,
15963F6A2800A29E003C7A14 /* Components */,
15F0B89328224A34008A300E /* CommonCells */,
15963F5528009FFD003C7A14 /* Scenes */,
);
path = Presentation;
Expand Down Expand Up @@ -298,6 +318,34 @@
path = Main;
sourceTree = "<group>";
};
15F0B89328224A34008A300E /* CommonCells */ = {
isa = PBXGroup;
children = (
15F0B89428224A66008A300E /* StoryCollectionViewCell.swift */,
15F0B89528224A66008A300E /* StoryCollectionViewCell.xib */,
15F0B8A1282388B9008A300E /* FeedCollectionViewCell.swift */,
15F0B8A2282388B9008A300E /* FeedCollectionViewCell.xib */,
);
path = CommonCells;
sourceTree = "<group>";
};
15F0B89828224CFE008A300E /* Extensions */ = {
isa = PBXGroup;
children = (
15F0B89928224D16008A300E /* HomeViewController+CollectionView.swift */,
);
path = Extensions;
sourceTree = "<group>";
};
15F0B89C282382B6008A300E /* Models */ = {
isa = PBXGroup;
children = (
15F0B89D282382D0008A300E /* User.swift */,
15F0B89F282382D5008A300E /* Feed.swift */,
);
path = Models;
sourceTree = "<group>";
};
35A398614AFD2EECA4B32C8D /* Pods */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -380,12 +428,14 @@
15963F5D2800A0A0003C7A14 /* Signin.storyboard in Resources */,
15963F4227FF634D003C7A14 /* LaunchScreen.storyboard in Resources */,
15963F3F27FF634D003C7A14 /* Assets.xcassets in Resources */,
15F0B8A4282388B9008A300E /* FeedCollectionViewCell.xib in Resources */,
15963F702800A703003C7A14 /* .swiftlint.yml in Resources */,
1521D07F2811C2D600A9C29B /* Shop.storyboard in Resources */,
1521D0812811C2DD00A9C29B /* My.storyboard in Resources */,
1521D07B2811C2CC00A9C29B /* Search.storyboard in Resources */,
15963F612800A0BA003C7A14 /* AuthComplete.storyboard in Resources */,
15963F5F2800A0AA003C7A14 /* Signup.storyboard in Resources */,
15F0B89728224A66008A300E /* StoryCollectionViewCell.xib in Resources */,
15963F3D27FF634A003C7A14 /* Main.storyboard in Resources */,
1521D0792811C2C600A9C29B /* Home.storyboard in Resources */,
);
Expand Down Expand Up @@ -457,13 +507,18 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
15F0B89628224A66008A300E /* StoryCollectionViewCell.swift in Sources */,
15963F632800A0C9003C7A14 /* AuthCompleteViewController.swift in Sources */,
15F0B8A3282388B9008A300E /* FeedCollectionViewCell.swift in Sources */,
15963F6E2800A65D003C7A14 /* InstagramTextField.swift in Sources */,
15F0B8922822455B008A300E /* HomeViewController.swift in Sources */,
1521D083281280C700A9C29B /* MainTabBarController.swift in Sources */,
15963F582800A06F003C7A14 /* SigninViewController.swift in Sources */,
15963F7F2800B05A003C7A14 /* ViewController.swift in Sources */,
15F0B89A28224D16008A300E /* HomeViewController+CollectionView.swift in Sources */,
15963F7D2800AFC2003C7A14 /* Storyboard.swift in Sources */,
15858D562800B7BD00332653 /* InstagramSubtitleLabel.swift in Sources */,
15F0B89E282382D0008A300E /* User.swift in Sources */,
15963F3627FF634A003C7A14 /* AppDelegate.swift in Sources */,
15963F7A2800AAF9003C7A14 /* BaseViewController.swift in Sources */,
15963F3827FF634A003C7A14 /* SceneDelegate.swift in Sources */,
Expand All @@ -473,6 +528,7 @@
15963F672800A0E2003C7A14 /* SignupPasswordViewController.swift in Sources */,
15963F772800A8F4003C7A14 /* Image.swift in Sources */,
15858D972802B5CC00332653 /* AuthProtocol.swift in Sources */,
15F0B8A0282382D5008A300E /* Feed.swift in Sources */,
15963F752800A8CD003C7A14 /* Const.swift in Sources */,
15858D952802A04200332653 /* UITextField+.swift in Sources */,
);
Expand Down
23 changes: 23 additions & 0 deletions Instagram-Clone/Instagram-Clone/Application/Constants/Image.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,28 @@ extension Const {
static let imgLogo = UIImage(named: "imgLogo")!
static let passwordHiddenEyeIcon = UIImage(named: "password hidden eye icon")!
static let passwordShownEyeIcon = UIImage(named: "password shown eye icon")!

// 3차과제
static let avatar1 = UIImage(named: "avatar1")!
static let avatar2 = UIImage(named: "avatar2")!
static let avatar3 = UIImage(named: "avatar3")!
static let avatar4 = UIImage(named: "avatar4")!
static let avatar5 = UIImage(named: "avatar5")!
static let avatar6 = UIImage(named: "avatar6")!

static let icnAdd = UIImage(named: "icn_add")!
static let icnBookmark = UIImage(named: "icn_bookmark")!
static let icnComment = UIImage(named: "icn_comment")!
static let icnLike = UIImage(named: "icn_like")!
static let icnMore = UIImage(named: "icn_more")!
static let icnShare = UIImage(named: "icn_share")!
static let icnUnlike = UIImage(named: "icn_unlike")!

static let logoInstagramSmall = UIImage(named: "logo_instagram_small")!

static let postImage1 = UIImage(named: "postImage1")!
static let postImage2 = UIImage(named: "postImage2")!
static let postImage3 = UIImage(named: "postImage3")!
static let postImage4 = UIImage(named: "postImage4")!
}
}
2 changes: 1 addition & 1 deletion Instagram-Clone/Instagram-Clone/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>Signin</string>
<string>Main</string>
</dict>
</array>
</dict>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
//
// FeedCollectionViewCell.swift
// Instagram-Clone
//
// Created by 김혜수 on 2022/05/05.
//

import UIKit

final class FeedCollectionViewCell: UICollectionViewCell {

static let identifier = "FeedCollectionViewCell"

var isLiked: Bool = false
var likeCount: Int? {
didSet {
likeCountLabel.text = "좋아요 \(likeCount ?? 0)"
}
}

@IBOutlet weak var profileImageView: UIImageView!
@IBOutlet weak var userIdLabel: UILabel!
@IBOutlet weak var feedImageView: UIImageView!
@IBOutlet weak var likeCountLabel: UILabel!
@IBOutlet weak var feedUserIdButton: UIButton!
@IBOutlet weak var feedContentsLabel: UILabel!
@IBOutlet weak var commentCountButton: UIButton!
@IBOutlet weak var likeButton: UIButton!

override func awakeFromNib() {
super.awakeFromNib()
}

func setData(feed: Feed) {
profileImageView.image = feed.user.userImage
userIdLabel.text = feed.user.userId
feedImageView.image = feed.feedImage
likeCount = feed.likeCount
feedUserIdButton.setTitle(feed.user.userId, for: .normal)
feedUserIdButton.sizeToFit()
feedContentsLabel.text = feed.user.userId + " " + feed.contents
let attributedStr = NSMutableAttributedString(string: feedContentsLabel.text!)
attributedStr.addAttribute(.foregroundColor, value: UIColor.clear, range: (feedContentsLabel.text! as NSString).range(of: feed.user.userId))
feedContentsLabel.attributedText = attributedStr
commentCountButton.setTitle("댓글 \(feed.commentCount)개 모두보기", for: .normal)
}

@IBAction func likeButtonDidTap(_ sender: Any) {
isLiked.toggle()
likeButton.setImage(isLiked ? Const.Image.icnLike : Const.Image.icnUnlike, for: .normal)
likeCount = isLiked ? (likeCount ?? 0) + 1 : (likeCount ?? 0) - 1
}
}
Loading

0 comments on commit fad2e1e

Please sign in to comment.