Skip to content

Commit

Permalink
feat: init customNaviBar (TeamNADA#371)
Browse files Browse the repository at this point in the history
  • Loading branch information
dlwns33 committed Feb 28, 2023
1 parent f3a569c commit 3e86c94
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 2 deletions.
24 changes: 22 additions & 2 deletions NADA-iOS-forRelease.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@
7781294A275F6ED7004B34F4 /* CardDetail.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 77812949275F6ED7004B34F4 /* CardDetail.storyboard */; };
77A4D5EB29AE20CB00367B7C /* makeVibrate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A4D5EA29AE20CB00367B7C /* makeVibrate.swift */; };
77A4D5EF29AE269B00367B7C /* AroundMeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A4D5EE29AE269B00367B7C /* AroundMeViewController.swift */; };
77A4D5F429AE291F00367B7C /* CustomNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A4D5F329AE291F00367B7C /* CustomNavigationBar.swift */; };
77AA68EA273E0EC4009C89B0 /* CardAddInGroupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */; };
77B4E7482990E420006098DC /* Home.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 77B4E7472990E420006098DC /* Home.storyboard */; };
77B4E74B2990E50E006098DC /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77B4E74A2990E50E006098DC /* HomeViewController.swift */; };
Expand Down Expand Up @@ -307,6 +308,7 @@
77812949275F6ED7004B34F4 /* CardDetail.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = CardDetail.storyboard; sourceTree = "<group>"; };
77A4D5EA29AE20CB00367B7C /* makeVibrate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = makeVibrate.swift; sourceTree = "<group>"; };
77A4D5EE29AE269B00367B7C /* AroundMeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AroundMeViewController.swift; sourceTree = "<group>"; };
77A4D5F329AE291F00367B7C /* CustomNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomNavigationBar.swift; sourceTree = "<group>"; };
77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardAddInGroupRequest.swift; sourceTree = "<group>"; };
77B4E7422990E00B006098DC /* Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
77B4E7432990E015006098DC /* Beta.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Beta.xcconfig; sourceTree = "<group>"; };
Expand Down Expand Up @@ -748,6 +750,23 @@
path = VC;
sourceTree = "<group>";
};
77A4D5F129AE28EA00367B7C /* CardView */ = {
isa = PBXGroup;
children = (
7705CF3D2752C7DB005195DF /* CardView.swift */,
7705CF3F2752C844005195DF /* CardView.xib */,
);
path = CardView;
sourceTree = "<group>";
};
77A4D5F229AE28F200367B7C /* CustomNavigationBar */ = {
isa = PBXGroup;
children = (
77A4D5F329AE291F00367B7C /* CustomNavigationBar.swift */,
);
path = CustomNavigationBar;
sourceTree = "<group>";
};
77B4E7462990E415006098DC /* Home */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1164,8 +1183,8 @@
F8FC43A126C01F1F0033E151 /* Views */ = {
isa = PBXGroup;
children = (
7705CF3D2752C7DB005195DF /* CardView.swift */,
7705CF3F2752C844005195DF /* CardView.xib */,
77A4D5F229AE28F200367B7C /* CustomNavigationBar */,
77A4D5F129AE28EA00367B7C /* CardView */,
);
path = Views;
sourceTree = "<group>";
Expand Down Expand Up @@ -1564,6 +1583,7 @@
394F314C27081B3A00C83291 /* FrontViewController.swift in Sources */,
777FF89D2735B16B00BF69D3 /* GroupAddRequest.swift in Sources */,
7734D5AA27719520004360E4 /* CardShareBottomSheetViewController.swift in Sources */,
77A4D5F429AE291F00367B7C /* CustomNavigationBar.swift in Sources */,
F8F5D0AA270800FD00D99D2E /* Xib.swift in Sources */,
F82FF8252702000000E57F8B /* RequiredFlavorCollectionViewCell.swift in Sources */,
F8C83FC7272FA2A20009DF0D /* CardService.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
//
// CustomNavigationBar.swift
// NADA-iOS-forRelease
//
// Created by Yi Joon Choi on 2023/02/28.
//

import SnapKit
import Then
import UIKit

/*
공통으로 사용할 수 있도록 만들어둔 네비게이션 바 입니다.
1) CustomNavigationBar에는 공통으로 필요한 요소들을 구현해둔 상태에요.
2) 해당 ViewController로 가서 CustomNavigationBar를 상속받은 UIView 생성 (ex: navigationBar)
3) navigationBar.leftButtonAction = { 왼쪽버튼을 누르면 해야할 것 } 을 추가해요.
4) navigationBar.rightButtonAction = { 오른쪽버튼을 누르면 해야할 것 } 을 추가해요.
5) func iconImage(leftImage: UIImage, rightImage: UIImage) 함수를 이용하여 왼쪽 아이템과 오른쪽 아이템을 바꿔주세요.
*/

class CustomNavigationBar: UIView {

// MARK: - Properties

var leftButtonAction: (() -> Void)?
var rightButtonAction: (() -> Void)?

// MARK: - UI Components

private let titleLabel = UILabel().then {
$0.textColor = .primary
$0.font = .title02
$0.sizeToFit()
}
private lazy var leftButton = UIButton().then {
$0.addTarget(self, action: #selector(touchLeftButton(_:)), for: .touchUpInside)
}
private lazy var rightButton = UIButton().then {
$0.addTarget(self, action: #selector(touchRightButton(_:)), for: .touchUpInside)
}

// MARK: - Initialize

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

required init?(coder: NSCoder) {
super.init(coder: coder)
}

// MARK: - UI & Layout

func setUI(_ title: String?, leftImage: UIImage?, rightImage: UIImage?) {
titleLabel.text = title
leftButton.setImage(leftImage?.withRenderingMode(.alwaysTemplate), for: .normal)
rightButton.setImage(rightImage?.withRenderingMode(.alwaysTemplate), for: .normal)
}

private func setLayout() {
addSubviews([leftButton, titleLabel, rightButton])

leftButton.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.leading.equalToSuperview().inset(25)
make.height.width.equalTo(24)
}
titleLabel.snp.makeConstraints { make in
make.center.equalToSuperview()
}
rightButton.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.trailing.equalToSuperview().inset(25)
make.height.width.equalTo(24)
}
}

// MARK: - @objc

@objc func touchLeftButton(_ sender: UIButton) {
leftButtonAction?()
}

@objc func touchRightButton(_ sender: UIButton) {
rightButtonAction?()
}
}

0 comments on commit 3e86c94

Please sign in to comment.