diff --git a/Projects/Core/DesignSystem/Resources/Images.xcassets/testImage2.imageset/Contents.json b/Projects/Core/DesignSystem/Resources/Images.xcassets/testImage2.imageset/Contents.json
new file mode 100644
index 0000000..23436c9
--- /dev/null
+++ b/Projects/Core/DesignSystem/Resources/Images.xcassets/testImage2.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "SP_1920774 3.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Projects/Core/DesignSystem/Resources/Images.xcassets/testImage2.imageset/SP_1920774 3.svg b/Projects/Core/DesignSystem/Resources/Images.xcassets/testImage2.imageset/SP_1920774 3.svg
new file mode 100644
index 0000000..4761cd7
--- /dev/null
+++ b/Projects/Core/DesignSystem/Resources/Images.xcassets/testImage2.imageset/SP_1920774 3.svg
@@ -0,0 +1,9 @@
+
diff --git a/Projects/Feature/HomeFeature/Sources/Cell/MoviesCell.swift b/Projects/Feature/HomeFeature/Sources/Cell/MoviesCell.swift
index 795a8eb..130d150 100644
--- a/Projects/Feature/HomeFeature/Sources/Cell/MoviesCell.swift
+++ b/Projects/Feature/HomeFeature/Sources/Cell/MoviesCell.swift
@@ -16,7 +16,6 @@ class MoviesCell: UICollectionViewCell {
self.addSubview(moviesImageView)
moviesImageView.snp.makeConstraints {
$0.edges.equalToSuperview()
-
}
}
diff --git a/Projects/Feature/HomeFeature/Sources/HomeViewController.swift b/Projects/Feature/HomeFeature/Sources/HomeViewController.swift
index b7afd7f..f1d6bde 100644
--- a/Projects/Feature/HomeFeature/Sources/HomeViewController.swift
+++ b/Projects/Feature/HomeFeature/Sources/HomeViewController.swift
@@ -11,7 +11,7 @@ var bannerImageSources = [
DesignSystemAsset.Images.testImage.image,
DesignSystemAsset.Images.testImage.image,
DesignSystemAsset.Images.testImage.image,
- DesignSystemAsset.Images.testImage.image
+ DesignSystemAsset.Images.testImage2.image
]
var segConArray = ["최근", "추천", "인기"]
@@ -27,7 +27,7 @@ class HomeViewController: BaseVC {
flowLayout.minimumLineSpacing = 9
let view = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
view.register(MoviesCell.self, forCellWithReuseIdentifier: MoviesCell.identifier)
-
+
return view
}()
@@ -51,6 +51,11 @@ class HomeViewController: BaseVC {
$0.layer.cornerRadius = 10
}
+ private let viewAllButton = UIButton().then {
+ $0.titleLabel?.font = DesignSystemFontFamily.Suit.regular.font(size: 10)
+ $0.setTitle("전체 보기 >", for: .normal)
+ }
+
private let segCon = UISegmentedControl(items: segConArray).then {
$0.clipsToBounds = false
$0.selectedSegmentIndex = 0
@@ -87,24 +92,18 @@ class HomeViewController: BaseVC {
default:
break
}
-
- UIView.transition(
- with: owner.bannerImageView,
- duration: 0.3,
- options: .transitionCrossDissolve,
- animations: {
- owner.bannerImageView.image = bannerImageSources[owner.pageControl.currentPage]
- })
+ owner.bannerAnimation()
}.disposed(by: disposeBag)
}
func bindUI() {
moviesData
.asDriver()
- .drive(moviesCollectionView.rx.items(cellIdentifier: MoviesCell.identifier,
- cellType: MoviesCell.self)) { (row, data, cell) in
- cell.prepare(model: data)
- }.disposed(by: disposeBag)
+ .drive(moviesCollectionView.rx.items(
+ cellIdentifier: MoviesCell.identifier,
+ cellType: MoviesCell.self)) { (row, data, cell) in
+ cell.prepare(model: data)
+ }.disposed(by: disposeBag)
segCon.rx.selectedSegmentIndex.changed
.bind(with: self) { owner, _ in
@@ -115,11 +114,29 @@ class HomeViewController: BaseVC {
self.underlineView.frame.origin.x = underlineFinalXPosition
}
)
- switch owner.segCon.selectedSegmentIndex {
-
- default:
- return
+ }.disposed(by: disposeBag)
+ }
+
+ func bannerAnimation() {
+ UIView.transition(
+ with: bannerImageView,
+ duration: 0.3,
+ options: .transitionCrossDissolve,
+ animations: {
+ print(self.pageControl.currentPage)
+ self.bannerImageView.image = bannerImageSources[self.pageControl.currentPage]
+ })
+ }
+
+ private func bannerMovetimer() {
+ Observable.interval(.seconds(4), scheduler: MainScheduler.instance)
+ .bind(with: self) { owner, _ in
+ if owner.pageControl.currentPage == 3 {
+ owner.pageControl.currentPage = 0
+ } else {
+ owner.pageControl.currentPage += 1
}
+ owner.bannerAnimation()
}.disposed(by: disposeBag)
}
@@ -129,9 +146,9 @@ class HomeViewController: BaseVC {
override func configureVC() {
navigationController?.navigationBar.prefersLargeTitles = false
- navigationItem.title = "hihi"
setGesture()
bindUI()
+ bannerMovetimer()
let width = segCon.bounds.size.width / CGFloat(segCon.numberOfSegments)
let height: CGFloat = 2.0
@@ -143,9 +160,13 @@ class HomeViewController: BaseVC {
}
override func addView() {
- view.addSubviews(bannerImageView, pageControl, segCon, moviesCollectionView)
+ view.addSubviews(
+ bannerImageView, pageControl,
+ segCon, moviesCollectionView,
+ viewAllButton
+ )
}
-
+
override func setLayout() {
bannerImageView.snp.makeConstraints {
$0.top.equalTo(view.safeAreaLayoutGuide).inset(21)
@@ -164,6 +185,11 @@ class HomeViewController: BaseVC {
$0.height.equalTo(23)
}
+ viewAllButton.snp.makeConstraints {
+ $0.centerY.equalTo(segCon)
+ $0.trailing.equalToSuperview().inset(15)
+ }
+
moviesCollectionView.snp.makeConstraints {
$0.top.equalTo(segCon.snp.bottom).offset(10)
$0.leading.equalToSuperview().inset(15)