diff --git a/BeeReel.xcodeproj/project.pbxproj b/BeeReel.xcodeproj/project.pbxproj index dde285c..5228980 100644 --- a/BeeReel.xcodeproj/project.pbxproj +++ b/BeeReel.xcodeproj/project.pbxproj @@ -61,6 +61,8 @@ BF3A56852E30CA78009E5CF9 /* BRSearchResultCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF3A56842E30CA78009E5CF9 /* BRSearchResultCell.swift */; }; BF3A56882E30E0DD009E5CF9 /* BREmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF3A56872E30E0DD009E5CF9 /* BREmpty.swift */; }; BF3A568A2E30E7EF009E5CF9 /* BRNetworkStatusManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF3A56892E30E7EF009E5CF9 /* BRNetworkStatusManager.swift */; }; + BF3A568C2E30EBA2009E5CF9 /* BRHomePlayRecordButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF3A568B2E30EBA2009E5CF9 /* BRHomePlayRecordButton.swift */; }; + BF3A568E2E310217009E5CF9 /* BRHomePlayRecordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF3A568D2E310217009E5CF9 /* BRHomePlayRecordView.swift */; }; BF692AEB2E0A475D00A5C2DA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF692AE12E0A475D00A5C2DA /* AppDelegate.swift */; }; BF692AEC2E0A475D00A5C2DA /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF692AE82E0A475D00A5C2DA /* SceneDelegate.swift */; }; BF692AEE2E0A475D00A5C2DA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BF692AE22E0A475D00A5C2DA /* Assets.xcassets */; }; @@ -208,6 +210,8 @@ BF3A56842E30CA78009E5CF9 /* BRSearchResultCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BRSearchResultCell.swift; sourceTree = ""; }; BF3A56872E30E0DD009E5CF9 /* BREmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BREmpty.swift; sourceTree = ""; }; BF3A56892E30E7EF009E5CF9 /* BRNetworkStatusManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BRNetworkStatusManager.swift; sourceTree = ""; }; + BF3A568B2E30EBA2009E5CF9 /* BRHomePlayRecordButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BRHomePlayRecordButton.swift; sourceTree = ""; }; + BF3A568D2E310217009E5CF9 /* BRHomePlayRecordView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BRHomePlayRecordView.swift; sourceTree = ""; }; BF692AC92E0A475500A5C2DA /* BeeReel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BeeReel.app; sourceTree = BUILT_PRODUCTS_DIR; }; BF692AE12E0A475D00A5C2DA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; BF692AE22E0A475D00A5C2DA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -848,6 +852,8 @@ BFC676762E0E950A006659E5 /* Spotlight */, BF692B6D2E0BD4CB00A5C2DA /* BRHomeHeaderView.swift */, BFC6766A2E0E395F006659E5 /* BRHomeHeaderBannerCell.swift */, + BF3A568B2E30EBA2009E5CF9 /* BRHomePlayRecordButton.swift */, + BF3A568D2E310217009E5CF9 /* BRHomePlayRecordView.swift */, ); path = View; sourceTree = ""; @@ -1136,6 +1142,7 @@ BF692B782E0D3A1200A5C2DA /* BRHomeModuleItem.swift in Sources */, BF692B5A2E0AAADD00A5C2DA /* BRPlayerListCell.swift in Sources */, BF02B8312E30897700172177 /* BRSearchHomeView.swift in Sources */, + BF3A568C2E30EBA2009E5CF9 /* BRHomePlayRecordButton.swift in Sources */, BF692B162E0A7CD600A5C2DA /* BRHUD.swift in Sources */, BF3338F72E16176900B10F76 /* BRDetailPlayerCell.swift in Sources */, BF3338EA2E152B8100B10F76 /* BRPlayerCache.swift in Sources */, @@ -1143,6 +1150,7 @@ BFC676952E126BBF006659E5 /* BRSpotlightNewCell.swift in Sources */, BF692B402E0A8FA100A5C2DA /* UIColor+BRAdd.swift in Sources */, BF692B102E0A7B4300A5C2DA /* BRUserDefaultsKey.swift in Sources */, + BF3A568E2E310217009E5CF9 /* BRHomePlayRecordView.swift in Sources */, BFC676852E122D9E006659E5 /* BRVideoDetailViewController.swift in Sources */, BFC676912E126248006659E5 /* BRSpotlightTopCell.swift in Sources */, BFC676B72E137DFC006659E5 /* BRPopularPicksCell.swift in Sources */, diff --git a/BeeReel/Class/Home/Controller/BRHomeTop10ViewController.swift b/BeeReel/Class/Home/Controller/BRHomeTop10ViewController.swift index 56cd66e..04dbffe 100644 --- a/BeeReel/Class/Home/Controller/BRHomeTop10ViewController.swift +++ b/BeeReel/Class/Home/Controller/BRHomeTop10ViewController.swift @@ -79,13 +79,13 @@ extension BRHomeTop10ViewController: UICollectionViewDelegate, UICollectionViewD if indexPath.section == 0 { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "BRHomeTop3Cell", for: indexPath) as! BRHomeTop3Cell - cell.model = model cell.num = indexPath.row + 1 + cell.model = model return cell } else { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! BRHomeTop10Cell - cell.model = model cell.num = indexPath.row + 4 + cell.model = model return cell } } diff --git a/BeeReel/Class/Home/Controller/BRHomeViewController.swift b/BeeReel/Class/Home/Controller/BRHomeViewController.swift index 3209676..863faf4 100644 --- a/BeeReel/Class/Home/Controller/BRHomeViewController.swift +++ b/BeeReel/Class/Home/Controller/BRHomeViewController.swift @@ -137,6 +137,13 @@ class BRHomeViewController: BRViewController { return button }() + private lazy var recordButton: BRHomePlayRecordButton = { + let size = 48.0 + let button = BRHomePlayRecordButton(frame: .init(x: UIScreen.width - size - 15, y: UIScreen.statusBarHeight + 350, width: size, height: size)) + button.isHidden = true + return button + }() + override func viewDidLoad() { super.viewDidLoad() self.edgesForExtendedLayout = [.top, .bottom] @@ -147,6 +154,7 @@ class BRHomeViewController: BRViewController { br_setupUI() requestHomeData() + requestPlayHistorys() setupPageView() @@ -158,6 +166,13 @@ class BRHomeViewController: BRViewController { self.navigationController?.setNavigationBarHidden(true, animated: true) } + override func viewDidAppear(_ animated: Bool) { + if self.hasViewDidAppear { + requestPlayHistorys() + } + super.viewDidAppear(animated) + } + private func updateStatusBarStyle() { let point = self.pageView.downSc?.contentOffset ?? .zero @@ -170,6 +185,7 @@ class BRHomeViewController: BRViewController { } override func handleHeaderRefresh(_ completer: (() -> Void)?) { + requestPlayHistorys() self.requestGroup.enter() requestHomeData { [weak self] in @@ -197,6 +213,7 @@ extension BRHomeViewController { view.addSubview(bgImageView) view.addSubview(pageView) menuLeftView.addSubview(searchButton) + view.addSubview(recordButton) bgImageView.snp.makeConstraints { make in make.top.equalToSuperview().offset(0) @@ -283,6 +300,21 @@ extension BRHomeViewController { } + private func requestPlayHistorys() { + BRVideoAPI.requestPlayHistorys(page: 1, pageSize: 1) { [weak self] listModel in + guard let self = self else { return } + guard let list = listModel?.list else { return } + + let model = list.first + self.recordButton.model = model + if model == nil { + self.recordButton.isHidden = true + } else { + self.recordButton.isHidden = false + } + } + } + } diff --git a/BeeReel/Class/Home/View/BRHomePlayRecordButton.swift b/BeeReel/Class/Home/View/BRHomePlayRecordButton.swift new file mode 100644 index 0000000..8ddb1f1 --- /dev/null +++ b/BeeReel/Class/Home/View/BRHomePlayRecordButton.swift @@ -0,0 +1,118 @@ +// +// BRHomePlayRecordButton.swift +// BeeReel +// +// Created by 湖南秦九 on 2025/7/23. +// + +import UIKit + +class BRHomePlayRecordButton: UIView { + + + var model: BRShortModel? { + didSet { + + } + } + + var minY: CGFloat = UIScreen.statusBarHeight + var maxY: CGFloat = UIScreen.height - UIScreen.customTabBarHeight - 48 - 10 + + var minX: CGFloat = 15 + var maxX: CGFloat = UIScreen.width - 15 - 48 + + private lazy var iconView: UIImageView = { + let view = UIImageView(image: UIImage(named: "tv_icon_01")) + return view + }() + + + + override init(frame: CGRect) { + super.init(frame: frame) + + self.backgroundColor = .colorFFFFFF() + self.layer.cornerRadius = 12 + self.layer.shadowColor = UIColor.color000000(alpha: 0.15).cgColor + self.layer.shadowOpacity = 1 + self.layer.shadowRadius = 14 + self.layer.shadowOffset = .init(width: 0, height: 0) + + self.addSubview(iconView) + + iconView.snp.makeConstraints { make in + make.center.equalToSuperview() + } + + + let pan = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture)) + self.addGestureRecognizer(pan) + + let tap = UITapGestureRecognizer(target: self, action: #selector(handleTapGesture)) + self.addGestureRecognizer(tap) + + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc private func handlePanGesture(sender: UIPanGestureRecognizer) { + let state = sender.state + + switch state { + case .began: + sender.setTranslation(.zero, in: self.superview) + + case .changed: + let point = sender.translation(in: self.superview) + sender.setTranslation(.zero, in: self.superview) + var newFrame = self.frame + newFrame.origin.y += point.y + newFrame.origin.x += point.x + + if newFrame.origin.y < minY { + newFrame.origin.y = minY + } + if newFrame.origin.y > maxY { + newFrame.origin.y = maxY + } + if newFrame.origin.x > maxX { + newFrame.origin.x = maxX + } + if newFrame.origin.x < minX { + newFrame.origin.x = minX + } + + self.frame = newFrame + + default: + let superCenterX = self.superview?.centerX ?? 0 + var resultX = 15.0 + + if self.centerX >= superCenterX { + resultX = (self.superview?.frame.width ?? 0) - self.frame.size.width - 15 + } + var newFrame = self.frame + newFrame.origin.x = resultX + + UIView.animate(withDuration: 0.3) { + self.frame = newFrame + } + + brLog(message: "end") + } + } + + + @objc private func handleTapGesture() { + let view = BRHomePlayRecordView() + view.model = self.model + if self.frame.minX == minX { + view.show(startFrame: self.frame, animateDirection: .right) + } else { + view.show(startFrame: self.frame, animateDirection: .left) + } + } +} diff --git a/BeeReel/Class/Home/View/BRHomePlayRecordView.swift b/BeeReel/Class/Home/View/BRHomePlayRecordView.swift new file mode 100644 index 0000000..301c0cc --- /dev/null +++ b/BeeReel/Class/Home/View/BRHomePlayRecordView.swift @@ -0,0 +1,168 @@ +// +// BRHomePlayRecordView.swift +// BeeReel +// +// Created by 湖南秦九 on 2025/7/23. +// + +import UIKit + +class BRHomePlayRecordView: UIView { + + enum AnimateDirection: Int { + ///从右至左 + case left = 1 + ///从左至右 + case right = 2 + } + + var model: BRShortModel? { + didSet { + label.text = model?.name + } + } + + private var oldFrame: CGRect = .zero + + ///动画方向 + private var animateDirection: AnimateDirection = .left + + private lazy var contentView: UIView = { + let view = UIView() + view.backgroundColor = .colorFFFFFF() + view.layer.cornerRadius = 12 + view.layer.masksToBounds = true + return view + }() + + private lazy var iconView: UIImageView = { + let view = UIImageView(image: UIImage(named: "tv_icon_01")) + return view + }() + + private lazy var label: UILabel = { + let label = UILabel() + label.font = .fontRegular(ofSize: 14) + label.textColor = .color1C1C1C() + return label + }() + + private lazy var closeButton: UIButton = { + let button = UIButton(type: .custom) + button.setImage(UIImage(named: "Union"), for: .normal) + button.addTarget(self, action: #selector(handleCloseButton), for: .touchUpInside) + return button + }() + + private lazy var playButton: UIButton = { + let button = UIButton(type: .custom) + button.setImage(UIImage(named: "Polygon 4"), for: .normal) + button.addTarget(self, action: #selector(handlePlayButton), for: .touchUpInside) + return button + }() + + + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = .color000000(alpha: 0.4) + + br_setupUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func touchesBegan(_ touches: Set, with event: UIEvent?) { + super.touchesBegan(touches, with: event) + } + + func show(startFrame: CGRect, animateDirection: AnimateDirection) { + self.oldFrame = startFrame + self.animateDirection = animateDirection + BRAppTool.keyWindow?.addSubview(self) + self.frame = BRAppTool.keyWindow?.bounds ?? .zero + + self.contentView.frame = startFrame + + let endWidth: CGFloat = 282.0 + var endX: CGFloat = 0.0 + + if animateDirection == .left { + endX = self.frame.size.width - 15 - endWidth + } else { + endX = 15 + } + + let endFrame = CGRect(x: endX, y: startFrame.origin.y, width: endWidth, height: startFrame.size.height) + + + UIView.animate(withDuration: 0.3) { + self.contentView.frame = endFrame + } completion: { _ in + + } + } + + func dismiss(completion: (() -> Void)? = nil) { + UIView.animate(withDuration: 0.3) { + self.contentView.frame = self.oldFrame + } completion: { _ in + self.removeFromSuperview() + completion?() + } + } + +} + +extension BRHomePlayRecordView { + @objc private func handleCloseButton() { + dismiss() + } + + @objc private func handlePlayButton() { + dismiss { [weak self] in + let vc = BRVideoDetailViewController() + vc.shortPlayId = self?.model?.short_play_id + BRAppTool.topViewController?.navigationController?.pushViewController(vc, animated: true) + } + } +} + +extension BRHomePlayRecordView { + + private func br_setupUI() { + addSubview(contentView) + contentView.addSubview(iconView) + contentView.addSubview(closeButton) + contentView.addSubview(label) + contentView.addSubview(playButton) + + iconView.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalToSuperview().offset(12) + } + + label.snp.makeConstraints { make in + make.left.equalToSuperview().offset(46) + make.centerY.equalToSuperview() + make.width.equalTo(154) + } + + playButton.snp.makeConstraints { make in + make.top.equalToSuperview() + make.centerY.equalToSuperview() + make.left.equalTo(label.snp.right).offset(16) + make.width.equalTo(34) + } + + closeButton.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.top.equalToSuperview() + make.left.equalTo(playButton.snp.right).offset(0) + make.width.equalTo(32) + } + + } + +} diff --git a/BeeReel/Class/Home/View/PopularPicks/BRPopularPicksCell.swift b/BeeReel/Class/Home/View/PopularPicks/BRPopularPicksCell.swift index 7e108e9..2cbe691 100644 --- a/BeeReel/Class/Home/View/PopularPicks/BRPopularPicksCell.swift +++ b/BeeReel/Class/Home/View/PopularPicks/BRPopularPicksCell.swift @@ -63,7 +63,7 @@ class BRPopularPicksCell: BRCollectionViewCell { guard let self = self else { return } let count = model?.watch_total ?? 0 var string = "\(count)" - if count > 100 { + if count > 1000 { string = String(format: "%.1fk", Float(count) / 1000) } button.configuration?.attributedTitle = AttributedString.br_createAttributedString(string: string, color: .colorFF7489(), font: .fontRegular(ofSize: 10)) diff --git a/BeeReel/Class/Home/View/Spotlight/BRSpotlightHotCell.swift b/BeeReel/Class/Home/View/Spotlight/BRSpotlightHotCell.swift index 7cb1ee2..447fedb 100644 --- a/BeeReel/Class/Home/View/Spotlight/BRSpotlightHotCell.swift +++ b/BeeReel/Class/Home/View/Spotlight/BRSpotlightHotCell.swift @@ -59,7 +59,7 @@ class BRSpotlightHotCell: BRCollectionViewCell { guard let self = self else { return } let count = model?.watch_total ?? 0 var string = "\(count)" - if count > 100 { + if count > 1000 { string = String(format: "%.1fk", Float(count) / 1000) } button.configuration?.attributedTitle = AttributedString.br_createAttributedString(string: string, color: .colorFF7489(), font: .fontRegular(ofSize: 10)) diff --git a/BeeReel/Class/Home/View/Spotlight/BRSpotlightTopCell.swift b/BeeReel/Class/Home/View/Spotlight/BRSpotlightTopCell.swift index 17c58fd..7f35acc 100644 --- a/BeeReel/Class/Home/View/Spotlight/BRSpotlightTopCell.swift +++ b/BeeReel/Class/Home/View/Spotlight/BRSpotlightTopCell.swift @@ -91,7 +91,7 @@ class BRSpotlightTopCell: BRCollectionViewCell { guard let self = self else { return } let count = model?.watch_total ?? 0 var string = "\(count)" - if count > 100 { + if count > 1000 { string = String(format: "%.1fk", Float(count) / 1000) } button.configuration?.attributedTitle = AttributedString.br_createAttributedString(string: string, color: .colorFF7489(), font: .fontRegular(ofSize: 10)) diff --git a/BeeReel/Class/Home/View/Top10/BRHomeTop10Cell.swift b/BeeReel/Class/Home/View/Top10/BRHomeTop10Cell.swift index 5385bfa..b1c3071 100644 --- a/BeeReel/Class/Home/View/Top10/BRHomeTop10Cell.swift +++ b/BeeReel/Class/Home/View/Top10/BRHomeTop10Cell.swift @@ -75,7 +75,7 @@ class BRHomeTop10Cell: BRCollectionViewCell { guard let self = self else { return } let count = model?.watch_total ?? 0 var string = "\(count)" - if count > 100 { + if count > 1000 { string = String(format: "%.1fk", Float(count) / 1000) } button.configuration?.attributedTitle = AttributedString.br_createAttributedString(string: string, color: .colorFF7489(), font: .fontRegular(ofSize: 10)) diff --git a/BeeReel/Class/Home/View/Top10/BRHomeTop3Cell.swift b/BeeReel/Class/Home/View/Top10/BRHomeTop3Cell.swift index ec61315..a351211 100644 --- a/BeeReel/Class/Home/View/Top10/BRHomeTop3Cell.swift +++ b/BeeReel/Class/Home/View/Top10/BRHomeTop3Cell.swift @@ -12,7 +12,16 @@ class BRHomeTop3Cell: BRCollectionViewCell { var model: BRShortModel? { didSet { - coverImageView.br_setImage(url: model?.image_url) + if num == 1 { + + coverImageView.br_setImage(url: model?.image_url) + } else { + if let image = model?.horizontally_img, !image.isEmpty { + coverImageView.br_setImage(url: image) + } else { + coverImageView.br_setImage(url: model?.image_url) + } + } } } diff --git a/BeeReel/Class/Search/View/BRSearchResultView.swift b/BeeReel/Class/Search/View/BRSearchResultView.swift index b7eed9e..8ae5ba7 100644 --- a/BeeReel/Class/Search/View/BRSearchResultView.swift +++ b/BeeReel/Class/Search/View/BRSearchResultView.swift @@ -92,6 +92,13 @@ extension BRSearchResultView: UICollectionViewDelegate, UICollectionViewDataSour func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { self.listArr.count } + + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + let model = self.listArr[indexPath.row] + let vc = BRVideoDetailViewController() + vc.shortPlayId = model.short_play_id + self.viewController?.navigationController?.pushViewController(vc, animated: true) + } } diff --git a/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Contents.json b/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Contents.json new file mode 100644 index 0000000..fd0bec5 --- /dev/null +++ b/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Polygon 4@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Polygon 4@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@2x.png b/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@2x.png new file mode 100644 index 0000000..0a6a177 Binary files /dev/null and b/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@2x.png differ diff --git a/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@3x.png b/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@3x.png new file mode 100644 index 0000000..32ebb37 Binary files /dev/null and b/BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@3x.png differ diff --git a/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Contents.json b/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Contents.json new file mode 100644 index 0000000..491dc35 --- /dev/null +++ b/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Union@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Union@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@2x.png b/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@2x.png new file mode 100644 index 0000000..85e8fc1 Binary files /dev/null and b/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@2x.png differ diff --git a/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@3x.png b/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@3x.png new file mode 100644 index 0000000..aa089dc Binary files /dev/null and b/BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@3x.png differ diff --git a/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Contents.json b/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Contents.json new file mode 100644 index 0000000..5c4d3b1 --- /dev/null +++ b/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Frame@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Frame@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@2x.png b/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@2x.png new file mode 100644 index 0000000..39f0951 Binary files /dev/null and b/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@2x.png differ diff --git a/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@3x.png b/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@3x.png new file mode 100644 index 0000000..c3b3d0c Binary files /dev/null and b/BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@3x.png differ