1期
This commit is contained in:
parent
a805885950
commit
1cd9e117f3
@ -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 = "<group>"; };
|
||||
BF3A56872E30E0DD009E5CF9 /* BREmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BREmpty.swift; sourceTree = "<group>"; };
|
||||
BF3A56892E30E7EF009E5CF9 /* BRNetworkStatusManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BRNetworkStatusManager.swift; sourceTree = "<group>"; };
|
||||
BF3A568B2E30EBA2009E5CF9 /* BRHomePlayRecordButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BRHomePlayRecordButton.swift; sourceTree = "<group>"; };
|
||||
BF3A568D2E310217009E5CF9 /* BRHomePlayRecordView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BRHomePlayRecordView.swift; sourceTree = "<group>"; };
|
||||
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 = "<group>"; };
|
||||
BF692AE22E0A475D00A5C2DA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
@ -848,6 +852,8 @@
|
||||
BFC676762E0E950A006659E5 /* Spotlight */,
|
||||
BF692B6D2E0BD4CB00A5C2DA /* BRHomeHeaderView.swift */,
|
||||
BFC6766A2E0E395F006659E5 /* BRHomeHeaderBannerCell.swift */,
|
||||
BF3A568B2E30EBA2009E5CF9 /* BRHomePlayRecordButton.swift */,
|
||||
BF3A568D2E310217009E5CF9 /* BRHomePlayRecordView.swift */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
@ -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 */,
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
118
BeeReel/Class/Home/View/BRHomePlayRecordButton.swift
Normal file
118
BeeReel/Class/Home/View/BRHomePlayRecordButton.swift
Normal file
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
168
BeeReel/Class/Home/View/BRHomePlayRecordView.swift
Normal file
168
BeeReel/Class/Home/View/BRHomePlayRecordView.swift
Normal file
@ -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<UITouch>, 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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
22
BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Contents.json
vendored
Normal file
22
BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Contents.json
vendored
Normal file
@ -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
|
||||
}
|
||||
}
|
BIN
BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@2x.png
vendored
Normal file
BIN
BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 409 B |
BIN
BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@3x.png
vendored
Normal file
BIN
BeeReel/Sources/Assets.xcassets/icon/Polygon 4.imageset/Polygon 4@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 522 B |
22
BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Contents.json
vendored
Normal file
22
BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Contents.json
vendored
Normal file
@ -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
|
||||
}
|
||||
}
|
BIN
BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@2x.png
vendored
Normal file
BIN
BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 336 B |
BIN
BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@3x.png
vendored
Normal file
BIN
BeeReel/Sources/Assets.xcassets/icon/Union.imageset/Union@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 440 B |
22
BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Contents.json
vendored
Normal file
22
BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Contents.json
vendored
Normal file
@ -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
|
||||
}
|
||||
}
|
BIN
BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@2x.png
vendored
Normal file
BIN
BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@3x.png
vendored
Normal file
BIN
BeeReel/Sources/Assets.xcassets/icon/tv_icon_01.imageset/Frame@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
Loading…
x
Reference in New Issue
Block a user