Commit 77005f9f authored by David黄金龙's avatar David黄金龙

Merge branch 'youhua-dev' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into youhua-dev

* 'youhua-dev' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  预约银河湾UI
  香港生活主UI
  邀请有礼
  // 首页身份
parents da73d624 5c5ffb0d
......@@ -294,4 +294,4 @@ DEPENDENCIES
fastlane-plugin-versioning
BUNDLED WITH
2.5.9
2.5.14
......@@ -41,7 +41,7 @@ platform :ios do
# 显示git当前分支最新submit id
sh "git rev-parse HEAD"
# 更新pod第三方库
# cocoapods(use_bundle_exec: true)
cocoapods(use_bundle_exec: true)
# 先清空打包路径下的文件
sh "pwd"
......
This diff is collapsed.
......@@ -232,11 +232,11 @@ extension YHHomeHoldViewPageViewController {
arrItemVCs.append(vc)
} else if i == 1 {
//身份
let vc = YHServiceListViewController()
let vc = YHHomeIdentityViewController()
arrItemVCs.append(vc)
} else if i == 2 {
//生活
let vc = YHServerHKLifeViewController()
let vc = YHLifeViewController()
arrItemVCs.append(vc)
} else if i == 3 {
//资讯
......
......@@ -11,6 +11,11 @@ import JXSegmentedView
class YHHomeIdentityViewController: YHBaseViewController {
var imgs:[UIImage?] = [UIImage(named: "identity_talent_1"),
UIImage(named: "identity_talent_2"),
UIImage(named: "identity_talent_3"),
UIImage(named: "identity_talent_4")]
lazy var subTabBar: YHIdentityTabBar = {
let items = [YHIdentityTabBarItem(title: "优才", type: .talent),
YHIdentityTabBarItem(title: "高才", type: .high),
......@@ -20,6 +25,11 @@ class YHHomeIdentityViewController: YHBaseViewController {
bar.selectBlock = {
[weak self] type in
guard let self = self else { return }
self.tableView.reloadData()
if self.segmentedView.selectedIndex != 0 {
self.segmentedView.defaultSelectedIndex = 0
self.segmentedView.reloadDataWithoutListContainer()
}
}
return bar
}()
......@@ -40,24 +50,28 @@ class YHHomeIdentityViewController: YHBaseViewController {
lazy var headerView:UIView = {
let view = UIView(frame: CGRectMake(0, 0, KScreenWidth, KScreenWidth+44.0+8.0))
view.backgroundColor = .white
let imgView = UIImageView()
imgView.backgroundColor = .red
view.addSubview(imgView)
imgView.snp.makeConstraints { make in
view.addSubview(self.headImgView)
headImgView.snp.makeConstraints { make in
make.left.top.right.equalToSuperview()
make.height.equalTo(imgView.snp.width)
make.height.equalTo(headImgView.snp.width)
}
self.segmentedView.dataSource = segmentedDataSource
view.addSubview(self.segmentedView)
segmentedView.snp.makeConstraints { make in
make.left.equalTo(20)
make.right.equalTo(-20)
make.left.equalTo(0)
make.right.equalTo(0)
make.height.equalTo(44)
make.top.equalTo(imgView.snp.bottom).offset(8.0)
make.top.equalTo(headImgView.snp.bottom).offset(8.0)
}
return view
}()
lazy var headImgView: UIImageView = {
let imgView = UIImageView()
imgView.image = UIImage(named: "identity_header_1")
return imgView
}()
lazy var segmentedView : JXSegmentedView = {
let segmentedView = JXSegmentedView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 44))
segmentedView.delegate = self
......@@ -72,6 +86,9 @@ class YHHomeIdentityViewController: YHBaseViewController {
return segmentedView
}()
static let tabWidth = 64.0
static let tabGap = (KScreenWidth-20.0*2-tabWidth*4.0)/3.0
lazy var segmentedDataSource: JXSegmentedTitleDataSource = {
let dataSource = JXSegmentedTitleDataSource()
dataSource.titles = ["项目介绍", "申请条件", "申请流程", "费用详情"]
......@@ -79,53 +96,62 @@ class YHHomeIdentityViewController: YHBaseViewController {
dataSource.titleNormalColor = UIColor.init(hex: 0x94A3B8)
dataSource.titleSelectedFont = UIFont.PFSC_M(ofSize: 16)
dataSource.titleSelectedColor = .mainTextColor
dataSource.itemWidth = JXSegmentedViewAutomaticDimension
dataSource.itemSpacing = 22.0
dataSource.itemWidth = Self.tabWidth
dataSource.itemSpacing = Self.tabGap
dataSource.itemWidthSelectedZoomScale = 1.0
return dataSource
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
createUI()
}
func createUI() {
gk_navigationBar.isHidden = true
self.view.backgroundColor = .white
self.view.addSubview(self.tableView)
self.view.addSubview(self.subTabBar)
self.subTabBar.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.top.equalToSuperview()
make.left.equalTo(20)
make.right.equalTo(-20)
make.height.equalTo(44)
}
self.tableView.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+44)
make.top.equalTo(self.subTabBar.snp.bottom)
make.left.right.bottom.equalToSuperview()
}
let left = 20.0-Self.tabGap
self.segmentedView.snp.remakeConstraints { make in
make.left.equalTo(left)
make.right.equalTo(-left)
make.height.equalTo(44)
make.top.equalTo(headImgView.snp.bottom).offset(8.0)
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
printLog("offset: \(scrollView.contentOffset.y)")
if scrollView.contentOffset.y <= self.headerView.height {
if self.segmentedView.selectedIndex != 0 {
self.segmentedView.defaultSelectedIndex = 0
self.segmentedView.reloadDataWithoutListContainer()
}
}
}
}
extension YHHomeIdentityViewController: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
let sectionRect = self.tableView.rectForHeader(inSection: index)
printLog("sectionRect:\(sectionRect)")
self.tableView.scrollToRow(at: IndexPath(row: 0, section: index), at: .top, animated: true)
// DispatchQueue.main.asyncAfter(deadline: .now() + 0.2, execute: {
// var gap = 0.0
// // 此处处理内容总长度不够滚到相应tab的差距
// let sectionRect = self.tableView.rectForHeader(inSection: index)
// if self.tableView.contentOffset.y >= 0.0, sectionRect.origin.y > self.tableView.contentOffset.y {
// gap = sectionRect.origin.y - self.tableView.contentOffset.y
// }
// let offsetY = self.tableView.contentOffset.y + gap
// self.tableView.setContentOffset(CGPointMake(0, offsetY+4), animated: true)
// })
self.tableView.scrollToRow(at: IndexPath(row: index, section: 0), at: .top, animated: true)
}
}
extension YHHomeIdentityViewController: JXSegmentedListContainerViewListDelegate {
func listView() -> UIView {
return view
}
}
......@@ -133,19 +159,25 @@ extension YHHomeIdentityViewController: UITableViewDataSource, UITableViewDelega
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHHomeIdentityCell.cellReuseIdentifier, for: indexPath) as! YHHomeIdentityCell
if 0 <= indexPath.row, indexPath.row < self.imgs.count {
if let img = self.imgs[indexPath.row] {
cell.image = img
}
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 300
}
func numberOfSections(in tableView: UITableView) -> Int {
return 4
if 0 <= indexPath.row, indexPath.row < self.imgs.count {
if let img = self.imgs[indexPath.row] {
return (img.size.height/img.size.width) * KScreenWidth
}
}
return 0.0
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
return self.imgs.count
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
......
//
// YHInvatationShareViewController.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import CoreImage
import Vision
import Photos
class YHInvatationShareViewController: YHBaseViewController {
var centerImageView: UIImageView!
var imageView: UIImageView!
var bottomView: UIView!
var leftButton: YHShareButton!
var centerButton: YHShareButton!
var rightButton: YHShareButton!
override func viewDidLoad() {
super.viewDidLoad()
setView()
loadData()
}
}
extension YHInvatationShareViewController {
func getData() {
}
func updateDataSource() {
}
func setView() {
view.backgroundColor = .contentBkgColor
gk_navTitle = "分享活动"
centerImageView = {
let view = UIImageView()
view.image = UIImage(named: "invitation_with_gifts_share_detail")
return view
}()
view.addSubview(centerImageView)
centerImageView.snp.makeConstraints { make in
make.center.equalToSuperview()
make.height.equalTo(480)
make.width.equalTo(270)
}
imageView = {
let view = UIImageView()
view.image = UIImage(named: "invitation_with_gifts_share_detail")
return view
}()
centerImageView.addSubview(imageView)
imageView.snp.makeConstraints { make in
make.bottom.equalTo(-36)
make.right.equalTo(-22)
make.width.height.equalTo(56)
}
bottomView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
view.addSubview(bottomView)
bottomView.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.height.equalTo(148)
}
leftButton = {
let button = YHShareButton()
button.setContent("invitation_with_gifts_share_left", "保存海报")
button.addTarget(self, action: #selector(saveBtnClick), for: .touchUpInside)
return button
}()
bottomView.addSubview(leftButton)
leftButton.snp.makeConstraints { make in
make.top.equalTo(20)
make.left.equalTo(42)
make.height.equalTo(74)
make.width.equalTo(52)
}
centerButton = {
let button = YHShareButton()
button.setContent("invitation_with_gifts_share_center", "微信好友")
button.addTarget(self, action: #selector(wxClick), for: .touchUpInside)
return button
}()
bottomView.addSubview(centerButton)
centerButton.snp.makeConstraints { make in
make.top.equalTo(20)
make.centerX.equalToSuperview()
make.height.equalTo(74)
make.width.equalTo(52)
}
rightButton = {
let button = YHShareButton()
button.setContent("invitation_with_gifts_share_right", "朋友圈")
button.addTarget(self, action: #selector(peopleClick), for: .touchUpInside)
return button
}()
bottomView.addSubview(rightButton)
rightButton.snp.makeConstraints { make in
make.top.equalTo(20)
make.right.equalTo(-42)
make.height.equalTo(74)
make.width.equalTo(52)
}
}
func loadData() {
if let qrCode = generateQRCode(from: "https://www.baidu.com") {
// 可以将qrCode设置为UIImageView的image属性来显示二维码
imageView.image = qrCode
}
}
@objc func saveBtnClick() {
guard let combinedImage = combinedImageFrom(imageView: centerImageView) else { return }
saveImageToPhotosAlbum(image: combinedImage)
}
func saveImageToPhotosAlbum(image: UIImage) {
// 确保应用有权访问相册
PHPhotoLibrary.requestAuthorization { status in
if status == .authorized {
// 保存图片到相册
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
DispatchQueue.main.async {
YHHUD.flash(message: "保存成功")
}
}
}
}
@objc func wxClick() {
guard let combinedImage = combinedImageFrom(imageView: centerImageView) else { return }
YHShareManager.shared.sendImageContent(combinedImage)
}
@objc func peopleClick() {
guard let combinedImage = combinedImageFrom(imageView: centerImageView) else { return }
YHShareManager.shared.sendImageContent(combinedImage, WXSceneTimeline)
}
func generateQRCode(from string: String) -> UIImage? {
guard let data = string.data(using: .ascii, allowLossyConversion: false) else {
return nil
}
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(data, forKey: "inputMessage")
guard let outputImage = filter?.outputImage else {
return nil
}
let context = CIContext()
if let cgImage = context.createCGImage(outputImage, from: outputImage.extent) {
return UIImage(cgImage: cgImage)
}
return nil
}
func combinedImageFrom(imageView: UIImageView) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false, 0.0)
// 首先绘制 imageView 的内容
imageView.layer.render(in: UIGraphicsGetCurrentContext()!)
// 获取合成后的图像
let combinedImage = UIGraphicsGetImageFromCurrentImageContext()
// 结束绘图上下文
UIGraphicsEndImageContext()
return combinedImage
}
}
......@@ -79,6 +79,11 @@ extension YHInvitationWithGiftsViewController {
func setView() {
view.backgroundColor = .contentBkgColor
let rightButtonItem = UIBarButtonItem(title: "规则", style: .plain, target: self, action: #selector(lookDeatil))
rightButtonItem.setTitleTextAttributes([.foregroundColor: UIColor.mainTextColor], for: .normal)
rightButtonItem.setTitleTextAttributes([.foregroundColor: UIColor.mainTextColor], for: .highlighted)
gk_navRightBarButtonItem = rightButtonItem
gk_navItemRightSpace = 16
tableView = {
let tableView = UITableView(frame: .zero, style: .grouped)
tableView.contentInsetAdjustmentBehavior = .never
......@@ -102,6 +107,15 @@ extension YHInvitationWithGiftsViewController {
bottomViewForShare = {
let view = YHInvitationWithGiftsShareBottomView()
view.block = { tag in
let view = YHInvitationWithGiftsShareView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.block = { tag in
let vc = YHInvatationShareViewController()
self.navigationController?.pushViewController(vc)
}
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
return view
}()
view.addSubview(bottomViewForShare)
......@@ -111,6 +125,11 @@ extension YHInvitationWithGiftsViewController {
}
}
@objc func lookDeatil() {
let view = YHInvitationWithGiftsDetailView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
func loadData() {
......
//
// YHInvitationWithGiftsDetailView.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHInvitationWithGiftsDetailView: UIView {
var centerView: UIView!
var topView: UIView!
var topContentView: UIView!
var topImageView: UIImageView!
var bgImageView: UIImageView!
var scrollView: UIScrollView!
var titleLabel: UILabel!
var titleImage: UIImageView!
var closeButton: UIButton!
var messageLabel: UILabel!
var messageImage: UIImageView!
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor(white: 0.5, alpha: 0.1)
// let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
// tap.delegate = self
// addGestureRecognizer(tap)
setView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setView() {
backgroundColor = UIColor(hex: 0x000000, alpha: 0.5)
centerView = {
let view = UIView()
view.backgroundColor = .clear
return view
}()
addSubview(centerView)
centerView.snp.makeConstraints { make in
make.center.equalToSuperview()
make.height.equalTo(562)
make.width.equalTo(311)
}
topView = {
let view = UIView()
view.backgroundColor = .clear
return view
}()
centerView.addSubview(topView)
topView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(518)
}
topContentView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
topView.addSubview(topContentView)
topContentView.snp.makeConstraints { make in
make.top.equalTo(6)
make.left.right.bottom.equalToSuperview()
}
topImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "invitation_with_gifts_detail_top")
return imageView
}()
topView.addSubview(topImageView)
topImageView.snp.makeConstraints { make in
make.width.equalTo(157)
make.centerX.equalToSuperview()
make.height.equalTo(37)
make.top.equalToSuperview()
}
scrollView = {
let view = UIScrollView()
view.bounds = CGRect(x: 0, y: 0, width: 287, height: 1252)
// 去除弹簧效果
view.bounces = false
// 去除滑动指示器
view.showsHorizontalScrollIndicator = false
view.showsVerticalScrollIndicator = false
return view
}()
topContentView.addSubview(scrollView)
scrollView.snp.makeConstraints { make in
make.right.bottom.equalTo(-12)
make.top.left.equalTo(12)
}
bgImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "invitation_with_gifts_detail_bg")
return imageView
}()
scrollView.addSubview(bgImageView)
bgImageView.snp.makeConstraints { make in
make.right.bottom.left.top.equalToSuperview()
}
titleLabel = {
let label = UILabel()
label.text = "规则说明"
label.font = UIFont.PFSC_M(ofSize: 15)
label.textColor = UIColor.mainTextColor
return label
}()
scrollView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalTo(14)
make.right.equalTo(-14)
make.height.equalTo(21)
make.top.equalTo(38)
}
titleImage = {
let imageView = UIImageView()
imageView.image = UIImage(named: "invitation_with_gifts_detail_title")
return imageView
}()
scrollView.addSubview(titleImage)
titleImage.snp.makeConstraints { make in
make.width.equalTo(259)
make.centerX.equalToSuperview()
make.height.equalTo(681)
make.top.equalTo(71)
}
messageLabel = {
let label = UILabel()
label.text = "积分入账及提现"
label.font = UIFont.PFSC_M(ofSize: 15)
label.textColor = UIColor.mainTextColor
return label
}()
scrollView.addSubview(messageLabel)
messageLabel.snp.makeConstraints { make in
make.left.equalTo(14)
make.right.equalTo(-14)
make.height.equalTo(21)
make.top.equalTo(782)
}
messageImage = {
let imageView = UIImageView()
imageView.image = UIImage(named: "invitation_with_gifts_detail_message")
return imageView
}()
scrollView.addSubview(messageImage)
messageImage.snp.makeConstraints { make in
make.width.equalTo(259)
make.centerX.equalToSuperview()
make.height.equalTo(426)
make.top.equalTo(814)
}
closeButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage(named: "invitation_with_gifts_detail_close"), for: .normal)
button.addTarget(self, action: #selector(dismiss), for: .touchUpInside)
return button
}()
centerView.addSubview(closeButton)
closeButton.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.width.height.equalTo(24)
make.bottom.equalToSuperview()
}
}
@objc private func handleTap(_ sender: AnyObject?) {
print("处理点击手势")
dismiss()
}
@objc func dismiss() {
removeFromSuperview()
}
}
extension YHInvitationWithGiftsDetailView: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer:UIGestureRecognizer, shouldReceive touch:UITouch) -> Bool {
if touch.view == self {
return true
}
return false
}
}
//
// YHInvitationWithGiftsShareView.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHInvitationWithGiftsShareView: UIView {
typealias Block = (Int) -> ()
var block: Block?
var centerView: UIView!
var topImageView: UIImageView!
var bgImageView: UIImageView!
var closeButton: UIButton!
var shareButton: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor(white: 0.5, alpha: 0.1)
// let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
// tap.delegate = self
// addGestureRecognizer(tap)
setView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setView() {
backgroundColor = UIColor(hex: 0x000000, alpha: 0.5)
centerView = {
let view = UIView()
view.backgroundColor = .clear
return view
}()
addSubview(centerView)
centerView.snp.makeConstraints { make in
make.center.equalToSuperview()
make.height.equalTo(337)
make.width.equalTo(303)
}
topImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "invitation_with_gifts_share_bg")
return imageView
}()
centerView.addSubview(topImageView)
topImageView.snp.makeConstraints { make in
make.center.equalToSuperview()
make.height.equalTo(337)
make.width.equalTo(303)
}
closeButton = {
let button = UIButton(type: .custom)
button.setTitleColor(UIColor.white, for: .normal)
button.setTitle("遗憾放弃", for: .normal)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 15)
button.addTarget(self, action: #selector(dismiss), for: .touchUpInside)
return button
}()
centerView.addSubview(closeButton)
closeButton.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.height.equalTo(19)
make.width.equalTo(60)
make.bottom.equalTo(-18)
}
shareButton = {
let button = UIButton(type: .custom)
button.addTarget(self, action: #selector(share), for: .touchUpInside)
return button
}()
centerView.addSubview(shareButton)
shareButton.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.height.equalTo(48)
make.width.equalTo(259)
make.bottom.equalTo(-54)
}
}
@objc private func handleTap(_ sender: AnyObject?) {
print("处理点击手势")
dismiss()
}
@objc func dismiss() {
removeFromSuperview()
}
@objc func share() {
removeFromSuperview()
block?(0)
}
}
extension YHInvitationWithGiftsShareView: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer:UIGestureRecognizer, shouldReceive touch:UITouch) -> Bool {
if touch.view == self {
return true
}
return false
}
}
//
// YHLifeViewController.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import JXSegmentedView
class YHLifeViewController: YHBaseViewController {
var sectionView: YHLifeSectionView!
var tableView: UITableView!
var headView = YHLifeHeadView()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadData()
}
}
extension YHLifeViewController {
func loadData() {
}
func setupUI() {
gk_navBarAlpha = 0
gk_navigationBar.isHidden = true
view.backgroundColor = .white
sectionView = {
let view = YHLifeSectionView()
view.items = ["创业", "教育", "永居"]
view.block = {[weak self] model in
}
return view
}()
view.addSubview(sectionView)
sectionView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(44)
}
headView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenWidth + 16)
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)
}
}
}
extension YHLifeViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHLifeItemTableViewCell.self)
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()
}
}
extension YHLifeViewController: JXSegmentedListContainerViewListDelegate {
func listView() -> UIView {
return view
}
}
//
// YHLifeHeadView.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHLifeHeadView: UIView {
var imageView = UIImageView()
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
setUpView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setUpView() {
addSubview(imageView)
imageView.backgroundColor = .red
imageView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(8)
make.bottom.equalTo(-8)
}
}
}
//
// YHLifeItemTableViewCell.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHLifeItemTableViewCell: UITableViewCell {
var centerImageView: UIImageView!
var titleLabel: UILabel!
var subTitleLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
selectionStyle = .none
setupUI()
}
func setupUI() {
self.backgroundColor = .white
centerImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "invitation_with_gifts_first")
return imageView
}()
contentView.addSubview(centerImageView)
centerImageView.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalTo(12)
make.height.width.equalTo(100)
}
titleLabel = {
let view = UILabel()
view.text = "注册公司"
view.font = UIFont.PFSC_M(ofSize: 17)
view.textColor = UIColor.mainTextColor
return view
}()
contentView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalTo(144)
make.right.equalTo(-20)
make.top.equalTo(20)
make.height.equalTo(24)
}
subTitleLabel = {
let view = UILabel()
view.text = "长期稳定银行渠道,可选择的银行多"
view.font = UIFont.PFSC_M(ofSize: 14)
view.textColor = UIColor.mainTextColor50
return view
}()
contentView.addSubview(subTitleLabel)
subTitleLabel.snp.makeConstraints { make in
make.left.equalTo(144)
make.right.equalTo(-20)
make.top.equalTo(52)
}
}
}
//
// YHLifeSectionView.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHLifeSectionView: UIView {
static let viewH : CGFloat = 44.0
typealias Block = (Int) -> ()
var block: Block?
var items: [String] = [] {
didSet {
self.myCollectView.reloadData()
}
}
var type: Int = 0
var selectIndex = 0
lazy var myCollectView = {
// 设置布局方向
let flowLayout = UICollectionViewFlowLayout()
flowLayout.itemSize = CGSize(width: 50, height: 26)
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(YHLifeSectionCollectionViewCell.self, forCellWithReuseIdentifier:YHLifeSectionCollectionViewCell.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 YHLifeSectionView: 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: YHLifeSectionCollectionViewCell.cellReuseIdentifier, for: indexPath) as! YHLifeSectionCollectionViewCell
cell.dataSource = items[indexPath.row]
if indexPath.row == selectIndex {
cell.setSelectedStyle()
} else {
cell.setDeSelectedStyle()
}
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 YHLifeSectionCollectionViewCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHLifeSectionCollectionViewCell"
func setSelectedStyle() {
descripeLable.textColor = UIColor.mainTextColor
contentView.layer.borderWidth = 1
contentView.layer.borderColor = UIColor.mainTextColor.cgColor
}
func setDeSelectedStyle() {
descripeLable.textColor = UIColor.mainTextColor50
contentView.layer.borderWidth = 1
contentView.layer.borderColor = UIColor.mainTextColor18.cgColor
}
var dataSource: String? {
didSet {
updataAllSubViews()
}
}
lazy var descripeLable:UILabel = {
let label = UILabel()
label.text = "赴港"
label.textColor = UIColor(hex: 0x94a3bb)
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(descripeLable)
descripeLable.snp.makeConstraints { make in
make.top.left.right.bottom.equalToSuperview()
}
}
func updataAllSubViews() {
guard let dataSource = dataSource else { return }
descripeLable.text = dataSource
}
}
......@@ -11,6 +11,17 @@ import UIKit
class YHHomeIdentityCell: UITableViewCell {
static let cellReuseIdentifier = "YHHomeIdentityCell"
var image:UIImage? = UIImage(named: "global_default_image") {
didSet {
imgView.image = image
}
}
lazy var imgView:UIImageView = {
let view = UIImageView(image: UIImage(named: "global_default_image"))
view.clipsToBounds = true
return view
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
......@@ -22,11 +33,9 @@ class YHHomeIdentityCell: UITableViewCell {
}
func setupUI() {
let randomRed = CGFloat.random(in: 0...1)
let randomGreen = CGFloat.random(in: 0...1)
let randomBlue = CGFloat.random(in: 0...1)
let randomColor = UIColor(displayP3Red: randomRed, green: randomGreen, blue: randomBlue, alpha: 1.0)
self.contentView.backgroundColor = randomColor
self.contentView.addSubview(self.imgView)
self.imgView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
}
}
......@@ -51,12 +51,49 @@ class YHClipperButton: UIButton {
bottomTitleLabel.text = title
topImageView.image = UIImage(named: image)
}
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
}
class YHShareButton: UIButton {
var topImageView: UIImageView!
var bottomTitleLabel: UILabel!
override init(frame: CGRect) {
super.init(frame: frame)
setView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setView() {
topImageView = {
let view = UIImageView()
return view
}()
addSubview(topImageView)
topImageView.snp.makeConstraints { make in
make.top.centerX.equalToSuperview()
make.width.height.equalTo(48)
}
bottomTitleLabel = {
let label = UILabel()
label.font = UIFont.PFSC_B(ofSize: 13)
label.textAlignment = .center
label.textColor = UIColor(hex: 0x666666)
return label
}()
addSubview(bottomTitleLabel)
bottomTitleLabel.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(18)
}
}
func setContent(_ image: String, _ title: String) {
bottomTitleLabel.text = title
topImageView.image = UIImage(named: image)
}
}
//
// YHDetailViewController.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHDetailViewController: YHBaseViewController {
var tableView: UITableView!
lazy var headView : YHHeadView = {
let headView = YHHeadView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 581))
return headView
}()
override func viewDidLoad() {
super.viewDidLoad()
setView()
loadData()
}
}
extension YHDetailViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 2
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHListTableViewCell.self)
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 243
}
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()
}
}
extension YHDetailViewController {
func getData() {
}
func updateDataSource() {
}
func setView() {
view.backgroundColor = .white
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: YHListTableViewCell.self)
return tableView
}()
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.top.bottom.left.right.equalToSuperview()
}
}
func loadData() {
}
}
//
// YHListViewController.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHListViewController: YHBaseViewController {
var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
setView()
loadData()
}
}
extension YHListViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHListTableViewCell.self)
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 204
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 6
}
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) {
let vc = YHDetailViewController()
self.navigationController?.pushViewController(vc)
}
}
extension YHListViewController {
func getData() {
}
func updateDataSource() {
}
func setView() {
gk_navTitle = "关于银河湾"
view.backgroundColor = .white
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.register(cellWithClass: YHListTableViewCell.self)
return tableView
}()
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
}
}
func loadData() {
}
}
class YHListTableViewCell: UITableViewCell {
var centerImageView: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
selectionStyle = .none
setupUI()
}
func setupUI() {
self.backgroundColor = .white
centerImageView = {
let imageView = UIImageView()
imageView.isUserInteractionEnabled = true
imageView.image = UIImage(named: "invitation_with_gifts_first")
imageView.contentMode = .scaleAspectFill
return imageView
}()
contentView.addSubview(centerImageView)
centerImageView.snp.makeConstraints { make in
make.top.equalTo(10)
make.left.equalTo(20)
make.right.equalTo(-20)
make.bottom.equalTo(-10)
}
}
}
//
// YHHeadView.swift
// galaxy
//
// Created by EDY on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHHeadView: UIView {
var imageView = UIImageView()
var titleLabel: UILabel!
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
setUpView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setUpView() {
addSubview(imageView)
imageView.backgroundColor = .red
imageView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.bottom.equalTo(-8)
}
titleLabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize: 21)
label.text = "内景展示"
return label
}()
addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalTo(20)
make.top.equalTo(imageView.snp.bottom).offset(32)
make.height.equalTo(29)
}
}
}
......@@ -280,12 +280,6 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
return
}
// if true {
// let vc = YHHomeInformationViewController()
// self.navigationController?.pushViewController(vc)
// return
// }
let item: PersonalModuleItem = items[indexPath.row]
switch item.type {
case .myCard://我的名片
......@@ -337,9 +331,7 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
self.navigationController?.pushViewController(vc)
case .appointGalaxyBay://预约银河湾
printLog("预约银河湾")
let vc = YHHomeWebViewController()
vc.vcTitle = "预约银河湾"
vc.url = "https://upload.cdn.galaxy-immi.com/sell/product/images/page-1686138671996.png"
let vc = YHListViewController()
self.navigationController?.pushViewController(vc)
case .myActivity:
printLog("我的活动")
......
......@@ -94,7 +94,7 @@ extension YHShareManager {
})
}
func sendTextContect(_ text: String) {
func sendTextContect(_ text: String, _ scene: WXScene = WXSceneSession) {
guard WXApi.isWXAppInstalled() else {
YHHUD.flash(message: "拉起微信失败")
return
......@@ -110,7 +110,7 @@ extension YHShareManager {
}
}
func sendLinkContent(_ title: String = "", _ description: String = "", _ image: UIImage = UIImage(), link: String) {
func sendLinkContent(_ title: String = "", _ description: String = "", _ image: UIImage = UIImage(), link: String, _ scene: WXScene = WXSceneSession) {
guard WXApi.isWXAppInstalled() else {
YHHUD.flash(message: "拉起微信失败")
return
......@@ -144,7 +144,7 @@ extension YHShareManager {
}
}
func sendVideoContent(_ title: String = "", _ description: String = "", _ image: UIImage = UIImage(), link: String) {
func sendVideoContent(_ title: String = "", _ description: String = "", _ image: UIImage = UIImage(), link: String, _ scene: WXScene = WXSceneSession) {
guard WXApi.isWXAppInstalled() else {
YHHUD.flash(message: "拉起微信失败")
return
......@@ -175,7 +175,7 @@ extension YHShareManager {
}
}
func sendImageContent(_ image: UIImage) {
func sendImageContent(_ image: UIImage, _ scene: WXScene = WXSceneSession) {
guard WXApi.isWXAppInstalled() else {
YHHUD.flash(message: "拉起微信失败")
return
......
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "头图@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "头图@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "留学1@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "留学1@3x.jpg",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "留学2@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "留学2@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "留学3@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "留学3@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "留学4@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "留学4@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_detail_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_detail_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_detail_close@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_detail_close@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_detail_message@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_detail_message@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_detail_share@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_detail_share@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_detail_title@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_detail_title@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_detail_top@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_detail_top@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_share_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_share_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_share_bottom@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_share_bottom@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_share_center@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_share_center.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_share_detail@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_share_detail@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "编组 6@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "编组 6@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_share_right@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_share_right.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "invitation_with_gifts_share_top@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "invitation_with_gifts_share_top@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