Skip to content

Commit

Permalink
[Design] Health-Food-Me#43 - 블로그 리뷰 UI 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
yungu0010 committed Jul 13, 2022
1 parent f4d1084 commit 58c36b1
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 14 deletions.
2 changes: 1 addition & 1 deletion HealthFoodMe/HealthFoodMe.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1503,7 +1503,7 @@
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.healthFoodMe.release;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = healthFood_dev;
PROVISIONING_PROFILE_SPECIFIER = HealthFoodMe_Dev;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,17 @@ import UIKit

class BlogReviewTabVC: UIViewController {

private var reviewHeaderView: UIView = {
let view = UIView()
view.backgroundColor = .mainGreen

return view
// MARK: - UI Components

// private var reviewHeaderView: UIView = {
// let view = UIView()
//
// return view
// }()

private let reviewSegmentControl: CustomSegmentControl = {
let sc = CustomSegmentControl(titleList: ["리뷰", "블로그 리뷰"])
return sc
}()

private lazy var blogReviewCV: UICollectionView = {
Expand All @@ -23,39 +29,125 @@ class BlogReviewTabVC: UIViewController {
layout.sectionInset = .zero

let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.backgroundColor = .helfmeWhite
cv.showsVerticalScrollIndicator = false

cv.backgroundColor = .mainRed

return cv
}()

// MARK: - View Life Cycle

override func viewDidLoad() {
super.viewDidLoad()

setDelegate()
setUI()
setLayout()
registerCell()
}
}

// MARK: - Extension

extension BlogReviewTabVC {
private func setDelegate() {

func setDelegate() {
blogReviewCV.delegate = self
blogReviewCV.dataSource = self
}

private func setUI() {
view.backgroundColor = .helfmeWhite
}

private func registerCell() {
BlogReviewCVC.register(target: blogReviewCV)
}

private func setLayout() {
view.addSubviews(reviewHeaderView, blogReviewCV)
view.addSubviews(reviewSegmentControl, blogReviewCV)

reviewHeaderView.snp.makeConstraints { make in
reviewSegmentControl.snp.makeConstraints { make in
make.top.equalTo(view.safeAreaLayoutGuide).inset(18)
make.centerX.equalToSuperview()
make.width.equalTo(226)
make.height.equalTo(40)
}

blogReviewCV.snp.makeConstraints { make in
make.top.equalTo(reviewHeaderView.snp.bottom)
make.top.equalTo(reviewSegmentControl.snp.bottom)
make.leading.trailing.equalToSuperview().inset(20)
make.bottom.equalToSuperview()
}
}
}

extension BlogReviewTabVC: UICollectionViewDelegate {

}

extension BlogReviewTabVC: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return BlogReviewDataModel.sampleData.count
// switch section{
// case 0:
// return 1
// case 1:
// return BlogReviewDataModel.sampleData.count
// default:
// return 0
// }
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: BlogReviewCVC.className, for: indexPath) as? BlogReviewCVC
else { return UICollectionViewCell() }

if indexPath.item == 0 {
cell.blogReviewSeperatorView.isHidden = true
} else {
cell.blogReviewSeperatorView.isHidden = false
}
cell.setData(blogReviewData: BlogReviewDataModel.sampleData[indexPath.row])
cell.setLayout()
return cell
// switch indexPath.section {
// case 0:
// let view = reviewSegmentControl
// return view
// case 1:
// guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: BlogReviewCVC.className, for: indexPath) as? BlogReviewCVC
// else { return UICollectionViewCell() }
//
// if indexPath.item == 0 {
// cell.blogReviewSeperatorView.isHidden = true
// } else {
// cell.blogReviewSeperatorView.isHidden = false
// }
// cell.setData(blogReviewData: BlogReviewDataModel.sampleData[indexPath.row])
// cell.setLayout()
// return cell
// default:
// return UICollectionViewCell()
// }

}

}

extension BlogReviewTabVC: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = UIScreen.main.bounds.width

let cellWidth = width * 335/375
let cellHeight = cellWidth * 158/335

return CGSize(width: cellWidth, height: cellHeight)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 14
}
}

0 comments on commit 58c36b1

Please sign in to comment.