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
3cbd4414
Commit
3cbd4414
authored
Nov 28, 2024
by
Steven杜宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
// AI
parent
70884530
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
138 additions
and
6 deletions
+138
-6
YHAIChatViewController.swift
...dules/AI/AI-Dialogue(AI对话)/C/YHAIChatViewController.swift
+3
-1
YHAITabViewController.swift
...odules/AI/AI-Dialogue(AI对话)/C/YHAITabViewController.swift
+4
-4
YHAITabIndicatorView.swift
...Modules/AI/AI-Dialogue(AI对话)/V/YHAITabIndicatorView.swift
+109
-1
Contents.json
....xcassets/AI-Chat/ai_tab_indicator.imageset/Contents.json
+22
-0
装饰线-1.png
...sets.xcassets/AI-Chat/ai_tab_indicator.imageset/装饰线-1.png
+0
-0
装饰线.png
...Assets.xcassets/AI-Chat/ai_tab_indicator.imageset/装饰线.png
+0
-0
No files found.
galaxy/galaxy/Classes/Modules/AI/AI-Dialogue(AI对话)/C/YHAIChatViewController.swift
View file @
3cbd4414
...
@@ -55,6 +55,8 @@ class YHAIChatViewController: YHBaseViewController {
...
@@ -55,6 +55,8 @@ class YHAIChatViewController: YHBaseViewController {
override
func
viewDidLoad
()
{
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
super
.
viewDidLoad
()
gk_navBarAlpha
=
0
gk_navigationBar
.
isHidden
=
true
view
.
backgroundColor
=
.
clear
view
.
backgroundColor
=
.
clear
IQKeyboardManager
.
shared
.
enable
=
false
IQKeyboardManager
.
shared
.
enable
=
false
...
@@ -64,7 +66,7 @@ class YHAIChatViewController: YHBaseViewController {
...
@@ -64,7 +66,7 @@ class YHAIChatViewController: YHBaseViewController {
tableView
.
snp
.
makeConstraints
{
make
in
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalTo
(
0
)
make
.
left
.
right
.
equalTo
(
0
)
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
top
.
equalTo
(
0
)
make
.
bottom
.
equalTo
(
bottomInputView
.
snp
.
top
)
.
offset
(
-
10
)
make
.
bottom
.
equalTo
(
bottomInputView
.
snp
.
top
)
.
offset
(
-
10
)
}
}
bottomInputView
.
snp
.
makeConstraints
{
make
in
bottomInputView
.
snp
.
makeConstraints
{
make
in
...
...
galaxy/galaxy/Classes/Modules/AI/AI-Dialogue(AI对话)/C/YHAITabViewController.swift
View file @
3cbd4414
...
@@ -112,11 +112,11 @@ class YHAITabViewController: YHBaseViewController {
...
@@ -112,11 +112,11 @@ class YHAITabViewController: YHBaseViewController {
segmentedView
.
delegate
=
self
segmentedView
.
delegate
=
self
//配置指示器
//配置指示器
let
indicator
=
JXSegmentedIndicatorLine
View
()
let
indicator
=
YHAITabIndicator
View
()
indicator
.
indicatorWidth
=
16
indicator
.
indicatorWidth
=
34
indicator
.
indicatorHeight
=
2
indicator
.
indicatorHeight
=
14
indicator
.
indicatorCornerRadius
=
0.0
indicator
.
indicatorCornerRadius
=
0.0
indicator
.
indicatorColor
=
UIColor
.
white
indicator
.
verticalOffset
=
9
segmentedView
.
indicators
=
[
indicator
]
segmentedView
.
indicators
=
[
indicator
]
segmentedView
.
defaultSelectedIndex
=
defaltIndex
segmentedView
.
defaultSelectedIndex
=
defaltIndex
...
...
galaxy/galaxy/Classes/Modules/AI/AI-Dialogue(AI对话)/V/YHAITabIndicatorView.swift
View file @
3cbd4414
...
@@ -10,7 +10,115 @@ import UIKit
...
@@ -10,7 +10,115 @@ import UIKit
import
JXSegmentedView
import
JXSegmentedView
class
YHAITabIndicatorView
:
JXSegmentedIndicatorBaseView
{
class
YHAITabIndicatorView
:
JXSegmentedIndicatorBaseView
{
lazy
var
bgImgView
:
UIImageView
=
{
let
v
=
UIImageView
(
image
:
UIImage
(
named
:
"ai_tab_indicator"
))
return
v
}()
open
var
lineStyle
:
JXSegmentedIndicatorLineStyle
=
.
normal
/// lineStyle为lengthenOffset时使用,滚动时x的偏移量
open
var
lineScrollOffsetX
:
CGFloat
=
10
open
override
func
commonInit
()
{
super
.
commonInit
()
self
.
backgroundColor
=
.
clear
self
.
addSubview
(
bgImgView
)
bgImgView
.
snp
.
makeConstraints
{
make
in
make
.
width
.
equalTo
(
34
)
make
.
height
.
equalTo
(
14
)
make
.
centerX
.
equalToSuperview
()
make
.
top
.
equalTo
(
0
)
}
}
open
override
func
refreshIndicatorState
(
model
:
JXSegmentedIndicatorSelectedParams
)
{
super
.
refreshIndicatorState
(
model
:
model
)
backgroundColor
=
.
clear
layer
.
cornerRadius
=
getIndicatorCornerRadius
(
itemFrame
:
model
.
currentSelectedItemFrame
)
let
width
=
getIndicatorWidth
(
itemFrame
:
model
.
currentSelectedItemFrame
,
itemContentWidth
:
model
.
currentItemContentWidth
)
let
height
=
getIndicatorHeight
(
itemFrame
:
model
.
currentSelectedItemFrame
)
let
x
=
model
.
currentSelectedItemFrame
.
origin
.
x
+
(
model
.
currentSelectedItemFrame
.
size
.
width
-
width
)
/
2
var
y
:
CGFloat
=
0
switch
indicatorPosition
{
case
.
top
:
y
=
verticalOffset
case
.
bottom
:
y
=
model
.
currentSelectedItemFrame
.
size
.
height
-
height
-
verticalOffset
case
.
center
:
y
=
(
model
.
currentSelectedItemFrame
.
size
.
height
-
height
)
/
2
+
verticalOffset
}
frame
=
CGRect
(
x
:
x
,
y
:
y
,
width
:
width
,
height
:
height
)
}
open
override
func
contentScrollViewDidScroll
(
model
:
JXSegmentedIndicatorTransitionParams
)
{
super
.
contentScrollViewDidScroll
(
model
:
model
)
guard
canHandleTransition
(
model
:
model
)
else
{
return
}
let
rightItemFrame
=
model
.
rightItemFrame
let
leftItemFrame
=
model
.
leftItemFrame
let
percent
=
model
.
percent
var
targetX
:
CGFloat
=
leftItemFrame
.
origin
.
x
var
targetWidth
=
getIndicatorWidth
(
itemFrame
:
leftItemFrame
,
itemContentWidth
:
model
.
leftItemContentWidth
)
let
leftWidth
=
targetWidth
let
rightWidth
=
getIndicatorWidth
(
itemFrame
:
rightItemFrame
,
itemContentWidth
:
model
.
rightItemContentWidth
)
let
leftX
=
leftItemFrame
.
origin
.
x
+
(
leftItemFrame
.
size
.
width
-
leftWidth
)
/
2
let
rightX
=
rightItemFrame
.
origin
.
x
+
(
rightItemFrame
.
size
.
width
-
rightWidth
)
/
2
switch
lineStyle
{
case
.
normal
:
targetX
=
JXSegmentedViewTool
.
interpolate
(
from
:
leftX
,
to
:
rightX
,
percent
:
CGFloat
(
percent
))
if
indicatorWidth
==
JXSegmentedViewAutomaticDimension
{
targetWidth
=
JXSegmentedViewTool
.
interpolate
(
from
:
leftWidth
,
to
:
rightWidth
,
percent
:
CGFloat
(
percent
))
}
case
.
lengthen
:
//前50%,只增加width;后50%,移动x并减小width
let
maxWidth
=
rightX
-
leftX
+
rightWidth
if
percent
<=
0.5
{
targetX
=
leftX
targetWidth
=
JXSegmentedViewTool
.
interpolate
(
from
:
leftWidth
,
to
:
maxWidth
,
percent
:
CGFloat
(
percent
*
2
))
}
else
{
targetX
=
JXSegmentedViewTool
.
interpolate
(
from
:
leftX
,
to
:
rightX
,
percent
:
CGFloat
((
percent
-
0.5
)
*
2
))
targetWidth
=
JXSegmentedViewTool
.
interpolate
(
from
:
maxWidth
,
to
:
rightWidth
,
percent
:
CGFloat
((
percent
-
0.5
)
*
2
))
}
case
.
lengthenOffset
:
//前50%,增加width,并少量移动x;后50%,少量移动x并减小width
let
maxWidth
=
rightX
-
leftX
+
rightWidth
-
lineScrollOffsetX
*
2
if
percent
<=
0.5
{
targetX
=
JXSegmentedViewTool
.
interpolate
(
from
:
leftX
,
to
:
leftX
+
lineScrollOffsetX
,
percent
:
CGFloat
(
percent
*
2
))
targetWidth
=
JXSegmentedViewTool
.
interpolate
(
from
:
leftWidth
,
to
:
maxWidth
,
percent
:
CGFloat
(
percent
*
2
))
}
else
{
targetX
=
JXSegmentedViewTool
.
interpolate
(
from
:
leftX
+
lineScrollOffsetX
,
to
:
rightX
,
percent
:
CGFloat
((
percent
-
0.5
)
*
2
))
targetWidth
=
JXSegmentedViewTool
.
interpolate
(
from
:
maxWidth
,
to
:
rightWidth
,
percent
:
CGFloat
((
percent
-
0.5
)
*
2
))
}
}
self
.
frame
.
origin
.
x
=
targetX
self
.
frame
.
size
.
width
=
targetWidth
}
open
override
func
selectItem
(
model
:
JXSegmentedIndicatorSelectedParams
)
{
super
.
selectItem
(
model
:
model
)
let
targetWidth
=
getIndicatorWidth
(
itemFrame
:
model
.
currentSelectedItemFrame
,
itemContentWidth
:
model
.
currentItemContentWidth
)
var
toFrame
=
self
.
frame
toFrame
.
origin
.
x
=
model
.
currentSelectedItemFrame
.
origin
.
x
+
(
model
.
currentSelectedItemFrame
.
size
.
width
-
targetWidth
)
/
2
toFrame
.
size
.
width
=
targetWidth
if
canSelectedWithAnimation
(
model
:
model
)
{
UIView
.
animate
(
withDuration
:
scrollAnimationDuration
,
delay
:
0
,
options
:
.
curveEaseOut
,
animations
:
{
self
.
frame
=
toFrame
})
{
(
_
)
in
}
}
else
{
frame
=
toFrame
}
}
}
}
galaxy/galaxy/Res/Assets.xcassets/AI-Chat/ai_tab_indicator.imageset/Contents.json
0 → 100644
View file @
3cbd4414
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"装饰线.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"装饰线-1.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/AI-Chat/ai_tab_indicator.imageset/装饰线-1.png
0 → 100644
View file @
3cbd4414
3.69 KB
galaxy/galaxy/Res/Assets.xcassets/AI-Chat/ai_tab_indicator.imageset/装饰线.png
0 → 100644
View file @
3cbd4414
2.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