Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat [#19] 나의 챌린지 뷰 UI 구현 #25

Merged
merged 23 commits into from
Jan 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
7c34cec
[Add/#19] Challenge - Add File
Zoe0929 Jan 5, 2024
8f94412
[Add/#19] Challenge - Add Support File
Zoe0929 Jan 5, 2024
2823de9
[Feat/#19] Challenge - AppModel
Zoe0929 Jan 5, 2024
c6ba8e7
[Feat/#19] Challenge - CollectionView Cell
Zoe0929 Jan 5, 2024
9db867c
[Feat/#19] Challenge - AppListCell
Zoe0929 Jan 6, 2024
2dce6ee
[Feat/#19] Challenge - Title Header
Zoe0929 Jan 6, 2024
530ad1f
[Feat/#19] Challenge - Applist Header
Zoe0929 Jan 6, 2024
c6755da
[Feat/#19] BackgroundView 생성
Zoe0929 Jan 6, 2024
0788685
[Feat/#19] Challenge - Layout
Zoe0929 Jan 6, 2024
fdd7010
[Feat/#19] Challenge - Header Layout
Zoe0929 Jan 6, 2024
71faf4f
[Fix/#19[ Challenge - Cell Style
Zoe0929 Jan 6, 2024
26d79e2
[Feat/#19] Challenge - navigationBar Animation
Zoe0929 Jan 6, 2024
3fd4e78
[Chore/#19] Challenge - StringLiteral
Zoe0929 Jan 6, 2024
bd4cb26
[Feat/#19] Challenge - AppModel 사용
Zoe0929 Jan 6, 2024
f572d97
[Chore/#19] Challenge - code convention
Zoe0929 Jan 6, 2024
a5206e2
[Feat/#19] Challenge - adjusted 적용
Zoe0929 Jan 6, 2024
53d585a
[Chore/#19] Challenge - adjusted 삭제
Zoe0929 Jan 6, 2024
da27812
[Chore/#19] Challenge - 오타 수정
Zoe0929 Jan 6, 2024
076ae59
[Chore/#19] Challenge - code Convention
Zoe0929 Jan 6, 2024
e030f5a
[Chore/#19] Challenge - import Package
Zoe0929 Jan 6, 2024
29a28b2
Merge branch 'develop' into feat/#19-challengeViewUI
Zoe0929 Jan 7, 2024
a6a1a40
[Fix/#19] 코드 리뷰 반영
Zoe0929 Jan 7, 2024
ec0d4ea
[Fix/#19] 코드리뷰 반영
Zoe0929 Jan 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 40 additions & 4 deletions HMH_iOS/HMH_iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
174AF4962B447CE700450D07 /* ChanllengeCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174AF4952B447CE700450D07 /* ChanllengeCells.swift */; };
174AF4982B447CF100450D07 /* ChanllengeModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174AF4972B447CF100450D07 /* ChanllengeModels.swift */; };
174AF49A2B447CFB00450D07 /* ChanllengeViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174AF4992B447CFB00450D07 /* ChanllengeViews.swift */; };
174AF49C2B447D0700450D07 /* ChanllengeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174AF49B2B447D0700450D07 /* ChanllengeViewController.swift */; };
174AF49C2B447D0700450D07 /* ChallengeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174AF49B2B447D0700450D07 /* ChallengeViewController.swift */; };
3666C84D2B45F41300564874 /* HMHAppSelectButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C84C2B45F41300564874 /* HMHAppSelectButtonView.swift */; };
3666C8552B45F47600564874 /* DeviceActivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3666C8542B45F47600564874 /* DeviceActivity.framework */; };
3666C8582B45F47600564874 /* DeviceActivityMonitorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C8572B45F47600564874 /* DeviceActivityMonitorExtension.swift */; };
Expand All @@ -53,6 +53,11 @@
3666C88B2B471B0D00564874 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C88A2B471B0D00564874 /* String.swift */; };
3666C88D2B471B1D00564874 /* UIImage+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C88C2B471B1D00564874 /* UIImage+.swift */; };
3666C88F2B471C5800564874 /* TabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C88E2B471C5800564874 /* TabBarController.swift */; };
3666C89B2B48516500564874 /* ChallengeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C89A2B48516500564874 /* ChallengeView.swift */; };
3666C89F2B485C8F00564874 /* DateCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C89E2B485C8F00564874 /* DateCollectionViewCell.swift */; };
3666C8A12B485CC800564874 /* TitleCollectionReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C8A02B485CC800564874 /* TitleCollectionReusableView.swift */; };
3666C8A32B4861A200564874 /* AppListCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C8A22B4861A200564874 /* AppListCollectionViewCell.swift */; };
3666C8A52B48644A00564874 /* AppModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3666C8A42B48644A00564874 /* AppModel.swift */; };
36A3D8942B3AB57B007EA272 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 36A3D8932B3AB57B007EA272 /* SnapKit */; };
36A3D8962B3AB57B007EA272 /* SnapKit-Dynamic in Frameworks */ = {isa = PBXBuildFile; productRef = 36A3D8952B3AB57B007EA272 /* SnapKit-Dynamic */; };
36A3D8992B3AB58A007EA272 /* Then in Frameworks */ = {isa = PBXBuildFile; productRef = 36A3D8982B3AB58A007EA272 /* Then */; };
Expand Down Expand Up @@ -84,6 +89,8 @@
36A3D9D02B409D35007EA272 /* Pretendard-ExtraLight.otf in Resources */ = {isa = PBXBuildFile; fileRef = 36A3D9C72B409D35007EA272 /* Pretendard-ExtraLight.otf */; };
36A3D9D12B409D35007EA272 /* Pretendard-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 36A3D9C82B409D35007EA272 /* Pretendard-Bold.otf */; };
36A3D9D22B409D35007EA272 /* Pretendard-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 36A3D9C92B409D35007EA272 /* Pretendard-Thin.otf */; };
36E05FE42B487911005B633E /* GrayBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36E05FE32B487911005B633E /* GrayBackgroundView.swift */; };
36E05FE62B48825A005B633E /* AppCollectionReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36E05FE52B48825A005B633E /* AppCollectionReusableView.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand Down Expand Up @@ -162,7 +169,7 @@
174AF4952B447CE700450D07 /* ChanllengeCells.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChanllengeCells.swift; sourceTree = "<group>"; };
174AF4972B447CF100450D07 /* ChanllengeModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChanllengeModels.swift; sourceTree = "<group>"; };
174AF4992B447CFB00450D07 /* ChanllengeViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChanllengeViews.swift; sourceTree = "<group>"; };
174AF49B2B447D0700450D07 /* ChanllengeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChanllengeViewController.swift; sourceTree = "<group>"; };
174AF49B2B447D0700450D07 /* ChallengeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeViewController.swift; sourceTree = "<group>"; };
3666C84C2B45F41300564874 /* HMHAppSelectButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HMHAppSelectButtonView.swift; sourceTree = "<group>"; };
3666C8522B45F47600564874 /* DeviceMonitor.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = DeviceMonitor.appex; sourceTree = BUILT_PRODUCTS_DIR; };
3666C8542B45F47600564874 /* DeviceActivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DeviceActivity.framework; path = System/Library/Frameworks/DeviceActivity.framework; sourceTree = SDKROOT; };
Expand All @@ -183,6 +190,11 @@
3666C88A2B471B0D00564874 /* String.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = String.swift; sourceTree = "<group>"; };
3666C88C2B471B1D00564874 /* UIImage+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+.swift"; sourceTree = "<group>"; };
3666C88E2B471C5800564874 /* TabBarController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarController.swift; sourceTree = "<group>"; };
3666C89A2B48516500564874 /* ChallengeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChallengeView.swift; sourceTree = "<group>"; };
3666C89E2B485C8F00564874 /* DateCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateCollectionViewCell.swift; sourceTree = "<group>"; };
3666C8A02B485CC800564874 /* TitleCollectionReusableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitleCollectionReusableView.swift; sourceTree = "<group>"; };
3666C8A22B4861A200564874 /* AppListCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppListCollectionViewCell.swift; sourceTree = "<group>"; };
3666C8A42B48644A00564874 /* AppModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppModel.swift; sourceTree = "<group>"; };
36A3D9B32B3EBBED007EA272 /* UIStackView+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIStackView+.swift"; sourceTree = "<group>"; };
36A3D9B52B3EBBF7007EA272 /* Adjust+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Adjust+.swift"; sourceTree = "<group>"; };
36A3D9B72B3EBC3B007EA272 /* UILabel+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UILabel+.swift"; sourceTree = "<group>"; };
Expand All @@ -199,6 +211,8 @@
36A3D9C72B409D35007EA272 /* Pretendard-ExtraLight.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-ExtraLight.otf"; sourceTree = "<group>"; };
36A3D9C82B409D35007EA272 /* Pretendard-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Bold.otf"; sourceTree = "<group>"; };
36A3D9C92B409D35007EA272 /* Pretendard-Thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Thin.otf"; sourceTree = "<group>"; };
36E05FE32B487911005B633E /* GrayBackgroundView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GrayBackgroundView.swift; sourceTree = "<group>"; };
36E05FE52B48825A005B633E /* AppCollectionReusableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCollectionReusableView.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -561,7 +575,7 @@
174AF4852B447AC500450D07 /* ViewControllers */ = {
isa = PBXGroup;
children = (
174AF49B2B447D0700450D07 /* ChanllengeViewController.swift */,
174AF49B2B447D0700450D07 /* ChallengeViewController.swift */,
);
path = ViewControllers;
sourceTree = "<group>";
Expand All @@ -570,6 +584,7 @@
isa = PBXGroup;
children = (
174AF4992B447CFB00450D07 /* ChanllengeViews.swift */,
3666C89A2B48516500564874 /* ChallengeView.swift */,
);
path = Views;
sourceTree = "<group>";
Expand All @@ -578,14 +593,18 @@
isa = PBXGroup;
children = (
174AF4972B447CF100450D07 /* ChanllengeModels.swift */,
3666C8A42B48644A00564874 /* AppModel.swift */,
);
path = Models;
sourceTree = "<group>";
};
174AF4882B447AE600450D07 /* Cells */ = {
isa = PBXGroup;
children = (
3666C89D2B485C6700564874 /* HeaderFooterView */,
174AF4952B447CE700450D07 /* ChanllengeCells.swift */,
3666C89E2B485C8F00564874 /* DateCollectionViewCell.swift */,
3666C8A22B4861A200564874 /* AppListCollectionViewCell.swift */,
);
path = Cells;
sourceTree = "<group>";
Expand Down Expand Up @@ -686,6 +705,16 @@
path = Views;
sourceTree = "<group>";
};
3666C89D2B485C6700564874 /* HeaderFooterView */ = {
isa = PBXGroup;
children = (
3666C8A02B485CC800564874 /* TitleCollectionReusableView.swift */,
36E05FE32B487911005B633E /* GrayBackgroundView.swift */,
36E05FE52B48825A005B633E /* AppCollectionReusableView.swift */,
);
path = HeaderFooterView;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
Expand Down Expand Up @@ -847,16 +876,20 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
3666C8A12B485CC800564874 /* TitleCollectionReusableView.swift in Sources */,
36E05FE42B487911005B633E /* GrayBackgroundView.swift in Sources */,
0B50F9CF2B369813000C5046 /* HomeViewController.swift in Sources */,
0B2C2D412B4572240023CCFA /* HMHSelectButton.swift in Sources */,
0B8A89BC2B369F2D00688BA6 /* UIView+.swift in Sources */,
0B8A89AF2B369E4300688BA6 /* HomeModel.swift in Sources */,
3666C89F2B485C8F00564874 /* DateCollectionViewCell.swift in Sources */,
3666C87A2B45F4F900564874 /* SelectedBlocker.swift in Sources */,
0BC0EBD42B494459003EF5D4 /* OnboardingSwipeView.swift in Sources */,
36A3D9C02B409CBD007EA272 /* Font.swift in Sources */,
174AF4902B447B3C00450D07 /* MyPageModels.swift in Sources */,
174AF4982B447CF100450D07 /* ChanllengeModels.swift in Sources */,
174AF48E2B447B1F00450D07 /* MyPageCells.swift in Sources */,
3666C8A52B48644A00564874 /* AppModel.swift in Sources */,
174AF4942B447B5500450D07 /* MyPageViewController.swift in Sources */,
36A3D9B82B3EBC3B007EA272 /* UILabel+.swift in Sources */,
0B50F9CB2B369813000C5046 /* AppDelegate.swift in Sources */,
Expand All @@ -868,12 +901,13 @@
0B2C2D3B2B443BE90023CCFA /* Image.swift in Sources */,
17314F852B497FDE0089A551 /* HMHLogoutAlert.swift in Sources */,
3666C84D2B45F41300564874 /* HMHAppSelectButtonView.swift in Sources */,
3666C8A32B4861A200564874 /* AppListCollectionViewCell.swift in Sources */,
0B8A89AD2B369E3B00688BA6 /* HomeCell.swift in Sources */,
3666C8882B47110800564874 /* SpecificTimePickerView.swift in Sources */,
174AF4922B447B4600450D07 /* MyPageViews.swift in Sources */,
36A3D9BE2B409BCC007EA272 /* Color.swift in Sources */,
0B8A89B52B369F0100688BA6 /* B.swift in Sources */,
174AF49C2B447D0700450D07 /* ChanllengeViewController.swift in Sources */,
174AF49C2B447D0700450D07 /* ChallengeViewController.swift in Sources */,
17314F892B49A8B60089A551 /* AlertDelegate.swift in Sources */,
0B8A89B12B369E4C00688BA6 /* HomeView.swift in Sources */,
36A3D9B62B3EBBF7007EA272 /* Adjust+.swift in Sources */,
Expand All @@ -887,7 +921,9 @@
17314F7F2B485E150089A551 /* CustomAlertButton.swift in Sources */,
36A3D9BA2B3EBC65007EA272 /* UIButton+.swift in Sources */,
3666C88F2B471C5800564874 /* TabBarController.swift in Sources */,
36E05FE62B48825A005B633E /* AppCollectionReusableView.swift in Sources */,
3666C88B2B471B0D00564874 /* String.swift in Sources */,
3666C89B2B48516500564874 /* ChallengeView.swift in Sources */,
3666C88D2B471B1D00564874 /* UIImage+.swift in Sources */,
3666C87C2B45F50F00564874 /* BlockingApplicationModel.swift in Sources */,
0B0035402B43D64D00DA140C /* HMHNavigationBar.swift in Sources */,
Expand Down
16 changes: 16 additions & 0 deletions HMH_iOS/HMH_iOS/Global/Literals/String/String.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,22 @@ enum StringLiteral {
static var myPageTitle = "마이페이지"
}

enum Challenge {
static var NavigationBarTitle = "나의 챌린지"
enum Date {
static var dateHeaderTitle = "3시간"
static var dateHeaderSubTitle = "목표 이용시간"
}
enum AppList {
static var appListHeaderTitle = "앱 잠금"
static var appListHeaderButtonText = "삭제"
}
enum Idetifier {
static var titleHeaderViewId = "TitleSectionHeader"
static var appListHeaderViewId = "AppSectionHeader"
static var backgroundViewId = "GrayBackground"
}
}
enum AlertButton {
static let confirm = "확인"
static let cancel = "취소"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
//
// AppListCollectionViewCell.swift
// HMH_iOS
//
// Created by 지희의 MAC on 1/6/24.
//

import UIKit

import SnapKit
import Then

final class AppListCollectionViewCell: UICollectionViewCell {

static let identifer = "AppListCollectionViewCell"

private let appImageView = UIImageView().then {
$0.backgroundColor = .blue
$0.makeCornerRound(radius: 8.adjusted)
}

private let appNameLabel = UILabel().then {
$0.textColor = .gray2
$0.font = .iosText6Medium14
}

private let timeLabel = UILabel().then {
$0.textColor = .whiteText
$0.font = .iosText4Semibold16
}

override init(frame: CGRect) {
super.init(frame: frame)
setUI()
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

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

private func setUI(){
setHierarchy()
setConstraints()
}

private func setHierarchy() {
contentView.addSubviews(appImageView, appNameLabel, timeLabel)
}

private func setConstraints() {
appImageView.snp.makeConstraints {
$0.size.equalTo(40.adjusted)
$0.leading.equalToSuperview().offset(17.adjustedWidth)
$0.centerY.equalToSuperview()
}

appNameLabel.snp.makeConstraints {
$0.leading.equalTo(appImageView.snp.trailing).offset(14.adjustedWidth)
$0.centerY.equalToSuperview()
}

timeLabel.snp.makeConstraints {
$0.trailing.equalToSuperview().inset(27.adjustedWidth)
$0.centerY.equalToSuperview()
}

}

func configureContentView() {
self.backgroundColor = .clear
contentView.backgroundColor = .gray7
contentView.makeCornerRound(radius: 6.adjusted)
}

func configureCell(appName: String, appIconImage: UIImage = UIImage(), appTime: String){
self.appNameLabel.text = appName
self.appImageView.image = appIconImage
self.timeLabel.text = appTime
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
//
// DateCollectionViewCell.swift
// HMH_iOS
//
// Created by 지희의 MAC on 1/6/24.
//

import UIKit

import SnapKit
import Then

class DateCollectionViewCell: UICollectionViewCell {

static let identifer = "DateCollectionViewCell"

private let dateLabel = UILabel().then {
$0.textColor = .gray2
$0.font = .iosText6Medium14
}

private let imageView = UIImageView().then {
$0.backgroundColor = .background
$0.makeCornerRound(radius: 8.adjusted)
}

override init(frame: CGRect) {
super.init(frame: frame)
setUI()
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func setUI(){
setHierarchy()
setConstraints()
}

private func setHierarchy() {
contentView.addSubviews(dateLabel, imageView)
}

private func setConstraints() {
dateLabel.snp.makeConstraints {
$0.top.equalToSuperview()
$0.centerX.equalToSuperview()
}

imageView.snp.makeConstraints {
$0.top.equalTo(dateLabel.snp.bottom).offset(6.adjustedHeight)
$0.centerX.equalToSuperview()
$0.size.equalTo(40.adjusted)
}
}

func configureCell(date: String, image: UIImage = UIImage()){
dateLabel.text = date
imageView.image = image
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
//
// AppCollectionReusableView.swift
// HMH_iOS
//
// Created by 지희의 MAC on 1/6/24.
//

import UIKit

import SnapKit
import Then

final class AppCollectionReusableView: UICollectionReusableView {

static let identifier = "AppCollectionReusableView"

private let titleLabel = UILabel().then {
$0.text = StringLiteral.Challenge.AppList.appListHeaderTitle
$0.font = .iosText5Medium16
$0.textColor = .gray1
$0.setTextWithLineHeight(text: $0.text, lineHeight: 24)
}

private let deleteButton = UIButton().then {
$0.setTitle(StringLiteral.Challenge.AppList.appListHeaderButtonText,
for: .normal)
$0.titleLabel?.font = .iosText4Semibold16
$0.setTitleColor(.bluePurpleText, for: .normal)
}

override init(frame: CGRect) {
super.init(frame: frame)
setUI()
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func setUI(){
setViewHierarchy()
setConstraints()
}

private func setViewHierarchy() {
self.addSubviews(titleLabel, deleteButton)
}

private func setConstraints() {
titleLabel.snp.makeConstraints {
$0.leading.equalToSuperview().offset(20.adjustedWidth)
$0.bottom.equalToSuperview().inset(17.adjustedHeight)
}

deleteButton.snp.makeConstraints {
$0.trailing.equalToSuperview().inset(20.adjustedWidth)
$0.centerY.equalTo(titleLabel.snp.centerY)
}
}
}
Loading