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
c805e4af
Commit
c805e4af
authored
Jun 27, 2024
by
Steven杜宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
// 计算collecitonView高度
parent
ced9f2e8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
21 deletions
+35
-21
YHInterestTopicLayout.swift
...asses/Modules/Community(社区)/V/YHInterestTopicLayout.swift
+6
-5
YHMyInterestTopicCell.swift
...asses/Modules/Community(社区)/V/YHMyInterestTopicCell.swift
+29
-16
No files found.
galaxy/galaxy/Classes/Modules/Community(社区)/V/YHInterestTopicLayout.swift
View file @
c805e4af
...
...
@@ -13,6 +13,7 @@ class YHInterestTopicLayout: UICollectionViewFlowLayout {
var
dataSource
:[
String
]
=
[]
weak
var
layoutDelegate
:
UICollectionViewDelegateFlowLayout
?
=
nil
var
interItemSpacing
:
CGFloat
=
12.0
// 相邻单元格之间的水平间距
let
collectionViewWidth
=
KScreenWidth
-
16.0
*
4
override
func
prepare
()
{
super
.
prepare
()
self
.
minimumInteritemSpacing
=
12
...
...
@@ -35,7 +36,7 @@ class YHInterestTopicLayout: UICollectionViewFlowLayout {
let
originX
=
prevLayout
.
frame
.
maxX
//如果当 (上一个cell的最右边X + 我们想要的间距 + 当前cell的宽度 + 区边距) 依然在contentSize中 (小于屏幕宽度),我们改变当前cell的原点位置
//判断 当前cell的 maxX 是否超出屏幕
if
((
CGFloat
(
originX
)
+
CGFloat
(
maximumSpacing
)
+
currentLayout
.
frame
.
size
.
width
)
+
self
.
sectionInset
.
right
<
self
.
collectionView
ContentSize
.
w
idth
)
{
if
((
CGFloat
(
originX
)
+
CGFloat
(
maximumSpacing
)
+
currentLayout
.
frame
.
size
.
width
)
+
self
.
sectionInset
.
right
<
self
.
collectionView
W
idth
)
{
var
frame
=
currentLayout
.
frame
frame
.
origin
.
x
=
CGFloat
(
originX
)
+
CGFloat
(
maximumSpacing
)
currentLayout
.
frame
=
frame
...
...
@@ -53,9 +54,8 @@ class YHInterestTopicLayout: UICollectionViewFlowLayout {
override
var
collectionViewContentSize
:
CGSize
{
get
{
let
width
=
self
.
collectionView
?
.
width
??
0.0
let
height
=
self
.
calculateHeight
()
return
CGSize
(
width
:
w
idth
,
height
:
height
)
return
CGSize
(
width
:
self
.
collectionViewW
idth
,
height
:
height
)
}
}
...
...
@@ -79,13 +79,14 @@ class YHInterestTopicLayout: UICollectionViewFlowLayout {
height
=
itemHeight
}
else
{
let
targetX
=
currentX
+
self
.
minimumInteritemSpacing
+
size
.
width
if
targetX
<=
self
.
collectionView
!.
w
idth
{
if
targetX
<=
self
.
collectionView
W
idth
{
currentX
=
targetX
}
else
{
currentX
=
0
currentX
=
size
.
width
height
+=
self
.
minimumLineSpacing
+
itemHeight
}
}
printLog
(
"calcaulte:
\(
height
)
"
)
}
}
return
height
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/V/YHMyInterestTopicCell.swift
View file @
c805e4af
...
...
@@ -64,26 +64,34 @@ class YHMyInterestTopicCell: UITableViewCell {
self
.
collectionView
.
isHidden
=
!
isShowList
self
.
detailLabel
.
isHidden
=
isShowList
self
.
topicArr
.
removeAll
()
if
self
.
userModel
.
topics
.
count
>
0
{
self
.
topicArr
.
append
(
contentsOf
:
self
.
userModel
.
topics
)
}
self
.
layout
.
dataSource
=
self
.
topicArr
self
.
layout
.
invalidateLayout
()
self
.
collectionView
.
reloadData
()
let
height
=
self
.
layout
.
collectionViewContentSize
.
height
printLog
(
"ABC:
\(
height
)
"
)
if
isShowList
{
self
.
topicArr
.
removeAll
()
if
self
.
userModel
.
topics
.
count
>
0
{
self
.
topicArr
.
append
(
contentsOf
:
self
.
userModel
.
topics
)
self
.
collectionView
.
snp
.
remakeConstraints
{
make
in
make
.
height
.
equalTo
(
height
)
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
bottom
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
self
.
titleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
self
.
layout
.
dataSource
=
self
.
topicArr
self
.
collectionView
.
reloadData
{
let
height
=
self
.
layout
.
collectionViewContentSize
.
height
printLog
(
"ABC:
\(
height
)
"
)
self
.
collectionView
.
snp
.
remakeConstraints
{
make
in
make
.
height
.
equalTo
(
height
)
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
bottom
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
self
.
titleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
self
.
detailLabel
.
snp
.
remakeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
titleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
self
.
setNeedsLayout
()
self
.
layoutIfNeeded
()
self
.
detailLabel
.
snp
.
removeConstraints
()
}
else
{
...
...
@@ -93,7 +101,12 @@ class YHMyInterestTopicCell: UITableViewCell {
make
.
bottom
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
titleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
self
.
collectionView
.
snp
.
removeConstraints
()
self
.
collectionView
.
snp
.
remakeConstraints
{
make
in
make
.
height
.
equalTo
(
height
)
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
self
.
titleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
}
self
.
setNeedsLayout
()
self
.
layoutIfNeeded
()
...
...
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