Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
0c18a739
Commit
0c18a739
authored
Jun 25, 2024
by
David黄金龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
活动详情接口
parent
5c08655b
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
394 additions
and
118 deletions
+394
-118
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+4
-0
YHActivityDetailViewController.swift
...y(社区)/Activity(活动)/C/YHActivityDetailViewController.swift
+48
-72
YHActivityListViewController.swift
...ity(社区)/Activity(活动)/C/YHActivityListViewController.swift
+4
-2
YHActivityDetailModel.swift
.../Community(社区)/Activity(活动)/M/YHActivityDetailModel.swift
+26
-0
YHActivityDetailBottomView.swift
...unity(社区)/Activity(活动)/V/YHActivityDetailBottomView.swift
+20
-3
YHActivityDetailCell.swift
...s/Community(社区)/Activity(活动)/V/YHActivityDetailCell.swift
+106
-8
YHActivityDetailItemView.swift
...mmunity(社区)/Activity(活动)/V/YHActivityDetailItemView.swift
+79
-18
YHActivityTipsItemView.swift
...Community(社区)/Activity(活动)/V/YHActivityTipsItemView.swift
+16
-0
YHActivityTitleItemView.swift
...ommunity(社区)/Activity(活动)/V/YHActivityTitleItemView.swift
+27
-12
YHActivityViewModel.swift
...s/Community(社区)/Activity(活动)/VM/YHActivityViewModel.swift
+37
-3
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+5
-0
Contents.json
...s/Activity/activity_detail_top_bkg.imageset/Contents.json
+22
-0
Rectangle 346241363@2x.png
...tivity_detail_top_bkg.imageset/Rectangle 346241363@2x.png
+0
-0
Rectangle 346241363@3x.png
...tivity_detail_top_bkg.imageset/Rectangle 346241363@3x.png
+0
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
0c18a739
...
...
@@ -374,6 +374,7 @@
A540342F2C2A606900E63A20
/* YHActivityListModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
;
};
A54034312C2A612100E63A20
/* YHActivityModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A54034302C2A612100E63A20
/* YHActivityModel.swift */
;
};
A54034342C2A621000E63A20
/* YHActivityViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A54034332C2A621000E63A20
/* YHActivityViewModel.swift */
;
};
A54034362C2A8DE200E63A20
/* YHActivityDetailModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A54034352C2A8DE200E63A20
/* YHActivityDetailModel.swift */
;
};
A554A5122B99715000EA5973
/* YHConstantArrayData.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A5112B99715000EA5973
/* YHConstantArrayData.swift */
;
};
A5551FFE2B4C26CE00510980
/* YHBaseViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
;
};
A5573ED22B317BFF00D98EC0
/* AppDelegate.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5573ED12B317BFF00D98EC0
/* AppDelegate.swift */
;
};
...
...
@@ -939,6 +940,7 @@
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityListModel.swift
;
sourceTree
=
"<group>"
;
};
A54034302C2A612100E63A20
/* YHActivityModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityModel.swift
;
sourceTree
=
"<group>"
;
};
A54034332C2A621000E63A20
/* YHActivityViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityViewModel.swift
;
sourceTree
=
"<group>"
;
};
A54034352C2A8DE200E63A20
/* YHActivityDetailModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityDetailModel.swift
;
sourceTree
=
"<group>"
;
};
A554A5112B99715000EA5973
/* YHConstantArrayData.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHConstantArrayData.swift
;
sourceTree
=
"<group>"
;
};
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
A5573ECE2B317BFF00D98EC0
/* galaxy.app */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.application
;
includeInIndex
=
0
;
path
=
galaxy.app
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
...
...
@@ -2312,6 +2314,7 @@
children
=
(
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
,
A54034302C2A612100E63A20
/* YHActivityModel.swift */
,
A54034352C2A8DE200E63A20
/* YHActivityDetailModel.swift */
,
);
path
=
M
;
sourceTree
=
"<group>"
;
...
...
@@ -3425,6 +3428,7 @@
044D0C1A2C22B40B00C5CF5E
/* YHEditPersonalProfileViewController.swift in Sources */
,
048787D92BCF68530036E221
/* YHProgressView.swift in Sources */
,
045EEEEC2B9F171A0022A143
/* YHBrotherInfoVC.swift in Sources */
,
A54034362C2A8DE200E63A20
/* YHActivityDetailModel.swift in Sources */
,
0477E17A2BA41C7E00436346
/* YHCertificateModel.swift in Sources */
,
045EEF242B9F171A0022A143
/* YHStepView.swift in Sources */
,
044D0BF82C21572B00C5CF5E
/* YHAllowSettingTableViewCell.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/C/YHActivityDetailViewController.swift
View file @
0c18a739
...
...
@@ -9,6 +9,13 @@
import
UIKit
class
YHActivityDetailViewController
:
YHBaseViewController
{
var
activityId
:
String
=
""
lazy
var
viewModel
:
YHActivityViewModel
=
{
let
vm
=
YHActivityViewModel
()
return
vm
}()
lazy
var
tableView
:
UITableView
=
{
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
plain
)
tableView
.
showsVerticalScrollIndicator
=
false
...
...
@@ -27,16 +34,10 @@ class YHActivityDetailViewController: YHBaseViewController {
return
tableView
}()
// lazy var emptyDataTipsView: YHEmptyDataView = {
// let view = YHEmptyDataView.createView("暂无活动", kNoFriendsBgName)
// view.topMargin = 222
// view.isHidden = true
// return view
// }()
lazy
var
topView
:
UIView
=
{
let
view
=
UIView
()
lazy
var
topView
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
contentMode
=
.
scaleAspectFill
view
.
image
=
UIImage
(
named
:
"activity_detail_top_bkg"
)
return
view
}()
...
...
@@ -49,16 +50,23 @@ class YHActivityDetailViewController: YHBaseViewController {
// MARK: - 生命周期方法
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
loadData
()
}
}
extension
YHActivityDetailViewController
{
func
setupUI
()
{
gk_navigationBar
.
isHidden
=
false
gk_navigationBar
.
backgroundColor
=
.
clear
view
.
backgroundColor
=
.
red
//for test hjl
//1.
view
.
addSubview
(
tableView
)
view
.
addSubview
(
bottomView
)
view
.
addSubview
(
topView
)
//2.
tableView
.
contentInsetAdjustmentBehavior
=
.
never
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
top
.
equalToSuperview
()
...
...
@@ -66,59 +74,50 @@ class YHActivityDetailViewController: YHBaseViewController {
}
//3
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalToSuperview
()
make
.
height
.
equalTo
(
YHActivityDetailBottomView
.
viewH
)
}
bottomView
.
block
=
{
tag
in
YHApplyActivityAlert
.
showApplyActivityAlertView
{
(
tag
,
name
,
number
,
phone
)
in
if
tag
{
printLog
(
tag
)
printLog
(
name
)
printLog
(
number
)
printLog
(
phone
)
return
let
vc
=
YHApplyActivityResultViewController
()
self
.
navigationController
?
.
pushViewController
(
vc
)
// let vc = YHApplyActivityResultViewController()
// self.navigationController?.pushViewController(vc)
}
}
}
//2.
// addTopView()
// topView.backgroundColor = .red
//4.
topView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
114
)
}
}
func
loadData
()
{
if
!
activityId
.
isEmpty
{
viewModel
.
getActivityDetailData
(
activityID
:
activityId
)
{
success
,
error
in
if
success
{
//tableView
self
.
tableView
.
reloadData
()
//bottomView
self
.
bottomView
.
dataModel
=
self
.
viewModel
.
activityDetailModel
}
else
{
let
msg
=
error
?
.
errorMsg
??
"获取数据出错"
YHHUD
.
flash
(
message
:
msg
)
self
.
navigationController
?
.
popViewController
()
}
}
}
else
{
YHHUD
.
flash
(
message
:
"参数错误"
)
navigationController
?
.
popViewController
()
}
}
extension
YHActivityDetailViewController
{
func
addTopView
()
{
topView
.
frame
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
114
)
view
.
addSubview
(
topView
)
let
gradientLayer
=
CAGradientLayer
()
gradientLayer
.
frame
=
topView
.
bounds
// 定义渐变颜色,这里使用了两种颜色
let
colorTop
=
UIColor
.
red
//UIColor(hex: 0x000000, alpha: 1)
let
colorBottom
=
UIColor
.
blue
//UIColor(hex: 0x000000, alpha: 0)
// 设置颜色数组
gradientLayer
.
colors
=
[
colorTop
,
colorBottom
]
// 设置渐变方向,从上到下
gradientLayer
.
startPoint
=
CGPoint
(
x
:
0.5
,
y
:
0.0
)
gradientLayer
.
endPoint
=
CGPoint
(
x
:
0.5
,
y
:
1.0
)
// 添加渐变层到当前视图的layer
topView
.
layer
.
insertSublayer
(
gradientLayer
,
at
:
0
)
}
}
...
...
@@ -133,34 +132,11 @@ extension YHActivityDetailViewController: UITableViewDelegate, UITableViewDataSo
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHActivityDetailCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHActivityDetailCell
cell
.
sessionIndex
=
indexPath
.
section
cell
.
dataModel
=
viewModel
.
activityDetailModel
return
cell
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
UITableView
.
automaticDimension
}
// func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
//
// return 0.001
// }
//
// func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
//
// let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 0.001))
// view.backgroundColor = .clear
// return view
// }
//
// func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
// let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth-16.0*2, height: 0.001))
// view.backgroundColor = .clear
// return view
// }
//
// func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
// return 0.001
// }
}
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/C/YHActivityListViewController.swift
View file @
0c18a739
...
...
@@ -195,12 +195,14 @@ extension YHActivityListViewController: UITableViewDelegate, UITableViewDataSour
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
if
indexPath
.
section
<
viewModel
.
arrActivityListData
.
count
{
let
model
=
viewModel
.
arrActivityListData
[
indexPath
.
section
]
let
vc
=
YHActivityDetailViewController
()
vc
.
activityId
=
String
(
model
.
id
)
navigationController
?
.
pushViewController
(
vc
)
}
}
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
var
height
:
CGFloat
=
16.0
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/M/YHActivityDetailModel.swift
0 → 100644
View file @
0c18a739
//
// YHActivityDetailModel.swift
// galaxy
//
// Created by davidhuangA on 2024/6/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHActivityDetailModel
:
YHActivityModel
{
// var cover : String = "" //活动封面
// var name : String = "" //活动标题
// var tag : Int = 0 //活动标签枚举 1:V专享
// var beginTime : String = "" //开始时间戳
// var endTime : String = "" //结束时间戳
// var place : String = "" //活动地点
// var id : Int = 0 //活动ID
// var status : String = "" //活动的状态 1:立即报名 2:已报名 3:活动结束 4:已取消报名
var
guidance
:
String
=
""
//交通引导
var
introduce
:
String
=
""
//活动介绍
var
posters
:
[
String
]
=
[]
//活动海报
var
tips
:
String
=
""
//温馨提示
var
checkId
:
String
=
""
//活动行程ID 仅当活动状态为2(已报名)时才大于0
}
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityDetailBottomView.swift
View file @
0c18a739
...
...
@@ -11,6 +11,12 @@ import UIKit
class
YHActivityDetailBottomView
:
UIView
{
static
let
viewH
:
CGFloat
=
98.0
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
updateUI
()
}
}
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
YHBasicInfoFillBottomView
.
viewH
))
setupUI
()
...
...
@@ -21,12 +27,9 @@ class YHActivityDetailBottomView: UIView {
}
typealias
Block
=
(
Int
)
->
()
var
block
:
Block
?
var
saveButton
:
UIButton
!
var
nextButton
:
UIButton
!
private
lazy
var
bottomLine
:
UIView
=
{
let
view
=
UIView
()
...
...
@@ -37,6 +40,20 @@ class YHActivityDetailBottomView: UIView {
}
private
extension
YHActivityDetailBottomView
{
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
if
let
status
=
Int
(
model
.
status
)
{
isHidden
=
false
saveButton
.
setTitle
(
YHActivityStatus
.
init
(
rawValue
:
status
)?
.
activityTitle
,
for
:
.
normal
)
}
else
{
isHidden
=
true
}
}
func
setupUI
()
{
backgroundColor
=
.
white
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityDetailCell.swift
View file @
0c18a739
...
...
@@ -12,11 +12,9 @@ class YHActivityDetailCell: UITableViewCell {
static
let
cellReuseIdentifier
=
"YHActivityDetailCell"
var
sessionIndex
:
Int
=
0
{
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
// let tmp = sessionIndex % 3
// let name = "activity_cell_bkg_" + String(tmp)
// bkgImgV.image = UIImage(named: name)
updateUI
()
}
}
...
...
@@ -34,7 +32,6 @@ class YHActivityDetailCell: UITableViewCell {
lazy
var
topImgV
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
image
=
UIImage
(
named
:
"global_default_image"
)
// view.image = UIImage(named: "global_default_image")
view
.
contentMode
=
.
scaleAspectFill
view
.
clipsToBounds
=
true
return
view
...
...
@@ -59,15 +56,117 @@ class YHActivityDetailCell: UITableViewCell {
let
view
=
YHActivityTipsItemView
()
return
view
}()
override
func
layoutSubviews
()
{
super
.
layoutSubviews
()
topImgV
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
KScreenWidth
)
}
acitivityTitle
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
topImgV
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
}
var
lastView
:
UIView
=
acitivityTitle
if
acitivityDetail
.
isHidden
{
if
acitivityTips
.
isHidden
{
acitivityTitle
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
topImgV
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
else
{
acitivityTips
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
}
else
{
if
acitivityTips
.
isHidden
{
acitivityDetail
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
else
{
acitivityDetail
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
}
lastView
=
acitivityDetail
acitivityTips
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
}
}
}
extension
YHActivityDetailCell
{
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
if
let
url
=
URL
(
string
:
model
.
cover
)
{
topImgV
.
kf
.
setImage
(
with
:
url
,
placeholder
:
UIImage
(
named
:
"global_default_image"
))
}
else
{
topImgV
.
image
=
UIImage
(
named
:
"global_default_image"
)
}
acitivityTitle
.
dataModel
=
model
//acitivityDetail
if
model
.
introduce
.
isEmpty
&&
model
.
posters
.
count
<
1
{
//隐藏
acitivityDetail
.
isHidden
=
true
}
else
{
//展示
acitivityDetail
.
isHidden
=
false
acitivityDetail
.
dataModel
=
model
}
//acitivityTips
if
model
.
tips
.
isEmpty
{
acitivityTips
.
isHidden
=
true
}
else
{
acitivityTips
.
isHidden
=
false
acitivityTips
.
dataModel
=
model
}
layoutIfNeeded
()
}
func
setupUI
()
{
backgroundColor
=
.
clear
contentView
.
backgroundColor
=
.
white
//for test hjl
contentView
.
backgroundColor
=
.
pageBkgColor
selectionStyle
=
.
none
contentView
.
addSubview
(
topImgV
)
contentView
.
addSubview
(
acitivityTitle
)
contentView
.
addSubview
(
acitivityDetail
)
...
...
@@ -101,6 +200,5 @@ extension YHActivityDetailCell {
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
acitivityTips
.
layoutIfNeeded
()
}
}
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityDetailItemView.swift
View file @
0c18a739
...
...
@@ -20,6 +20,13 @@ class YHActivityDetailItemView: UIView {
}
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
updateUI
()
}
}
private
lazy
var
bottomLine
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
.
separatorColor
...
...
@@ -44,6 +51,7 @@ class YHActivityDetailItemView: UIView {
nameLabel
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
nameLabel
.
text
=
"1. 从学渣到哈佛,小儿子经历的挫折和迷茫
\r\n
2. 诈骗到财富自由,大儿子的“啃老”生活
\r\n
3. 小女儿15岁写两本书,又获艺术类冠亚军
\r\n
4. 养育五部曲,精心散养、快乐养育"
nameLabel
.
numberOfLines
=
0
nameLabel
.
isHidden
=
true
return
nameLabel
}()
}
...
...
@@ -51,46 +59,99 @@ class YHActivityDetailItemView: UIView {
extension
YHActivityDetailItemView
{
func
setupUI
()
{
addSubview
(
bottomLine
)
addSubview
(
nameLabel
)
addSubview
(
describeLable
)
bottomLine
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
1
)
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
nameLabel
.
snp
.
makeConstraints
{
make
in
nameLabel
.
snp
.
remakeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
bottomLine
.
snp
.
bottom
)
.
offset
(
24
)
}
var
lastView
:
UIView
=
nameLabel
if
model
.
introduce
.
isEmpty
{
}
else
{
describeLable
.
isHidden
=
false
if
model
.
posters
.
count
>
0
{
describeLable
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
nameLabel
.
snp
.
bottom
)
.
offset
(
24
)
}
}
else
{
describeLable
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
nameLabel
.
snp
.
bottom
)
.
offset
(
24
)
make
.
bottom
.
equalToSuperview
()
}
}
lastView
=
describeLable
}
if
model
.
posters
.
count
>
0
{
for
(
index
,
value
)
in
model
.
posters
.
enumerated
()
{
print
(
"Index:
\(
index
)
, Value:
\(
value
)
"
)
let
imageV
:
UIImageView
=
UIImageView
()
// imageV.backgroundColor = .red //for test hjl
imageV
.
image
=
UIImage
(
named
:
"global_default_image"
)
if
let
url
=
URL
(
string
:
value
)
{
imageV
.
kf
.
setImage
(
with
:
url
,
placeholder
:
UIImage
(
named
:
"global_default_image"
))
}
addSubview
(
imageV
)
if
model
.
posters
.
count
-
1
==
index
{
if
index
==
0
{
imageV
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
describeLable
.
snp
.
bottom
)
.
offset
(
24
)
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
height
.
equalTo
(
376
)
make
.
bottom
.
equalToSuperview
()
}
}
else
{
imageV
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
20
)
make
.
height
.
equalTo
(
376
)
let
imageV2
:
UIImageView
=
UIImageView
()
// imageV2.backgroundColor = .purple //for test hjl
imageV2
.
image
=
UIImage
(
named
:
"global_default_image"
)
addSubview
(
imageV2
)
imageV2
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
}
}
}
else
{
imageV
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
imageV
.
snp
.
bottom
)
.
offset
(
20
)
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
20
)
make
.
height
.
equalTo
(
376
)
}
}
lastView
=
imageV
}
}
}
func
setupUI
()
{
addSubview
(
bottomLine
)
addSubview
(
nameLabel
)
addSubview
(
describeLable
)
bottomLine
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
1
)
}
nameLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
bottomLine
.
snp
.
bottom
)
.
offset
(
24
)
make
.
bottom
.
equalToSuperview
()
}
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityTipsItemView.swift
View file @
0c18a739
...
...
@@ -22,6 +22,14 @@ class YHActivityTipsItemView: UIView {
var
showLineFlag
:
Bool
=
true
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
updateUI
()
}
}
private
lazy
var
bottomLine
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
.
separatorColor
...
...
@@ -84,10 +92,18 @@ class YHActivityTipsItemView: UIView {
extension
YHActivityTipsItemView
{
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
describeLable
.
text
=
model
.
tips
layoutIfNeeded
()
}
func
setupUI
()
{
addSubview
(
bottomLine
)
addSubview
(
nameLabel
)
addSubview
(
describeLable
)
layoutIfNeeded
()
}
}
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityTitleItemView.swift
View file @
0c18a739
...
...
@@ -19,17 +19,11 @@ class YHActivityTitleItemView: UIView {
setupUI
()
}
// lazy var nameLabel:UILabel = {
// let nameLabel = UILabel()
// nameLabel.textColor = UIColor.mainTextColor
// nameLabel.textAlignment = .left
// nameLabel.font = UIFont.PFSC_B(ofSize:24)
// nameLabel.text = "哈佛爸爸线下教育沙龙哈佛爸爸线下教育沙龙"
// return nameLabel
// }()
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
updateUI
()
}
}
private
lazy
var
nameTextView
:
UITextView
=
{
let
lable0
=
UITextView
()
...
...
@@ -39,6 +33,7 @@ class YHActivityTitleItemView: UIView {
lable0
.
isScrollEnabled
=
false
lable0
.
isEditable
=
false
lable0
.
isSelectable
=
false
lable0
.
backgroundColor
=
.
clear
return
lable0
}()
...
...
@@ -94,9 +89,29 @@ class YHActivityTitleItemView: UIView {
extension
YHActivityTitleItemView
{
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
nameTextView
.
text
=
model
.
name
if
model
.
tag
==
1
{
nameTextView
.
attributed
.
text
=
"""
\(
model
.
name
+
" "
,
.
foreground
(
UIColor
.
mainTextColor
),
.
font
(
UIFont
.
PFSC_B
(
ofSize
:
24
))
)\(
.
image
(
UIImage
(
named
:
"activity_vip_icon2"
)
!
,
.
custom
(
.
offset
(
CGPoint
(
x
:
0
,
y
:
-
7
)),
size
:
.
init
(
width
:
44
,
height
:
34
)))
)
"""
}
else
{
nameTextView
.
attributed
.
text
=
"""
\(
model
.
name
,
.
foreground
(
UIColor
.
mainTextColor
),
.
font
(
UIFont
.
PFSC_B
(
ofSize
:
24
))
)
"""
}
timeLable
.
text
=
String
(
model
.
beginTime
)
addressLable
.
text
=
model
.
place
navAddressLable
.
text
=
model
.
guidance
}
func
setupUI
()
{
// addSubview(nameLabel)
addSubview
(
nameTextView
)
addSubview
(
timeStaticLable
)
addSubview
(
timeLable
)
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/VM/YHActivityViewModel.swift
View file @
0c18a739
...
...
@@ -22,14 +22,48 @@ class YHActivityViewModel: YHBaseViewModel {
var
arrActivityListData
:
[
YHActivityModel
]
=
[]
//2.活动详情
var
activityDetailModel
:
YHActivityDetailModel
?
//2.
//3.
}
extension
YHActivityViewModel
{
/*
*活动详情
*/
func
getActivityDetailData
(
activityID
:
String
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
// var params: [String : Any] = ["id": activityID]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
Activity
.
detailApi
+
"/"
+
activityID
let
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
)
{
[
weak
self
]
json
,
code
in
guard
let
self
=
self
else
{
return
}
//1. json字符串 转 对象
if
json
.
code
==
200
{
let
dic
=
json
.
data
guard
let
result
=
YHActivityDetailModel
.
deserialize
(
from
:
dic
as?
Dictionary
)
else
{
self
.
activityDetailModel
=
nil
callBackBlock
(
false
,
nil
)
return
}
self
.
activityDetailModel
=
result
callBackBlock
(
true
,
nil
)
}
else
{
self
.
activityDetailModel
=
nil
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBackBlock
(
false
,
error
)
}
}
failBlock
:
{
err
in
self
.
activityDetailModel
=
nil
callBackBlock
(
false
,
err
)
}
}
/*
*活动列表
firstFlag true - 首次 false - 更多
*/
func
getActivityList
(
firstFlag
:
Bool
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
...
...
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
0c18a739
...
...
@@ -13,6 +13,11 @@ class YHAllApiName {
struct
Activity
{
//活动列表
static
let
listApi
=
"super-app/activity/list"
//活动详情
static
let
detailApi
=
"super-app/activity/detail"
}
...
...
galaxy/galaxy/Res/Assets.xcassets/Activity/activity_detail_top_bkg.imageset/Contents.json
0 → 100644
View file @
0c18a739
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"Rectangle 346241363@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"Rectangle 346241363@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/Activity/activity_detail_top_bkg.imageset/Rectangle 346241363@2x.png
0 → 100644
View file @
0c18a739
45.9 KB
galaxy/galaxy/Res/Assets.xcassets/Activity/activity_detail_top_bkg.imageset/Rectangle 346241363@3x.png
0 → 100644
View file @
0c18a739
71.1 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment