From 883fdb0eed5c57066a37e9b226aad22c4b152f12 Mon Sep 17 00:00:00 2001 From: ahra1221 Date: Sun, 21 May 2023 06:53:45 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[Feat]=20#12=20ProfileDetail=20=EB=8D=94?= =?UTF-8?q?=EB=AF=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SOPKATHON-11-iOS/Data/ProfileDetail.swift | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 SOPKATHON-11-iOS/SOPKATHON-11-iOS/Data/ProfileDetail.swift diff --git a/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Data/ProfileDetail.swift b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Data/ProfileDetail.swift new file mode 100644 index 0000000..37cb82c --- /dev/null +++ b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Data/ProfileDetail.swift @@ -0,0 +1,27 @@ +// +// ProfileDetail.swift +// SOPKATHON-11-iOS +// +// Created by 고아라 on 2023/05/21. +// + +import UIKit + +struct ProfileDetail { + let name: String + //let profileImage: String + let age: Int + let local: String + let isMarried: Bool + let hasChild: Bool + let hobby: [String] + let keyword: [String] +} + +extension ProfileDetail { + static func profileDummy() -> [ProfileDetail] { + return [ + ProfileDetail(name: "고아라", age: 2001, local: "서울", isMarried: true, hasChild: true, hobby: ["스쿼시"], keyword: ["매력적인"]) + ] + } +} From 8001cfc32aeffe22f7672996e7f92fe5a64f9984 Mon Sep 17 00:00:00 2001 From: ahra1221 Date: Sun, 21 May 2023 06:54:15 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[Feat]=20#12=20=ED=95=84=EC=9A=94=EC=97=86?= =?UTF-8?q?=EC=96=B4=EC=A7=84=20=ED=85=8C=EC=9D=B4=EB=B8=94=EB=B7=B0?= =?UTF-8?q?=EC=85=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProfileDetailTableViewCell.swift | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailTableViewCell.swift diff --git a/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailTableViewCell.swift b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailTableViewCell.swift new file mode 100644 index 0000000..1cc7b82 --- /dev/null +++ b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailTableViewCell.swift @@ -0,0 +1,78 @@ +// +// ProfileDetailTableViewCell.swift +// SOPKATHON-11-iOS +// +// Created by 고아라 on 2023/05/21. +// + +import UIKit + +import SnapKit +import Then + +class ProfileDetailTableViewCell: UITableViewCell { + + static let identifier = "ProfileDetailTableViewCell" + + let profileDetailTitle = UILabel() + lazy var profileDetailText = UILabel() + let profileDetailLine = UIView() + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + // MARK: - 컴포넌트 설정 + setUI() + + // MARK: - addsubView + setHierarchy() + + // MARK: - autolayout설정 + setLayout() + + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + +extension ProfileDetailTableViewCell { + func setUI() { + profileDetailTitle.do { + $0.text = "지역" + $0.font = .systemFont(ofSize: 16) + } + + profileDetailText.do { + $0.font = .systemFont(ofSize: 17) + $0.textColor = UIColor.gray + } + + profileDetailLine.do { + $0.backgroundColor = UIColor.gray + } + } + + func setHierarchy() { + contentView.addSubviews(profileDetailTitle, profileDetailText, profileDetailLine) + } + + func setLayout() { + profileDetailTitle.snp.makeConstraints { + $0.top.equalToSuperview() + $0.leading.equalTo(46) + } + + profileDetailText.snp.makeConstraints { + $0.top.equalTo(profileDetailTitle.snp.bottom).offset(13) + $0.leading.equalTo(46) + } + profileDetailLine.snp.makeConstraints { + $0.top.equalTo(profileDetailTitle.snp.bottom).inset(2) + $0.width.equalTo(297) + } + } + +} From c87d3611c160fd860182306b91b9ad440b306074 Mon Sep 17 00:00:00 2001 From: ahra1221 Date: Sun, 21 May 2023 06:54:53 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[Feat]=20#12=20ProfileDetail=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project.pbxproj | 48 +++- .../Application/SceneDelegate.swift | 2 +- .../ProfileDetail/ProfileDetailView.swift | 267 ++++++++++++++++++ .../ProfileDetailViewController.swift | 28 ++ 4 files changed, 336 insertions(+), 9 deletions(-) create mode 100644 SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailView.swift create mode 100644 SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/ViewController/ProfileDetail/ProfileDetailViewController.swift diff --git a/SOPKATHON-11-iOS/SOPKATHON-11-iOS.xcodeproj/project.pbxproj b/SOPKATHON-11-iOS/SOPKATHON-11-iOS.xcodeproj/project.pbxproj index 623ae84..729cb07 100644 --- a/SOPKATHON-11-iOS/SOPKATHON-11-iOS.xcodeproj/project.pbxproj +++ b/SOPKATHON-11-iOS/SOPKATHON-11-iOS.xcodeproj/project.pbxproj @@ -29,11 +29,11 @@ 25491B5D2A18FAF500B16FA8 /* e.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25491B5C2A18FAF500B16FA8 /* e.swift */; }; 25491B5F2A18FAFE00B16FA8 /* f.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25491B5E2A18FAFE00B16FA8 /* f.swift */; }; 25491B612A18FB0800B16FA8 /* g.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25491B602A18FB0800B16FA8 /* g.swift */; }; - 25491B632A18FB0C00B16FA8 /* h.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25491B622A18FB0C00B16FA8 /* h.swift */; }; - - 25491B652A19171B00B16FA8 /* TabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25491B642A19171B00B16FA8 /* TabBarViewController.swift */; }; - + A45E93BF2A192FAE0062E313 /* ProfileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45E93BE2A192FAE0062E313 /* ProfileDetailView.swift */; }; + A45E93C22A1935380062E313 /* ProfileDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45E93C12A1935380062E313 /* ProfileDetail.swift */; }; + A45E93C42A1939B40062E313 /* ProfileDetailTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45E93C32A1939B40062E313 /* ProfileDetailTableViewCell.swift */; }; + A45E93C72A1940510062E313 /* ProfileDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A45E93C62A1940510062E313 /* ProfileDetailViewController.swift */; }; A4D7272B2A190F3D00A00E16 /* NavigationBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4D7272A2A190F3D00A00E16 /* NavigationBarView.swift */; }; A4D7272F2A1916CB00A00E16 /* NavigationBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4D7272E2A1916CB00A00E16 /* NavigationBarViewController.swift */; }; /* End PBXBuildFile section */ @@ -59,8 +59,11 @@ 25491B5C2A18FAF500B16FA8 /* e.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = e.swift; sourceTree = ""; }; 25491B5E2A18FAFE00B16FA8 /* f.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = f.swift; sourceTree = ""; }; 25491B602A18FB0800B16FA8 /* g.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = g.swift; sourceTree = ""; }; - 25491B622A18FB0C00B16FA8 /* h.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = h.swift; sourceTree = ""; }; 25491B642A19171B00B16FA8 /* TabBarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarViewController.swift; sourceTree = ""; }; + A45E93BE2A192FAE0062E313 /* ProfileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileDetailView.swift; sourceTree = ""; }; + A45E93C12A1935380062E313 /* ProfileDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileDetail.swift; sourceTree = ""; }; + A45E93C32A1939B40062E313 /* ProfileDetailTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileDetailTableViewCell.swift; sourceTree = ""; }; + A45E93C62A1940510062E313 /* ProfileDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileDetailViewController.swift; sourceTree = ""; }; A4D7272A2A190F3D00A00E16 /* NavigationBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationBarView.swift; sourceTree = ""; }; A4D7272E2A1916CB00A00E16 /* NavigationBarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationBarViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -99,6 +102,7 @@ 251DD5722A1520C6005951B8 /* SOPKATHON-11-iOS */ = { isa = PBXGroup; children = ( + A45E93C02A1935290062E313 /* Data */, 251DD58A2A15213D005951B8 /* Application */, 251DD5892A15213A005951B8 /* Network */, 251DD5872A152122005951B8 /* Global */, @@ -154,6 +158,7 @@ 251DD58C2A1521F5005951B8 /* ViewController */ = { isa = PBXGroup; children = ( + A45E93C52A1940390062E313 /* ProfileDetail */, A4D727302A19173500A00E16 /* NavigationBar */, 25491B6B2A1920E700B16FA8 /* MatchingList */, 25491B6A2A19177600B16FA8 /* TabBar */, @@ -165,8 +170,8 @@ 251DD58D2A1521FA005951B8 /* View */ = { isa = PBXGroup; children = ( + A45E93BD2A192F970062E313 /* ProfileDetail */, A4D727292A190C0500A00E16 /* NavigationBar */, - 25491B622A18FB0C00B16FA8 /* h.swift */, ); path = View; sourceTree = ""; @@ -268,7 +273,31 @@ children = ( ); path = MatchingList; - + sourceTree = ""; + }; + A45E93BD2A192F970062E313 /* ProfileDetail */ = { + isa = PBXGroup; + children = ( + A45E93BE2A192FAE0062E313 /* ProfileDetailView.swift */, + A45E93C32A1939B40062E313 /* ProfileDetailTableViewCell.swift */, + ); + path = ProfileDetail; + sourceTree = ""; + }; + A45E93C02A1935290062E313 /* Data */ = { + isa = PBXGroup; + children = ( + A45E93C12A1935380062E313 /* ProfileDetail.swift */, + ); + path = Data; + sourceTree = ""; + }; + A45E93C52A1940390062E313 /* ProfileDetail */ = { + isa = PBXGroup; + children = ( + A45E93C62A1940510062E313 /* ProfileDetailViewController.swift */, + ); + path = ProfileDetail; sourceTree = ""; }; A4D727292A190C0500A00E16 /* NavigationBar */ = { @@ -371,11 +400,13 @@ 25491B572A18FAE600B16FA8 /* b.swift in Sources */, 251DD5A22A152393005951B8 /* UIViewController+Extension.swift in Sources */, 251DD5782A1520C6005951B8 /* ViewController.swift in Sources */, + A45E93BF2A192FAE0062E313 /* ProfileDetailView.swift in Sources */, + A45E93C42A1939B40062E313 /* ProfileDetailTableViewCell.swift in Sources */, + A45E93C72A1940510062E313 /* ProfileDetailViewController.swift in Sources */, 251DD5A62A15249C005951B8 /* UILabel+Extension.swift in Sources */, A4D7272F2A1916CB00A00E16 /* NavigationBarViewController.swift in Sources */, 251DD5AA2A1525EC005951B8 /* UIImageView+Extention.swift in Sources */, 25491B612A18FB0800B16FA8 /* g.swift in Sources */, - 25491B632A18FB0C00B16FA8 /* h.swift in Sources */, 251DD5742A1520C6005951B8 /* AppDelegate.swift in Sources */, 25491B5B2A18FAF100B16FA8 /* d.swift in Sources */, 251DD5AF2A152714005951B8 /* BaseViewController.swift in Sources */, @@ -388,6 +419,7 @@ 251DD5B12A152725005951B8 /* BaseView.swift in Sources */, 25491B5D2A18FAF500B16FA8 /* e.swift in Sources */, 251DD5A42A1523C3005951B8 /* UIView+Extension .swift in Sources */, + A45E93C22A1935380062E313 /* ProfileDetail.swift in Sources */, 251DD5A82A1525AD005951B8 /* NetworkResult.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Application/SceneDelegate.swift b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Application/SceneDelegate.swift index 1e698c1..8836684 100644 --- a/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Application/SceneDelegate.swift +++ b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Application/SceneDelegate.swift @@ -14,7 +14,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } - let navigationController = UINavigationController(rootViewController: TabBarViewController()) + let navigationController = UINavigationController(rootViewController: ProfileDetailViewController()) self.window = UIWindow(windowScene: windowScene) diff --git a/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailView.swift b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailView.swift new file mode 100644 index 0000000..9ef621a --- /dev/null +++ b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailView.swift @@ -0,0 +1,267 @@ +// +// ProfileDetailView.swift +// SOPKATHON-11-iOS +// +// Created by 고아라 on 2023/05/21. +// + +import UIKit + +import SnapKit +import Then + +class ProfileDetailView: UIView { + + private let model : [ProfileDetail] = ProfileDetail.profileDummy() + + private let navigationBar = NavigationBarView() + private let scrollView = UIScrollView() + private let contentView = UIView() + + private let profileImage = UIImageView() + private let profileView = UIView() + private let profileName = UILabel() + private let lineView = UIView() + private let profileAge = UILabel() + + private let profileMatchButton = UIButton() + //let profileInfoTableView = UITableView() + + private let profileInfoLabel = UILabel() + private let profileRegionTitle = UILabel() + private let profileRegionText = UILabel() + private let profileChildTitle = UILabel() + private let profileChildText = UILabel() + private let profileSingleTitle = UILabel() + private let profileSingleText = UILabel() + private let profileHobbyTitle = UILabel() + private let profilePersonalityTitle = UILabel() + private let profilePersonalityText = UILabel() + + private let lineView2 = UIView() + + override init(frame: CGRect) { + super.init(frame: frame) + + // MARK: - 컴포넌트 설정 + setUI() + + // MARK: - addsubView + setHierarchy() + + // MARK: - autolayout설정 + setLayout() + + setDelegate() + + + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + +extension ProfileDetailView { + func setUI() { + backgroundColor = .white + + navigationBar.do { + $0.backgroundColor = .white + $0.setTitleBind(title: "천성우님의 프로필이에유") + } + profileImage.do { + $0.image = UIImage(systemName: "house") + } + + profileView.do { + $0.backgroundColor = UIColor.white + } + + profileName.do { + $0.text = model[0].name + $0.font = .boldSystemFont(ofSize: 28) + } + + profileAge.do { + $0.text = String(model[0].age) + "년생" + $0.font = .systemFont(ofSize: 28) + } + + lineView.do { + $0.backgroundColor = .gray + } + + profileMatchButton.do { + $0.setImage(UIImage(systemName: "heart"), for: .normal) + $0.setTitle("선택", for: .normal) + $0.setTitleColor(.black, for: .normal) + $0.titleLabel?.font = .systemFont(ofSize: 24) + $0.layer.cornerRadius = 24 + $0.setBorder(color: .systemPink, andWidth: 2) + } + + profileInfoLabel.do { + $0.text = "프로필 정보" + $0.font = .boldSystemFont(ofSize: 20) + } + + profileRegionTitle.do { + $0.text = "지역" + $0.font = .systemFont(ofSize: 18) + } + + profileRegionText.do { + $0.text = model[0].local + $0.font = .systemFont(ofSize: 18) + } + + profileChildTitle.do { + $0.text = "자녀" + $0.font = .systemFont(ofSize: 18) + } + + profileChildText.do { + $0.text = model[0].hasChild ? "해당 있음" : "해당 없음" + $0.font = .systemFont(ofSize: 18) + } + + profileSingleTitle.do { + $0.text = "돌싱 여부" + $0.font = .systemFont(ofSize: 18) + } + + profileSingleText.do { + $0.text = model[0].isMarried ? "있슈" : "없슈" + $0.font = .systemFont(ofSize: 18) + } + + lineView2.do { + $0.backgroundColor = .lightGray + } + + } + + func setHierarchy() { + + addSubviews(navigationBar, scrollView) + + scrollView.addSubview(contentView) + + [profileImage, profileView, profileName, lineView, profileAge, profileMatchButton, profileInfoLabel, profileRegionTitle, profileRegionText, profileChildTitle, profileChildText, profileSingleTitle, profileSingleText, lineView2,profileHobbyTitle].forEach { + contentView.addSubview($0) + } + + } + + func setLayout() { + navigationBar.snp.makeConstraints { + $0.top.equalTo(safeAreaLayoutGuide) + $0.horizontalEdges.equalToSuperview() + $0.height.equalTo(44) + } + + scrollView.snp.makeConstraints { + $0.top.equalTo(navigationBar.snp.bottom) + $0.horizontalEdges.bottom.equalToSuperview() + } + + contentView.snp.makeConstraints { + $0.edges.equalTo(scrollView.contentLayoutGuide) + $0.width.equalTo(scrollView.frameLayoutGuide) + $0.height.equalTo(1200) + } + + profileImage.snp.makeConstraints { + $0.top.equalTo(navigationBar.snp.bottom) + $0.leading.trailing.equalToSuperview() + $0.width.equalTo(375) + $0.height.equalTo(355) + } + + profileView.snp.makeConstraints { + $0.top.equalTo(profileImage.snp.bottom).offset(-20) + $0.leading.trailing.equalToSuperview() + $0.width.equalToSuperview() + $0.height.equalTo(600) + } + + profileName.snp.makeConstraints { + $0.top.equalTo(profileView.snp.top).offset(27) + $0.leading.equalToSuperview().inset(87) + } + + lineView.snp.makeConstraints { + $0.top.equalTo(profileView.snp.top).offset(29) + $0.leading.equalTo(profileName.snp.trailing).offset(8) + $0.width.equalTo(1) + $0.height.equalTo(30) + } + + profileAge.snp.makeConstraints { + $0.top.equalTo(profileView.snp.top).offset(27) + $0.trailing.equalToSuperview().inset(86) + } + + profileMatchButton.snp.makeConstraints { + $0.centerX.equalToSuperview() + $0.top.equalTo(profileName.snp.bottom).offset(20) + $0.width.equalTo(120) + $0.height.equalTo(50) + } + + profileInfoLabel.snp.makeConstraints { + $0.top.equalTo(profileMatchButton.snp.bottom).offset(26) + $0.leading.equalToSuperview().inset(24) + } + + profileRegionTitle.snp.makeConstraints { + $0.top.equalTo(profileInfoLabel.snp.bottom).offset(23) + $0.leading.equalToSuperview().inset(24) + } + + profileRegionText.snp.makeConstraints { + $0.top.equalTo(profileInfoLabel.snp.bottom).offset(23) + $0.leading.equalTo(profileRegionTitle.snp.trailing).offset(72) + } + + profileChildTitle.snp.makeConstraints { + $0.top.equalTo(profileRegionTitle.snp.bottom).offset(11) + $0.leading.equalToSuperview().inset(24) + } + + profileChildText.snp.makeConstraints { + $0.top.equalTo(profileRegionTitle.snp.bottom).offset(11) + $0.leading.equalTo(profileChildTitle.snp.trailing).offset(72) + } + + profileSingleTitle.snp.makeConstraints { + $0.top.equalTo(profileChildTitle.snp.bottom).offset(11) + $0.leading.equalToSuperview().inset(24) + } + + profileSingleText.snp.makeConstraints { + $0.top.equalTo(profileChildTitle.snp.bottom).offset(11) + $0.leading.equalTo(profileChildTitle.snp.trailing).offset(72) + } + + lineView2.snp.makeConstraints { + $0.top.equalTo(profileSingleTitle.snp.top).offset(50) + $0.leading.trailing.equalToSuperview() + $0.height.equalTo(4) + } + + profileHobbyTitle.snp.makeConstraints { + $0.bottom.equalToSuperview().inset(10) + $0.leading.equalToSuperview().inset(24) + } + + } + + func setDelegate() { + + + } +} diff --git a/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/ViewController/ProfileDetail/ProfileDetailViewController.swift b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/ViewController/ProfileDetail/ProfileDetailViewController.swift new file mode 100644 index 0000000..380c492 --- /dev/null +++ b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/ViewController/ProfileDetail/ProfileDetailViewController.swift @@ -0,0 +1,28 @@ +// +// ProfileDetailViewController.swift +// SOPKATHON-11-iOS +// +// Created by 고아라 on 2023/05/21. +// + +import UIKit + +import Then +import SnapKit + +class ProfileDetailViewController: UIViewController { + + private let originView = ProfileDetailView() + + override func loadView() { + self.view = originView + } + + override func viewDidLoad() { + super.viewDidLoad() + + } + +} + + From 663fdb5e39178ae1bac4a57438e0c79240174de8 Mon Sep 17 00:00:00 2001 From: ahra1221 Date: Sun, 21 May 2023 07:39:29 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[Feat]#12=20=EC=8A=A4=ED=81=AC=EB=A1=A4?= =?UTF-8?q?=EB=B7=B0=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../View/ProfileDetail/ProfileDetailView.swift | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailView.swift b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailView.swift index 9ef621a..058b874 100644 --- a/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailView.swift +++ b/SOPKATHON-11-iOS/SOPKATHON-11-iOS/Presentation/View/ProfileDetail/ProfileDetailView.swift @@ -142,6 +142,10 @@ extension ProfileDetailView { $0.backgroundColor = .lightGray } + profileHobbyTitle.do { + $0.text = "취미" + } + } func setHierarchy() { @@ -165,17 +169,18 @@ extension ProfileDetailView { scrollView.snp.makeConstraints { $0.top.equalTo(navigationBar.snp.bottom) - $0.horizontalEdges.bottom.equalToSuperview() + $0.leading.trailing.bottom.equalToSuperview() } contentView.snp.makeConstraints { - $0.edges.equalTo(scrollView.contentLayoutGuide) - $0.width.equalTo(scrollView.frameLayoutGuide) - $0.height.equalTo(1200) + $0.top.equalTo(scrollView.snp.top) + // $0.edges.equalToSuperview() + $0.height.equalTo(1200) + $0.bottom.equalToSuperview().inset(10) } profileImage.snp.makeConstraints { - $0.top.equalTo(navigationBar.snp.bottom) + $0.top.equalTo(contentView.snp.top) $0.leading.trailing.equalToSuperview() $0.width.equalTo(375) $0.height.equalTo(355) @@ -254,7 +259,7 @@ extension ProfileDetailView { } profileHobbyTitle.snp.makeConstraints { - $0.bottom.equalToSuperview().inset(10) + $0.top.equalTo(lineView2.snp.bottom).offset(24) $0.leading.equalToSuperview().inset(24) }