Commit 98659a25 authored by pete谢兆麟's avatar pete谢兆麟

直播UI

parent 49ea243c
...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
040AE9882CEB6DAC00310241 /* YHWorkExperiencePositionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040AE9872CEB6DAC00310241 /* YHWorkExperiencePositionModel.swift */; }; 040AE9882CEB6DAC00310241 /* YHWorkExperiencePositionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040AE9872CEB6DAC00310241 /* YHWorkExperiencePositionModel.swift */; };
040AE98A2CEC83FA00310241 /* YHWorkExperienceCompanyViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040AE9892CEC83FA00310241 /* YHWorkExperienceCompanyViewModel.swift */; }; 040AE98A2CEC83FA00310241 /* YHWorkExperienceCompanyViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040AE9892CEC83FA00310241 /* YHWorkExperienceCompanyViewModel.swift */; };
040AE98C2CEC84B400310241 /* YHWorkExperienceCompanyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040AE98B2CEC84B400310241 /* YHWorkExperienceCompanyModel.swift */; }; 040AE98C2CEC84B400310241 /* YHWorkExperienceCompanyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040AE98B2CEC84B400310241 /* YHWorkExperienceCompanyModel.swift */; };
040AE9932CF5B89300310241 /* YHSelectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040AE9922CF5B89300310241 /* YHSelectViewController.swift */; };
040AE9952CF5B9C900310241 /* YHSelectLookView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040AE9942CF5B9C900310241 /* YHSelectLookView.swift */; };
04129E862CD0C8490072F87B /* YHAliYunLogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04129E852CD0C8490072F87B /* YHAliYunLogManager.swift */; }; 04129E862CD0C8490072F87B /* YHAliYunLogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04129E852CD0C8490072F87B /* YHAliYunLogManager.swift */; };
041390692C1081FA0098CB8A /* YHFileListEmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041390682C1081FA0098CB8A /* YHFileListEmptyView.swift */; }; 041390692C1081FA0098CB8A /* YHFileListEmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041390682C1081FA0098CB8A /* YHFileListEmptyView.swift */; };
0414708B2C88627B00B7B688 /* YHButlerServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0414708A2C88627B00B7B688 /* YHButlerServiceManager.swift */; }; 0414708B2C88627B00B7B688 /* YHButlerServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0414708A2C88627B00B7B688 /* YHButlerServiceManager.swift */; };
...@@ -1068,6 +1070,8 @@ ...@@ -1068,6 +1070,8 @@
040AE9872CEB6DAC00310241 /* YHWorkExperiencePositionModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExperiencePositionModel.swift; sourceTree = "<group>"; }; 040AE9872CEB6DAC00310241 /* YHWorkExperiencePositionModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExperiencePositionModel.swift; sourceTree = "<group>"; };
040AE9892CEC83FA00310241 /* YHWorkExperienceCompanyViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExperienceCompanyViewModel.swift; sourceTree = "<group>"; }; 040AE9892CEC83FA00310241 /* YHWorkExperienceCompanyViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExperienceCompanyViewModel.swift; sourceTree = "<group>"; };
040AE98B2CEC84B400310241 /* YHWorkExperienceCompanyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExperienceCompanyModel.swift; sourceTree = "<group>"; }; 040AE98B2CEC84B400310241 /* YHWorkExperienceCompanyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExperienceCompanyModel.swift; sourceTree = "<group>"; };
040AE9922CF5B89300310241 /* YHSelectViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSelectViewController.swift; sourceTree = "<group>"; };
040AE9942CF5B9C900310241 /* YHSelectLookView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSelectLookView.swift; sourceTree = "<group>"; };
04129E852CD0C8490072F87B /* YHAliYunLogManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAliYunLogManager.swift; sourceTree = "<group>"; }; 04129E852CD0C8490072F87B /* YHAliYunLogManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAliYunLogManager.swift; sourceTree = "<group>"; };
041390682C1081FA0098CB8A /* YHFileListEmptyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFileListEmptyView.swift; sourceTree = "<group>"; }; 041390682C1081FA0098CB8A /* YHFileListEmptyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFileListEmptyView.swift; sourceTree = "<group>"; };
0414708A2C88627B00B7B688 /* YHButlerServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHButlerServiceManager.swift; sourceTree = "<group>"; }; 0414708A2C88627B00B7B688 /* YHButlerServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHButlerServiceManager.swift; sourceTree = "<group>"; };
...@@ -2110,6 +2114,47 @@ ...@@ -2110,6 +2114,47 @@
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
040AE98D2CF5B73800310241 /* YHSelect */ = {
isa = PBXGroup;
children = (
040AE9912CF5B83000310241 /* VM */,
040AE9902CF5B82B00310241 /* M */,
040AE98F2CF5B82600310241 /* V */,
040AE98E2CF5B81F00310241 /* C */,
);
path = YHSelect;
sourceTree = "<group>";
};
040AE98E2CF5B81F00310241 /* C */ = {
isa = PBXGroup;
children = (
040AE9922CF5B89300310241 /* YHSelectViewController.swift */,
);
path = C;
sourceTree = "<group>";
};
040AE98F2CF5B82600310241 /* V */ = {
isa = PBXGroup;
children = (
040AE9942CF5B9C900310241 /* YHSelectLookView.swift */,
);
path = V;
sourceTree = "<group>";
};
040AE9902CF5B82B00310241 /* M */ = {
isa = PBXGroup;
children = (
);
path = M;
sourceTree = "<group>";
};
040AE9912CF5B83000310241 /* VM */ = {
isa = PBXGroup;
children = (
);
path = VM;
sourceTree = "<group>";
};
04129E842CD0C8000072F87B /* AliYunLog(阿里云日志) */ = { 04129E842CD0C8000072F87B /* AliYunLog(阿里云日志) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -4747,6 +4792,7 @@ ...@@ -4747,6 +4792,7 @@
A567E5662BD7643D00D5D5A0 /* Home(首页) */ = { A567E5662BD7643D00D5D5A0 /* Home(首页) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
040AE98D2CF5B73800310241 /* YHSelect */,
047AA3DA2C4A6102009C4554 /* Life(生活) */, 047AA3DA2C4A6102009C4554 /* Life(生活) */,
0419A0952C48F79100A5FCFA /* InvitationWithGifts(邀请有礼) */, 0419A0952C48F79100A5FCFA /* InvitationWithGifts(邀请有礼) */,
A567E5672BD7643D00D5D5A0 /* VM */, A567E5672BD7643D00D5D5A0 /* VM */,
...@@ -6150,6 +6196,8 @@ ...@@ -6150,6 +6196,8 @@
0430E6842C76D702000511E2 /* YHAddpterViewModel.swift in Sources */, 0430E6842C76D702000511E2 /* YHAddpterViewModel.swift in Sources */,
040AE98C2CEC84B400310241 /* YHWorkExperienceCompanyModel.swift in Sources */, 040AE98C2CEC84B400310241 /* YHWorkExperienceCompanyModel.swift in Sources */,
045EEEAE2B9F171A0022A143 /* YHWorkHighlightsTableViewCell.swift in Sources */, 045EEEAE2B9F171A0022A143 /* YHWorkHighlightsTableViewCell.swift in Sources */,
040AE9932CF5B89300310241 /* YHSelectViewController.swift in Sources */,
040AE9952CF5B9C900310241 /* YHSelectLookView.swift in Sources */,
A567E59A2BD7643D00D5D5A0 /* YHHomeKingKongBlockModel.swift in Sources */, A567E59A2BD7643D00D5D5A0 /* YHHomeKingKongBlockModel.swift in Sources */,
045EEF062B9F171A0022A143 /* YHFormItemQuestionsCell.swift in Sources */, 045EEF062B9F171A0022A143 /* YHFormItemQuestionsCell.swift in Sources */,
044F392E2CB55050007CA277 /* YHHKVisaRenewalPaymentStepView.swift in Sources */, 044F392E2CB55050007CA277 /* YHHKVisaRenewalPaymentStepView.swift in Sources */,
......
...@@ -15,7 +15,7 @@ class YHHomeHoldViewPageViewController: YHBaseViewController { ...@@ -15,7 +15,7 @@ class YHHomeHoldViewPageViewController: YHBaseViewController {
private var needShowManagerTipsView = false private var needShowManagerTipsView = false
private var didFirstLoadYhManager = false private var didFirstLoadYhManager = false
let arrItemTitles = ["推荐","身份","生活","资讯"] let arrItemTitles = ["推荐","身份","生活","咨询攻略"]
var arrItemVCs : [YHBaseViewController] = [] var arrItemVCs : [YHBaseViewController] = []
......
...@@ -17,7 +17,36 @@ class YHLifeViewController: YHBaseViewController { ...@@ -17,7 +17,36 @@ class YHLifeViewController: YHBaseViewController {
var viewModel: YHHomePageViewModel = YHHomePageViewModel() var viewModel: YHHomePageViewModel = YHHomePageViewModel()
var selectSubTab: YHHomeLifeCategoryModel? = nil var selectSubTab: YHHomeLifeCategoryModel? = nil
var selectSubIndex : Int = -1 var selectSubIndex : Int = -1
var items: [String] = ["12", "22", "33", "44", "55", "66"]
lazy var myCollectView = {
// 设置布局方向
let flowLayout = UICollectionViewFlowLayout()
flowLayout.itemSize = CGSize(width: 162, height: 222)
flowLayout.minimumInteritemSpacing = 12.0
flowLayout.minimumLineSpacing = 12.0
flowLayout.scrollDirection = .vertical
let collectinoView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectinoView.backgroundColor = .white
collectinoView.contentInset = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20)
collectinoView.register(YHLookCollectionViewCell.self, forCellWithReuseIdentifier:YHLookCollectionViewCell.cellReuseIdentifier)
collectinoView.delegate = self
collectinoView.dataSource = self
collectinoView.translatesAutoresizingMaskIntoConstraints = false
collectinoView.alwaysBounceVertical = true
collectinoView.bounces = false
collectinoView.showsHorizontalScrollIndicator = false
collectinoView.showsVerticalScrollIndicator = false
return collectinoView
}()
lazy var noDataView: YHEmptyDataView = {
let view = YHEmptyDataView.createView("暂无产品", kEmptyCommonBgName)
view.isHidden = true
return view
}()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -139,6 +168,27 @@ extension YHLifeViewController { ...@@ -139,6 +168,27 @@ extension YHLifeViewController {
tableView.es.addYHPullToRefresh { tableView.es.addYHPullToRefresh {
self.loadData() self.loadData()
} }
sectionView.isHidden = true
tableView.isHidden = true
view.addSubview(myCollectView)
myCollectView.snp.makeConstraints { make in
make.top.bottom.left.right.equalToSuperview()
}
view.addSubview(noDataView)
noDataView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.centerY.equalToSuperview()
make.width.equalTo(KScreenWidth)
make.height.equalTo(150)
}
myCollectView.es.addYHPullToRefresh {
// 刷新look数据
// self.loadData()
}
} }
} }
...@@ -190,3 +240,118 @@ extension YHLifeViewController: JXSegmentedListContainerViewListDelegate { ...@@ -190,3 +240,118 @@ extension YHLifeViewController: JXSegmentedListContainerViewListDelegate {
return view return view
} }
} }
extension YHLifeViewController: UICollectionViewDelegate, UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHLookCollectionViewCell.cellReuseIdentifier, for: indexPath) as! YHLookCollectionViewCell
cell.dataSource = items[indexPath.row]
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
}
}
class YHLookCollectionViewCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHLookCollectionViewCell"
var lookImageView: UIImageView!
var flagImageView: UIImageView!
var headImageView: UIImageView!
var titleLabel: UILabel!
var nameLabel: UILabel!
var dataSource: String? {
didSet {
updataAllSubViews()
}
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
private func setupUI() {
lookImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "home_look_bg")
return imageView
}()
contentView.addSubview(lookImageView)
lookImageView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(162)
}
flagImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "home_look_flag")
return imageView
}()
contentView.addSubview(flagImageView)
flagImageView.snp.makeConstraints { make in
make.top.left.equalTo(8)
make.width.height.equalTo(16)
}
headImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "home_look_head")
imageView.layer.cornerRadius = 10
return imageView
}()
contentView.addSubview(headImageView)
headImageView.snp.makeConstraints { make in
make.left.equalToSuperview()
make.width.height.equalTo(20)
make.bottom.equalTo(-8)
}
titleLabel = {
let label = UILabel()
label.text = "双11高才最强返场"
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_R(ofSize: 14)
return label
}()
contentView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalTo(-32)
make.height.equalTo(20)
}
nameLabel = {
let label = UILabel()
label.text = "高才专家社"
label.textColor = UIColor(hex: 0x6d788a)
label.font = UIFont.PFSC_R(ofSize: 12)
return label
}()
contentView.addSubview(nameLabel)
nameLabel.snp.makeConstraints { make in
make.left.equalTo(24)
make.height.equalTo(20)
make.bottom.equalTo(-8)
make.right.equalToSuperview()
}
}
func updataAllSubViews() {
guard let dataSource = dataSource else { return }
}
}
//
// YHSelectViewController.swift
// galaxy
//
// Created by EDY on 2024/11/26.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHSelectViewController: YHBaseViewController {
var sectionView: YHSelectLookView!
var tableView: UITableView!
var headView = YHLifeHeadView()
var viewModel: YHHomePageViewModel = YHHomePageViewModel()
var selectSubIndex : Int = -1
lazy var noDataView: YHEmptyDataView = {
let view = YHEmptyDataView.createView("暂无产品", kEmptyCommonBgName)
view.isHidden = true
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
loadData()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
}
extension YHSelectViewController {
func loadData() {
}
func getDetailImages() {
}
@objc func didJumpToEduTab() {
let index : Int = 1
if index < self.viewModel.categoryArr.count {
selectSubIndex = index
self.getDetailImages()
self.sectionView.selectIndex = index
}
}
func setupUI() {
gk_navBarAlpha = 0
gk_navigationBar.isHidden = true
view.backgroundColor = .white
sectionView = {
let view = YHSelectLookView()
view.block = {[weak self] itemIndex in
guard let self = self else { return }
selectSubIndex = itemIndex
self.getDetailImages()
}
return view
}()
view.addSubview(sectionView)
sectionView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(92)
}
headView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenWidth + 28)
tableView = {
let tableView = UITableView(frame: .zero, style: .grouped)
tableView.contentInsetAdjustmentBehavior = .never
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
tableView.showsHorizontalScrollIndicator = false
tableView.showsVerticalScrollIndicator = false
tableView.dataSource = self
tableView.delegate = self
tableView.tableHeaderView = headView
tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 0.01))
tableView.register(cellWithClass: YHLifeItemTableViewCell.self)
return tableView
}()
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.top.equalTo(44)
}
tableView.es.addYHPullToRefresh {
self.loadData()
}
view.addSubview(noDataView)
noDataView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.centerY.equalToSuperview()
make.width.equalTo(KScreenWidth)
make.height.equalTo(150)
}
}
}
extension YHSelectViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.viewModel.detailModel.products.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHLifeItemTableViewCell.self)
cell.dataSource = self.viewModel.detailModel.products[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 124
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
}
//
// YHSelectLookView.swift
// galaxy
//
// Created by EDY on 2024/11/26.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHSelectLookView: UIView {
static let viewH : CGFloat = 92.0
typealias Block = (Int) -> ()
var block: Block?
var items: [String] = ["11", "2"] {
didSet {
self.myCollectView.reloadData()
}
}
var type: Int = 0
var selectIndex = 0 {
didSet {
self.myCollectView.reloadData()
}
}
lazy var myCollectView = {
// 设置布局方向
let flowLayout = UICollectionViewFlowLayout()
flowLayout.itemSize = CGSize(width: 60, height: 76)
flowLayout.minimumInteritemSpacing = 12.0
flowLayout.minimumLineSpacing = 12.0
flowLayout.scrollDirection = .horizontal
let collectinoView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectinoView.backgroundColor = .white
collectinoView.contentInset = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20)
collectinoView.register(YHSelectLookViewCell.self, forCellWithReuseIdentifier:YHSelectLookViewCell.cellReuseIdentifier)
collectinoView.delegate = self
collectinoView.dataSource = self
collectinoView.translatesAutoresizingMaskIntoConstraints = false
collectinoView.alwaysBounceVertical = true
collectinoView.bounces = false
collectinoView.showsHorizontalScrollIndicator = false
collectinoView.showsVerticalScrollIndicator = false
return collectinoView
}()
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
setUpView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setUpView() {
backgroundColor = .white
addSubview(myCollectView)
myCollectView.snp.makeConstraints { make in
make.top.left.right.bottom.equalToSuperview()
}
// self.myCollectView.es.addInfiniteScrolling {
// self.loadFakeData()
// }
}
}
extension YHSelectLookView: UICollectionViewDelegate, UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHSelectLookViewCell.cellReuseIdentifier, for: indexPath) as! YHSelectLookViewCell
cell.dataSource = items[indexPath.row]
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
selectIndex = indexPath.row
collectionView.reloadData()
if let block = block {
block(indexPath.row)
}
print("index is \(indexPath.row)")
}
}
class YHSelectLookViewCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHSelectLookViewCell"
lazy var headIamge: UIImageView = {
let image = UIImageView()
image.image = UIImage(named: "home_look_head")
return image
}()
var dataSource: String? {
didSet {
updataAllSubViews()
}
}
lazy var descripeLable:UILabel = {
let label = UILabel()
label.text = "高才专家"
label.textColor = UIColor(hex: 0x6d788a)
label.font = UIFont.PFSC_R(ofSize: 13)
label.textAlignment = .center
return label
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
private func setupUI() {
contentView.addSubview(headIamge)
headIamge.snp.makeConstraints { make in
make.top.centerX.equalToSuperview()
make.width.height.equalTo(54)
}
contentView.addSubview(descripeLable)
descripeLable.snp.makeConstraints { make in
make.top.left.right.bottom.equalToSuperview()
}
}
func updataAllSubViews() {
guard let dataSource = dataSource else { return }
descripeLable.text = dataSource
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Frame 2033196601@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Frame 2033196601@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "home_look_flag@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "home_look_flag@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "home_look_head@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "home_look_head@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment