From 17f5eba096f618686c907bdaa27d719ffefa2ba1 Mon Sep 17 00:00:00 2001 From: mh <729263080@qq.com> Date: Wed, 29 Oct 2025 14:48:11 +0800 Subject: [PATCH] chat setting --- .../Contents.json | 22 + .../chat_setting_add_bg@2x.png | Bin 0 -> 1232 bytes .../chat_setting_add_bg@3x.png | Bin 0 -> 2676 bytes .../Contents.json | 22 + .../chat_setting_bg_delete@2x.png | Bin 0 -> 545 bytes .../chat_setting_bg_delete@3x.png | Bin 0 -> 1158 bytes .../Contents.json | 22 + .../chat_setting_delete@2x.png | Bin 0 -> 985 bytes .../chat_setting_delete@3x.png | Bin 0 -> 2177 bytes .../role_chat_buttle.imageset/Contents.json | 22 + .../role_chat_buttle@2x.png | Bin 0 -> 608 bytes .../role_chat_buttle@3x.png | Bin 0 -> 1165 bytes .../role_chat_close.imageset/Contents.json | 22 + .../role_chat_close@2x.png | Bin 0 -> 1322 bytes .../role_chat_close@3x.png | Bin 0 -> 2970 bytes .../role_chat_mode.imageset/Contents.json | 22 + .../role_chat_mode@2x.png | Bin 0 -> 805 bytes .../role_chat_mode@3x.png | Bin 0 -> 1887 bytes .../role_exchange_mode.imageset/Contents.json | 22 + .../role_exchange_mode@2x.png | Bin 0 -> 1170 bytes .../role_exchange_mode@3x.png | Bin 0 -> 2673 bytes .../Role/role_font.imageset/Contents.json | 22 + .../Role/role_font.imageset/role_font@2x.png | Bin 0 -> 256 bytes .../Role/role_font.imageset/role_font@3x.png | Bin 0 -> 404 bytes .../Role/role_music.imageset/Contents.json | 22 + .../role_music.imageset/role_music@2x.png | Bin 0 -> 646 bytes .../role_music.imageset/role_music@3x.png | Bin 0 -> 1470 bytes .../Role/role_new_chat.imageset/Contents.json | 22 + .../role_new_chat@2x.png | Bin 0 -> 61351 bytes .../role_new_chat@3x.png | Bin 0 -> 128193 bytes .../role_setting_add.imageset/Contents.json | 22 + .../role_setting_add@2x.png | Bin 0 -> 531 bytes .../role_setting_add@3x.png | Bin 0 -> 1004 bytes .../role_setting_down.imageset/Contents.json | 22 + .../role_setting_down@2x.png | Bin 0 -> 364 bytes .../role_setting_down@3x.png | Bin 0 -> 787 bytes .../Contents.json | 22 + .../role_setting_font_add@2x.png | Bin 0 -> 649 bytes .../role_setting_font_add@3x.png | Bin 0 -> 1396 bytes .../Contents.json | 22 + .../role_setting_font_sub@2x.png | Bin 0 -> 615 bytes .../role_setting_font_sub@3x.png | Bin 0 -> 1322 bytes .../role_setting_go.imageset/Contents.json | 22 + .../role_setting_go@2x.png | Bin 0 -> 350 bytes .../role_setting_go@3x.png | Bin 0 -> 743 bytes .../role_setting_sub.imageset/Contents.json | 22 + .../role_setting_sub@2x.png | Bin 0 -> 524 bytes .../role_setting_sub@3x.png | Bin 0 -> 1015 bytes .../Role/role_talk.imageset/Contents.json | 22 + .../Role/role_talk.imageset/role_talk@2x.png | Bin 0 -> 888 bytes .../Role/role_talk.imageset/role_talk@3x.png | Bin 0 -> 1848 bytes .../role_text_mode.imageset/Contents.json | 22 + .../role_text_mode@2x.png | Bin 0 -> 673 bytes .../role_text_mode@3x.png | Bin 0 -> 1256 bytes .../Role/role_voice.imageset/Contents.json | 22 + .../role_voice.imageset/role_voice@2x.png | Bin 0 -> 1112 bytes .../role_voice.imageset/role_voice@3x.png | Bin 0 -> 2453 bytes .../Contents.json | 22 + .../rolel_setting_selected@2x.png | Bin 0 -> 656 bytes .../rolel_setting_selected@3x.png | Bin 0 -> 1385 bytes .../Session/SessionController+Event.swift | 13 +- .../Chat/Session/SessionController.swift | 42 +- .../Setting/Cell/ChatBackgroundCell.swift | 132 +++++ .../Setting/Cell/ChatBgCollectionCell.swift | 84 +++ .../Chat/Setting/Cell/ChatFontCell.swift | 118 ++++ .../Chat/Setting/Cell/ChatHistoryCell.swift | 204 +++++++ .../Setting/Cell/ChatHistoryContentCell.swift | 124 ++++ .../Setting/Cell/ChatResponseTokenCell.swift | 91 +++ .../Setting/Cell/ChatSettingBaseCell.swift | 39 ++ .../Chat/Setting/Cell/ChatSwipeCell.swift | 120 ++++ .../Setting/CellProtocol/ActionProtocol.swift | 19 + .../Setting/View/ChatSettingSwipeView.swift | 196 +++++++ .../Chat/Setting/View/SevenSwitch.swift | 543 ++++++++++++++++++ .../Src/Utils/Extensions/UIDeviceExt.swift | 15 +- 74 files changed, 2174 insertions(+), 6 deletions(-) create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_add_bg.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_add_bg.imageset/chat_setting_add_bg@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_add_bg.imageset/chat_setting_add_bg@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_bg_delete.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_bg_delete.imageset/chat_setting_bg_delete@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_bg_delete.imageset/chat_setting_bg_delete@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_delete.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_delete.imageset/chat_setting_delete@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_delete.imageset/chat_setting_delete@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_buttle.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_buttle.imageset/role_chat_buttle@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_buttle.imageset/role_chat_buttle@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_close.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_close.imageset/role_chat_close@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_close.imageset/role_chat_close@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_mode.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_mode.imageset/role_chat_mode@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_chat_mode.imageset/role_chat_mode@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_exchange_mode.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_exchange_mode.imageset/role_exchange_mode@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_exchange_mode.imageset/role_exchange_mode@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_font.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_font.imageset/role_font@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_font.imageset/role_font@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_music.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_music.imageset/role_music@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_music.imageset/role_music@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/role_new_chat@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/role_new_chat@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_add.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_add.imageset/role_setting_add@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_add.imageset/role_setting_add@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_down.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_down.imageset/role_setting_down@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_down.imageset/role_setting_down@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_font_add.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_font_add.imageset/role_setting_font_add@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_font_add.imageset/role_setting_font_add@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_font_sub.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_font_sub.imageset/role_setting_font_sub@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_font_sub.imageset/role_setting_font_sub@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_go.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_go.imageset/role_setting_go@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_go.imageset/role_setting_go@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_sub.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_sub.imageset/role_setting_sub@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_setting_sub.imageset/role_setting_sub@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_talk.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_talk.imageset/role_talk@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_talk.imageset/role_talk@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_text_mode.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_text_mode.imageset/role_text_mode@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_text_mode.imageset/role_text_mode@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_voice.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_voice.imageset/role_voice@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/role_voice.imageset/role_voice@3x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/rolel_setting_selected.imageset/Contents.json create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/rolel_setting_selected.imageset/rolel_setting_selected@2x.png create mode 100644 Visual_Novel_iOS/Assets.xcassets/Role/rolel_setting_selected.imageset/rolel_setting_selected@3x.png create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatBackgroundCell.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatBgCollectionCell.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatFontCell.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatHistoryCell.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatHistoryContentCell.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatResponseTokenCell.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatSettingBaseCell.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatSwipeCell.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/CellProtocol/ActionProtocol.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/View/ChatSettingSwipeView.swift create mode 100644 Visual_Novel_iOS/Src/Modules/Chat/Setting/View/SevenSwitch.swift diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_add_bg.imageset/Contents.json b/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_add_bg.imageset/Contents.json new file mode 100644 index 0000000..344a87d --- /dev/null +++ b/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_add_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "chat_setting_add_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "chat_setting_add_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_add_bg.imageset/chat_setting_add_bg@2x.png b/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_add_bg.imageset/chat_setting_add_bg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd293879172b5e34eec610db3914be480600044 GIT binary patch literal 1232 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 literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_bg_delete.imageset/chat_setting_bg_delete@3x.png b/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_bg_delete.imageset/chat_setting_bg_delete@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..64c508d199eecb534e7832bd35d17e82967d8b74 GIT binary patch literal 1158 zcmV;11bO?3P)-iZ@j7hU@P)?985d-r1QmGrO{aFVBC@bIy4#|2glu%*+RqckuU~^xOK=Mve5` z+}v95Gg#LH+J8Uh1_zUdc%L;sxh;1;N)Mw%7u1wq?I5aq6YV?ogCARbcJ zlDP74ATe8zDbfpFi)#9K6fbJfqr+Vx#;T2KQ!EKIwWn=&(h9oAugOqHi*byX2D+P8 zn)Dpf&x4~r)#$i~0uKSoE7};xc&Sg!m-ZEUbSN6b#TA@3nP`m-kdb70 z7&RUQ9X7@>p5aQwd}Vu8=8$f?^Yk!kJP63tX7e%qk;6UOS|vI(8OJT@Ba9?SF)?YW zTlXZjO}&Km#cV#uD9-6ew6#hO>Bk|0Nj?p2`PI6mQzLSCQ8$^cMTcpN$z(Z6H;wfD zCK72|4(XSv1G*#q8Rb%lTb`qx#%fzbg+?zBJ^o@G<5iIw@>PAMQgbL9 z8_IZ;u3;;4K{lA?HO>3G<)scWPuf@MxuoM$U#?%3s6p|OGfs`p`D~orO8QzF8T|+FB^V<num{pfCFKew&Dq`ah$76?952X^m&yqUobL<$fc_MfTtSQfC{5FnOWG~( z5bo*Rb|L*p+qwbJPk&qs@n1ZQb{lj`7HPICpQ#TL&96TcOD;!QM`ejfRM;=7%gSz8^p zh4dm_cyJ-fCGbDk0M-wHezW+U0r6WN8QNtK>GqJz-}?pt0RR6>8ZtBh000I_L_t&o Y06#y+Y8b)j`v3p{07*qoM6N<$f--e2W&i*H literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_delete.imageset/Contents.json b/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_delete.imageset/Contents.json new file mode 100644 index 0000000..7b68517 --- /dev/null +++ b/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_delete.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "chat_setting_delete@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "chat_setting_delete@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_delete.imageset/chat_setting_delete@2x.png b/Visual_Novel_iOS/Assets.xcassets/Role/chat_setting_delete.imageset/chat_setting_delete@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..136500479a7c47095ebad9fc9e71ea847bd392df GIT binary patch literal 985 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 literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_close.imageset/Contents.json b/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_close.imageset/Contents.json new file mode 100644 index 0000000..99da427 --- /dev/null +++ b/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_close.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "role_chat_close@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "role_chat_close@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_close.imageset/role_chat_close@2x.png b/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_close.imageset/role_chat_close@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..36f3f6fbe4f83e8b7a51ff0394b8cd8f04a6ca2e GIT binary patch literal 1322 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 Q*#H0l07*qoM6N<$f|B;NPXGV_ literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_mode.imageset/Contents.json b/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_mode.imageset/Contents.json new file mode 100644 index 0000000..aa96a17 --- /dev/null +++ b/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_mode.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "role_chat_mode@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "role_chat_mode@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_mode.imageset/role_chat_mode@2x.png b/Visual_Novel_iOS/Assets.xcassets/Role/role_chat_mode.imageset/role_chat_mode@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1037f53a54d6fcc3066554f1308d82e1900bb351 GIT binary patch literal 805 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 f00v1!K~w_(SE7@I z@&}D`zxaRJs1tFzg@?;)@v`+wyZe0Yq|fF}>712e*7)Xcjr-}2ZP(tNnPK|w+IgWP zUw;d~-8(+_e(dMf=dsiKqv9Bk?CNO!yMnm!B zGYHXt+JW27f7;WVrfe1{d{%A3-udre9Qo uvZoVh(mzH9hX4ORb(t*&dVme&0cM7^W(}d7?0idrA`G6celF{r5}E*l%yEqX literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_font.imageset/role_font@3x.png b/Visual_Novel_iOS/Assets.xcassets/Role/role_font.imageset/role_font@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf10eb78b19744a000a089af36c85de35f55924 GIT binary patch literal 404 zcmV;F0c-w=P)j{0003=Nkl1$jr1Os%MpZ*N#fBb98V z-F94kmGJEi>u9*ZQ~ yd2d9l{G=v-0{{U3|3TXlBme*a21!IgR09AK%07;pk5aY(0000O)~+PltzuhBhdW zHMU9sleY2K6amnXjxMg%m&@h#VzH>>ew}yGk{VAN6v%g?Ck73m#`Je_sI%Q}uK~LO z>;-+yW;2hzeepa`oZYui`KJv^&|4HO;?`pX>QSKP^Z8U4CK@!}J_q#3O`ycBu}!Er zq&%MkD&OU<0@SwUg`1VJu)h(plq2@UTKo0p7@oZKpN*&1oSh~ zRyE}cqw2d-g4)Qda8|Aj{000GZNklkd{57%|&78nw(@Zlp z^2ZVq6Mtk7iP1ln7^BIE9bjk+$Uhoa@K*<;F7G_cx*YyzlF!xPn~^sopMyJKrhN_uJxqDcM83ARw%l&F?`dpo>=HCI zG(6he+*}l9k>DRgk*}(%DumR=`uh6Kb#--3klfFGAGna8pMNPYFK-|e3U!76e7{&+ zT>O>3_t}&x?(={q$td}jmKIx6Q`1(Qe;A_Am6esf4Y7WU#qzDyY8~PFG;E#%LJoD4 zl(QiRvF~I2)|-0cG^Crng-BI{7eSxT=lebw41NWHk0JUFzCO=&D_Y3jf{rVUvx4nl zP#%rA1Fkbj8Tp!;ni8DZLJDt(=wTu=K!h){_K)B_AQ8O>eLL6y3PGYGDPPT_(aT!- zs*|LIJcL_|ii$qKnRBG%5Y9+C?;)z?T&Gg*CzE7DmDbRe{PKZy0>WoleIM8i^b$X* z?E>#Ip_~Oi^hznCp%y5KZsgnA+N>N{Pq69>U=xs3M5znJf>_UiOTf$hIkM#hdY9kt z-!MKtelO@KC@AQle*ml$8ykP?%Es01wUS?Lo^{jH(|6H%5UdAUzoU9ka8un;^Fn zbVBs(*x1<5Twfd>9+piBVV5@1jXWM#gJ`lBlDi?;<8rx1yk74@G^0$k=}A87vj*vr zOb}C9Q%~}%ttTh=YJC}PPY3yo5{$LDNj}!@WOJVx`D~7EEN*7xW9?2h_nDE;=IF-a zW=1~N?j+e~=;3DM4IQ2oI%h^cg_~>Wsn>DdQEslseT+d!lq5YaRxCWa(0 z)mutkFY`wD2(+TU8>BsHF(mo9xjA|NFXgVJ3C5bhkmM;g%3*d}EXVce(@b7!avVfb zV{b=ya0+*!U)95z$Q(T9@_eT(-LI|_xlqv@Lgh0vGji%mxk)OeZ^@y=*dCyp5cw-i zmPm19VR{~LW43yb78x2ES|ZC% z@<<(L!MN#<-2ym{pC=hR&ln|9B2UzxWb$YgSfxcY7+p18uEERy=Jt{WZaOZ5$VNyt zS4hgE@dLg+jZOFUHGFL2iV}Hd*#goo6gmCiOKSH!Na;369>$5zWgLQVyUk|XHZd{r z33h(kHHj+uUo_2n%{b9<*Jj{KYWEQQj#76oB#(hNz-hPJ{f+ctl8`8oXUF@QT~ZCD zECHhRp|W)b43)@3qK_2wXz>sG39HpQsAWvLZI#GRPEP(#^bg^j7sM58y=+(qX?Y>8 zaRv>P$m3s-XY9P+@0X8Et@n&!zE1m3-K9 zeo8J^R#v_Q=~l?@2d@G7IeLY*0~kG2QBlz@c3c}?G?5oJgM)(sqUt53`^knk(Ou|M z;0*Xl`o(T7Kr{KZKuXm|lf3FqWt*KD`D}}*DxaK={Qm#|0RR6KcA#1S000I_L_t&o Y0Hk*CjykKpL;wH)07*qoM6N<$f`X;L$p8QV literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/Contents.json b/Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/Contents.json new file mode 100644 index 0000000..c06b431 --- /dev/null +++ b/Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "role_new_chat@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "role_new_chat@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/role_new_chat@2x.png b/Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/role_new_chat@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac15148eb870bfba1bf07ae9159bd2391bfc97f GIT binary patch literal 61351 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 QDgXcg07*qoM6N<$f;Q&=A^-pY literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/role_new_chat@3x.png b/Visual_Novel_iOS/Assets.xcassets/Role/role_new_chat.imageset/role_new_chat@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..844348b430f8a134557dca21cd3b79afcc27f648 GIT binary patch literal 128193 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

>Y17gVU780Jjb0nk!zxI|Ktwg` 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 literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_setting_font_add.imageset/role_setting_font_add@3x.png b/Visual_Novel_iOS/Assets.xcassets/Role/role_setting_font_add.imageset/role_setting_font_add@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3e82d776d66c38769e6d13e97190473f8bb7ab9e GIT binary patch literal 1396 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 wlElPCz8UO$Q literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/role_setting_go.imageset/role_setting_go@3x.png b/Visual_Novel_iOS/Assets.xcassets/Role/role_setting_go.imageset/role_setting_go@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5c951e4c8890022e628aa5cc1e17a9455e5f35d4 GIT binary patch literal 743 zcmV?P)h<~?#(ZU&^N2HDC=@o*>GXeS8~Qb!PCNO0{sRZ|B{6gqMSlVN z0)SbF&%ea`F0%fy(P(55Q*WG9I>~Fp1M2|a4a2bP16&LZxN`$ELjkO^)9?4+^Nps& z(17_0g^;NQSd_X|#Lz(yoJ=N@Zy=5XSGS578lD}ON~JEWunAoO-qcjBB8Da*!CS4? zKKf-SF5_xeSqd7UH?3GK91UimVMTR3a5<0uVfjRdDY=NYvDzZz)Ej(GmK4Pz0q?^Z#DW zhZaZFp>w(1J0N_5)*w?mGX)pL)SzLHEWgcQ@-7rWrpCJEyXnHBmEv z9s>}vZegh#b3Hb!0?ltPnM`H}vl=tZk`~(J4ub`bai6F;g$6)UOO&~@;C?YMSLX~G z0NJFL;Nio`mz6VUZA;u;pfxlzoN$-0vV=2e0{gOrGiaZdu!d%aeOtl`n!u~DgcUSP zNzH@fE?it+ynEmz`-8!ZCmrIfC7kUN7|+87<%^P3OmoxzLI|p00960A9OvU00006Nkl>-9+# zMI)dJ?Ug#g{@9EjFAR=> zPrKdji$$z;WL#n`m&;ZNEVfAu`yI_AA4#8|L`1D72 z>!~XQx9)6nt>DAqAjh98yeY4r32p@|rMA3>f#-QG7D#;`(T%~W^>G~;nw85mHF z?Bs7y&FAwjE?DbdDOlin+ZCMGsnYj-0{{U3|42dqx&QzG21!IgR09C$B%nQPf*gGS O0000}19BHQf%HJq5w#=-+qkLOLq{#{x)5oV2o%yoB{(aFve~S?rKM$4I2_)%Vo;-FO(NaU&`{dg*myUUO1)TESeW2? zq`A3yhX(8a;k-fv=SOE94#$MuZm)%+0+pj+I-P#XhpFaT)A9n{*49=W3WZJsIt!AU4qy6!C{0Riti0)QeH?qP$ z5QI;992tr2+oV`ZZ2xkmW{B7o$qOj&(zql$5;1=~Xn3EH!dkyg_&C{S~7dIuePbAdT{> zK1?g3PGhN6QUAqrqv=#PwD1&-Mw9*h{o|bA4sd@SeM4zv+DMPmL?W?Gk0V3SlEZ<4 zfq6c_b>KzRyXc=rri>IRqJoIBs_AD{(2`f+r-)7mo7K>F51F-kJq}Dkiwy<`2mki; z^o(Ji#^$Z)>%pdVtLs#yjt?E?7Z z?Ch*4jpAPfx21jq?G~-MmP3mTW3gCTz@vJq!cO|cQC1v^xKuZer(e})*lan0UcPBx zU*CI|%XN}`J%?T~Ch9$nqD_+?_Z3H$b>8(1?SUca& zB;%@<7ift9`0qsiGAU37;4qqE>@#|ds{MX{j8@a~3N6v_i+cvuQr~xZz1}@U_Xv8< zQ6VGEQES%(S^yE{ERp}!+1WWK?u}^8pp8Jv=N6#l5y{nkA=0^utlaOqjPySM00960 llt87800006Nkl346VmdIXAfx~w->-u>TB6;o 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 TF%}Ut00000NkvXXu0mjfB}ull literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/rolel_setting_selected.imageset/Contents.json b/Visual_Novel_iOS/Assets.xcassets/Role/rolel_setting_selected.imageset/Contents.json new file mode 100644 index 0000000..6efb506 --- /dev/null +++ b/Visual_Novel_iOS/Assets.xcassets/Role/rolel_setting_selected.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "rolel_setting_selected@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "rolel_setting_selected@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Visual_Novel_iOS/Assets.xcassets/Role/rolel_setting_selected.imageset/rolel_setting_selected@2x.png b/Visual_Novel_iOS/Assets.xcassets/Role/rolel_setting_selected.imageset/rolel_setting_selected@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7e74460fd501476b75203543a4c6ce98dff566b8 GIT binary patch literal 656 zcmV;B0&o3^P)X0006-NklX{bYrxW#U1up3%T$2g5?X~GOI;EpzLVDkVBZXjJQ z`$f@6ktOFO%aL#NOMAO}d*7^l_KYJHjiK-A+`rerUz(OC-FbrD^XMK=V_n+mVi5NYl4rTLQTE*PFm)k=EDQ zS-A~hd9;B@5gcVFKe<1yy#kiOoz12BugBpmW4$-P2H=cOs~|u&t8)6t=RmMSRuwuI zFLU}G1UP=3o<24PAg-`^Cq_;_QW=f{URObY-DhN{0sxTI6I=L*#k2HY3y$TH7D0fc z?_@s|AOIy^Y<$T)dDe!LR{H9~06B4Nq}%`qFoc~8i#4px`-A3A3)u+jpyl0tEu7ic z19nz`p{x&^+}dyyaGLN41|*pc*%*79$RT%I&eoXI++OcWHYx#HerYF(p`GFQ?A>>d zdX)iLM0Wte&I%u~tgnVWPP)h1T7WDB1fbO)Y5iZj9S8~{uP>UpZZq@R(GXxkHe_8@|f@US&mtkx-cq3VEE|1)qh*ez z{8)E3YAL_yHR@ETcf9aTmg_97mKk4)fgcQKduN|D>fS#2|2 zr==-NKJbXvoAOReo24mB4tPn}qSfIl6Lwje;=5{&k|hUxt`;bxM@m{WnKI)8s?CSf z5_4T@Y5J1Uh~}E|4og#=#^xzmG7ja-+;fqoVawUGq}5J$9$h4@SSZm>y4Z|bbc+Yu zr9T_6%sETixl(#@sr2~m(zd&$-g}cnb7)=DfSlt?0`@sSByYV^I{h>$2&6OHrJJvi zmR_wy7r+-M8d>K-5$v*SrA&}N*{n8c?m79oYFhx$tJe6xvIF+jd!*&pORX)%v;O(F zbmT;_z8X!&Mu@A%D8LfNix#M8XIbG`DD6EY^$pURzBD9ksW1j@H0uNGptNd-G&GE6 zniA+#!vM3hQ-v`*ySrcNdQ&?7`!qo#^HAS61Te6b!g$XYHNxhgk0u7@;h#n_5W!Xo z@o=IbiX4tyZwFdl=_0=0GCg#aBr;U7nu|kQ@+}K;+L+ zx`iF~Q=P^sg>kfitl#1cBm%x*wseLwpU4w6$pK*r1Tg5z3H{h%&$vRn=rm3#j3f6) zoJJo@1pL!UX?P^^Gg*@)kSq|UKuz{c-l3--JM1TWa(Ahm#yMB{pMeH7tlts=zdj&+ z@Rh{k^1W(2Ss+Z=LEz&3w9(UFYG?76au`R`XEmnJbfHcr0_LI5!+)of0K!iN7chh? za6r;cO&dM^=;DGO{G}Ym(Gvpr(yJ z&(ICV;|G8EwJPm$NbULrr-^|X%;H!iVaTG<#f6d{(ZvNwp4-%MJ@?o%j`8?Gm%4=7r%@e<{MHPNBNodJ5ti&2 zx=Ml__KahECHsW^LkhJ)+k>HKd@8^=W6><0@B{{3IiVjr>={?iu15Ws$MfO(!KYTWZeoOI}U(3)&Pd|2bl2L_vUfn^D-U$54AU=x|qx@!i zEufZfmmbJAP|fxkp5c{Ky@s6&{)KUt=if}cxL z#+1zfyw$*K)U9t~TxD-(D)5*?_*+x0Q+Ke=JNtvC2xG;rnFvgpxXZwI>4dh#SgN|6 zNx-Cv`yIZE{bOLQdV+(cp0kyx8y%RRc1H~{pinE+t`5B%>{UU!=>DopBLZi=`mZg0 zhTP=Z|6!^d^h&Tx6TfM#OI-eMV7`w&aP+YWdJNd5RxMOk9d57G`Fcj(!F~%nZB^~% r9{>OV|Nr|D>9_y@00v1!K~w_(KNSc`!yb`700000NkvXXu0mjfAhDxv literal 0 HcmV?d00001 diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Session/SessionController+Event.swift b/Visual_Novel_iOS/Src/Modules/Chat/Session/SessionController+Event.swift index 39b65fc..206a0c2 100755 --- a/Visual_Novel_iOS/Src/Modules/Chat/Session/SessionController+Event.swift +++ b/Visual_Novel_iOS/Src/Modules/Chat/Session/SessionController+Event.swift @@ -395,9 +395,16 @@ extension SessionController { // sessionNavigationView.upDownNoticeView.showUnlocked(string: "XY") inputEntrance.inputTextView.resignFirstResponder() - let vc = ChatSettingListController() - vc.aiId = aiId - navigationController?.pushViewController(vc, animated: true) +// let vc = ChatSettingListController() +// vc.aiId = aiId +// navigationController?.pushViewController(vc, animated: true) + UIView.animate(withDuration: 0.25) { + self.swipeBgView.alpha = 1.0 + self.swipeView.snp.updateConstraints { make in + make.left.equalToSuperview().offset(UIScreen.width * 0.16) + } + self.view.layoutIfNeeded() + } } @objc func tapLikeButton(){ diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Session/SessionController.swift b/Visual_Novel_iOS/Src/Modules/Chat/Session/SessionController.swift index 44766fd..3e8989e 100755 --- a/Visual_Novel_iOS/Src/Modules/Chat/Session/SessionController.swift +++ b/Visual_Novel_iOS/Src/Modules/Chat/Session/SessionController.swift @@ -12,6 +12,9 @@ class SessionController: CLBaseViewController { var tableView: UITableView! // var headView: SessionAIHeadView! + var swipeView: ChatSettingSwipeView! + var swipeBgView: UIView! + // MARK: BottomViews var bottomViewsStackV : InputStackView! var toolView: UIView! @@ -197,6 +200,34 @@ extension SessionController { view.bringSubviewToFront(sessionNavigationView) view.bringSubviewToFront(bottomViewsStackV) + + swipeBgView = { + let bgView = UIView() + bgView.alpha = 0.0 + bgView.backgroundColor = UIColor.init(white: 0.0, alpha: 0.8) + view.addSubview(bgView) + bgView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(bgViewTap))) + bgView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + return bgView + }() + + swipeView = { + let v = ChatSettingSwipeView() + v.closeAction = { [weak self] in + self?.bgViewTap() + } + v.backgroundColor = .white + view.addSubview(v) + v.snp.makeConstraints { make in + make.left.equalToSuperview().inset(UIScreen.width) + make.top.bottom.equalToSuperview() + make.width.equalTo(UIScreen.width * 0.84) + } + return v + }() + } func setupUserInfo() { @@ -259,8 +290,15 @@ extension SessionController { markReadAll() } - - + @objc func bgViewTap() { + UIView.animate(withDuration: 0.25) { + self.swipeBgView.alpha = 0.0 + self.swipeView.snp.updateConstraints { make in + make.left.equalToSuperview().inset(UIScreen.width) + } + self.view.layoutIfNeeded() + } + } } diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatBackgroundCell.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatBackgroundCell.swift new file mode 100644 index 0000000..26517d5 --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatBackgroundCell.swift @@ -0,0 +1,132 @@ +// +// ChatBackgroundCell.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/27. +// + +import UIKit +import SnapKit + +struct BackgroundRow: RowModel { + let count: Int + var cellReuseID: String { "ChatBackgroundCell" } + func cellHeight(tableWidth: CGFloat) -> CGFloat { + // 使用 UITableView.automaticDimension 让 cell 自动计算高度 + return UITableView.automaticDimension + } +} + +class ChatBackgroundCell: UITableViewCell, CellConfigurable { + + private var collectionHeight: Constraint! + private var itemCount: Int = 6 // 默认6个item + private var layout: UICollectionViewFlowLayout! + + lazy var collectionView: UICollectionView = { + layout = UICollectionViewFlowLayout() + layout.minimumLineSpacing = 10.0 + layout.minimumInteritemSpacing = 10.0 + layout.sectionInset = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20) + + let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) + collectionView.delegate = self + collectionView.dataSource = self + collectionView.isScrollEnabled = false + collectionView.backgroundColor = .clear + collectionView.register(ChatBgCollectionCell.self, forCellWithReuseIdentifier: "ChatBgCollectionCell") + return collectionView + }() + + func configure(with row: RowModel) { + guard let row = row as? BackgroundRow else { return } + + // 更新数据源 + self.itemCount = row.count + + // 延迟更新,确保 collectionView 的 frame 已经确定 + DispatchQueue.main.async { [weak self] in + self?.updateCollectionViewLayout() + } + } + + private var lastCalculatedWidth: CGFloat = 0 + + private func updateCollectionViewLayout() { + guard collectionView.frame.width > 0 else { return } + + // 避免重复计算 + if abs(lastCalculatedWidth - collectionView.frame.width) < 1.0 { + return + } + lastCalculatedWidth = collectionView.frame.width + + // 重新加载数据,触发 sizeForItemAt 计算 + collectionView.reloadData() + + // 强制布局更新 + collectionView.layoutIfNeeded() + + // 获取准确的内容高度并更新约束 + let contentHeight = collectionView.collectionViewLayout.collectionViewContentSize.height + if contentHeight > 0 { + collectionHeight.update(offset: contentHeight) + } + } + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + configureViews() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func configureViews() { + contentView.addSubview(collectionView) + + collectionView.snp.makeConstraints { make in + make.top.leading.trailing.equalToSuperview() + make.width.equalToSuperview() + make.bottom.equalToSuperview().priority(999) // 让底部约束优先级稍低 + collectionHeight = make.height.equalTo(100).priority(1000).constraint // 初始占位高度 + } + } + + override func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize { + // 如果 collectionView 还没有正确的 frame,先设置一个临时的 + if collectionView.frame.width == 0 { + collectionView.frame = CGRect(x: 0, y: 0, width: targetSize.width, height: 100) + updateCollectionViewLayout() + } + + // 返回计算后的尺寸 + return super.systemLayoutSizeFitting(targetSize, withHorizontalFittingPriority: horizontalFittingPriority, verticalFittingPriority: verticalFittingPriority) + } + +} + +extension ChatBackgroundCell: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + return itemCount + } + + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ChatBgCollectionCell", for: indexPath) as! ChatBgCollectionCell + + // 这里可以根据 indexPath 配置不同的 cell 内容 + // 例如:cell.configure(with: data[indexPath.item]) + + return cell + } + + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { + let layout = collectionViewLayout as! UICollectionViewFlowLayout + let availableWidth = collectionView.frame.width - layout.sectionInset.left - layout.sectionInset.right + let itemWidth = (availableWidth - 2 * layout.minimumInteritemSpacing) / 3.0 + let itemHeight = itemWidth * (116.0 / 87) + return CGSize(width: itemWidth, height: itemHeight) + } +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatBgCollectionCell.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatBgCollectionCell.swift new file mode 100644 index 0000000..1516bf1 --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatBgCollectionCell.swift @@ -0,0 +1,84 @@ +// +// ChatBgCollectionCell.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/28. +// + +import UIKit + +class ChatBgCollectionCell: UICollectionViewCell { + + lazy var containView: UIView = { + let v = UIView() + v.backgroundColor = UIColor(hex: "#F3F4FF") + v.cornerRadius = 10.0 + v.clipsToBounds = true + return v + }() + + lazy var contentImgView: UIImageView = { + let imgView = UIImageView() + return imgView + }() + + lazy var selectedImgView: UIImageView = { + let imgview = UIImageView(image: UIImage(named: "rolel_setting_selected")) + return imgview + }() + + lazy var deleteImgView: UIImageView = { + let imgView = UIImageView(image: UIImage(named: "chat_setting_bg_delete")) + return imgView + }() + + lazy var addImgView: UIImageView = { + let imgView = UIImageView(image: UIImage(named: "chat_setting_add_bg")) + return imgView + }() + + override init(frame: CGRect) { + super.init(frame: frame) + setupViews() + setupData() + setupEvent() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func setupViews() { + contentView.addSubview(containView) + containView.addSubview(contentImgView) + containView.addSubview(addImgView) + containView.addSubview(selectedImgView) + containView.addSubview(deleteImgView) + + containView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + + contentImgView.snp.makeConstraints { make in + make.edges.equalToSuperview().inset(2) + } + + addImgView.snp.makeConstraints { make in + make.centerX.centerY.equalToSuperview() + } + + selectedImgView.snp.makeConstraints { make in + make.right.bottom.equalToSuperview().inset(0) + } + + deleteImgView.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.bottom.equalToSuperview().inset(7) + } + } + + func setupData() {} + + func setupEvent() {} + +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatFontCell.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatFontCell.swift new file mode 100644 index 0000000..c15e815 --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatFontCell.swift @@ -0,0 +1,118 @@ +// +// ChatFontCell.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/27. +// + +import UIKit + +// font +struct FontRow: RowModel { + let count: String + let icon: String + let title: String + var cellReuseID: String { "ChatFontCell" } + func cellHeight(tableWidth: CGFloat) -> CGFloat { 50 } +} + +class ChatFontCell: ChatSettingBaseCell, CellConfigurable { + + lazy var iconImgView: UIImageView = { + let imgView = UIImageView(image: UIImage(named: "role_exchange_mode")) + return imgView + }() + + lazy var titleLab: UILabel = { + let lab = UILabel() + lab.text = "XL-0826-32K" + lab.font = UIFont.boldSystemFont(ofSize: 14) + lab.textColor = UIColor(hex: "#666666") + return lab + }() + + lazy var fontSub: UIButton = { + let btn = UIButton() + btn.setImage(UIImage(named: "role_setting_font_sub"), for: .normal) + btn.addTarget(self, action: #selector(fontSubTap), for: .touchUpInside) + return btn + }() + + lazy var fontAdd: UIButton = { + let btn = UIButton() + btn.setImage(UIImage(named: "role_setting_font_add"), for: .normal) + btn.addTarget(self, action: #selector(fontAddTap), for: .touchUpInside) + return btn + }() + + lazy var fontLab: UILabel = { + let lab = UILabel() + lab.text = "20" + lab.font = UIFont.systemFont(ofSize: 14) + lab.textColor = UIColor(hex: "#999999") + lab.textAlignment = .center + return lab + }() + + func configure(with row: RowModel) { + guard let row = row as? FontRow else { return } + titleLab.text = row.title + iconImgView.image = UIImage(named: row.icon) + } + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + configureViews() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func configureViews() { + + containerView.addSubview(iconImgView) + containerView.addSubview(titleLab) + containerView.addSubview(fontSub) + containerView.addSubview(fontAdd) + containerView.addSubview(fontLab) + + iconImgView.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalToSuperview().offset(12) + make.width.height.equalTo(21) + } + + titleLab.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalTo(iconImgView.snp.right).offset(9) + make.right.equalTo(fontSub.snp.left).offset(-5) + } + + fontAdd.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.right.equalToSuperview().inset(20) + make.width.height.equalTo(40) + } + + fontLab.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.right.equalTo(fontAdd.snp.left).offset(-10) + } + + fontSub.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.right.equalTo(fontLab.snp.left).offset(-10) + make.width.height.equalTo(40) + } + } + + @objc func fontSubTap() { + print("sub sub sub") + } + + @objc func fontAddTap() { + print("add add add") + } +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatHistoryCell.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatHistoryCell.swift new file mode 100644 index 0000000..766f50f --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatHistoryCell.swift @@ -0,0 +1,204 @@ +// +// ChatHistoryCell.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/27. +// + +import Foundation +import SnapKit + +struct HistoryRow: RowModel { + let time: String + let icon: String + let title: String + let itemCount: Int // 添加数据项数量 + var cellReuseID: String { "ChatHistoryCell" } + func cellHeight(tableWidth: CGFloat) -> CGFloat { + // 使用更准确的高度计算 + let singleCellHeight = ChatHistoryContentCell.calculateHeight(for: tableWidth) + let deleteButtonHeight: CGFloat = 62 // DELETE按钮高度(footer view) + let totalHeight = CGFloat(itemCount) * singleCellHeight + deleteButtonHeight + return totalHeight + } +} + + +class ChatHistoryCell: UITableViewCell, CellConfigurable { + + private var tableViewHeight: Constraint! + private var itemCount: Int = 3 // 默认3个item + private var lastCalculatedHeight: CGFloat = 0 + private var isLayoutConfigured = false + + lazy var tableView: UITableView = { + let tableView = UITableView(frame: .zero, style: .plain) + tableView.separatorStyle = .none + tableView.delegate = self + tableView.dataSource = self + tableView.estimatedRowHeight = 60 // 更准确的预估高度 + tableView.rowHeight = UITableView.automaticDimension + tableView.backgroundColor = .clear + tableView.showsVerticalScrollIndicator = false + tableView.register(ChatHistoryContentCell.self, forCellReuseIdentifier: "ChatHistoryContentCell") + tableView.contentInset = .zero + tableView.isScrollEnabled = false + tableView.translatesAutoresizingMaskIntoConstraints = false + return tableView + }() + + func configure(with row: RowModel) { + guard let row = row as? HistoryRow else { return } + + // 更新数据源 + self.itemCount = row.itemCount + + // 立即更新tableView数据 + tableView.reloadData() + + // 如果布局已经配置,立即更新高度 + if isLayoutConfigured { + updateTableViewLayout() + } + } + + private func updateTableViewLayout() { + // 确保tableView已经布局完成 + tableView.layoutIfNeeded() + + // 强制计算contentSize + tableView.setNeedsLayout() + tableView.layoutIfNeeded() + + // tableView.contentSize.height 已经包含了所有内容的高度,包括footer view + let totalH = tableView.contentSize.height + + // 避免死循环和无效更新 + guard abs(lastCalculatedHeight - totalH) > 1.0 else { return } + lastCalculatedHeight = totalH + + // 更新高度约束 + tableViewHeight.update(offset: totalH) + + // 通知父tableView更新布局 + DispatchQueue.main.async { [weak self] in + guard let self = self else { return } + + // 通知父tableView需要更新高度 + if let tableView = self.superview as? UITableView { + tableView.beginUpdates() + tableView.endUpdates() + } else { + // 如果不是直接父tableView,则向上查找 + var currentView = self.superview + while currentView != nil { + if let tableView = currentView as? UITableView { + tableView.beginUpdates() + tableView.endUpdates() + break + } + currentView = currentView?.superview + } + } + } + } + + override func layoutSubviews() { + super.layoutSubviews() + + // 确保Cell本身宽度确定后再计算 + guard contentView.bounds.width > 0 else { return } + + // 设置tableView的宽度 + tableView.frame.size.width = contentView.bounds.width + + // 标记布局已配置 + if !isLayoutConfigured { + isLayoutConfigured = true + } + + // 更新tableView布局 + updateTableViewLayout() + } + + + @objc func deleteBtnTap() { + + } + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + configureViews() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func configureViews() { + contentView.addSubview(tableView) + + tableView.snp.makeConstraints { make in + make.top.left.right.equalToSuperview() + make.width.equalToSuperview() + make.bottom.equalToSuperview().priority(.low) // 让底部约束优先级稍低 + tableViewHeight = make.height.equalTo(100).priority(1000).constraint // 初始占位高度 + } + + // 确保tableView的约束正确设置 + tableView.setContentHuggingPriority(.required, for: .vertical) + tableView.setContentCompressionResistancePriority(.required, for: .vertical) + } + +} + +extension ChatHistoryCell: UITableViewDelegate, UITableViewDataSource { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return itemCount + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "ChatHistoryContentCell", for: indexPath) as! ChatHistoryContentCell + cell.selectionStyle = .none + + // 这里可以根据 indexPath 配置不同的 cell 内容 + // 例如:cell.configure(with: data[indexPath.item]) + + return cell + } + + func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { + return CGFLOAT_MIN + } + + func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { + return UITableView.automaticDimension + } + + func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { + let footer = UIView() + footer.backgroundColor = .clear + + let deleteBtn = UIButton() + deleteBtn.cornerRadius = 25.0 + deleteBtn.borderColor = UIColor(hex: "#FF3B30") + deleteBtn.borderWidth = 2.0 + deleteBtn.setTitle("DELETE ", for: .normal) + deleteBtn.setTitleColor(UIColor(hex: "#FF3B30"), for: .normal) + deleteBtn.setImage(UIImage(named: "chat_setting_delete"), for: .normal) + deleteBtn.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17.0) + deleteBtn.setUp(.default, padding: 5.0) + deleteBtn.addTarget(self, action: #selector(deleteBtnTap), for: .touchUpInside) + footer.addSubview(deleteBtn) + + deleteBtn.snp.makeConstraints { make in + make.top.equalToSuperview().offset(10) + make.bottom.equalToSuperview().inset(2) + make.left.right.equalToSuperview().inset(20) + make.height.equalTo(50) + } + + return footer + } +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatHistoryContentCell.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatHistoryContentCell.swift new file mode 100644 index 0000000..8319603 --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatHistoryContentCell.swift @@ -0,0 +1,124 @@ +// +// ChatHistoryContentCell.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/27. +// + +import UIKit + +class ChatHistoryContentCell: UITableViewCell { + + lazy var containerView: UIView = { + let view = UIView() + view.backgroundColor = UIColor(hex: "#F6F6F6") + view.cornerRadius = 15.0 + return view + }() + + lazy var iconImgView: UIImageView = { + let imgView = UIImageView() + imgView.cornerRadius = 12.5 + imgView.backgroundColor = .blue + return imgView + }() + + lazy var timeLab: UILabel = { + let lab = UILabel() + lab.text = "2025/09/26 17:30" + lab.textColor = UIColor.hexString("#999999", alpha: 0.6) + lab.font = UIFont.systemFont(ofSize: 12) + return lab + }() + + lazy var contentLab: UILabel = { + let lab = UILabel() + lab.text = "The Boss Fell for Me: My Days Screwing Nuts at Foxconn" + lab.textColor = UIColor(hex: "#666666") + lab.font = UIFont.systemFont(ofSize: 14) + lab.numberOfLines = 2 + return lab + }() + + lazy var arrowImgView: UIImageView = { + let imgView = UIImageView(image: UIImage(named: "role_setting_go")) + return imgView + }() + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + configureViews() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func configureViews() { + + contentView.addSubview(containerView) + containerView.addSubview(iconImgView) + containerView.addSubview(timeLab) + containerView.addSubview(contentLab) + containerView.addSubview(arrowImgView) + + containerView.snp.makeConstraints { make in + make.left.right.equalToSuperview().inset(20) + make.top.bottom.equalToSuperview().inset(2.5) + } + + iconImgView.snp.makeConstraints { make in + make.left.equalToSuperview().inset(12) + make.top.equalToSuperview().offset(10) + make.width.height.equalTo(25) + } + + timeLab.snp.makeConstraints { make in + make.left.equalTo(iconImgView.snp.right).offset(8) + make.top.equalTo(iconImgView.snp.top) + make.right.equalTo(arrowImgView.snp.left).offset(-15) + } + + contentLab.snp.makeConstraints { make in + make.left.equalTo(timeLab.snp.left) + make.right.equalTo(timeLab.snp.right).offset(-15) + make.top.equalTo(timeLab.snp.bottom).offset(6) + make.bottom.equalToSuperview().inset(10) + } + + arrowImgView.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.right.equalToSuperview().inset(15) + make.width.height.equalTo(15) + } + + // 设置内容优先级,确保自动布局正确计算高度 + contentLab.setContentHuggingPriority(.required, for: .vertical) + contentLab.setContentCompressionResistancePriority(.required, for: .vertical) + } + + // 计算cell的准确高度 + static func calculateHeight(for width: CGFloat) -> CGFloat { + let containerWidth = width - 40 // 左右各20的inset + let iconHeight: CGFloat = 25 + let iconTopMargin: CGFloat = 10 + let timeToContentMargin: CGFloat = 6 + let contentBottomMargin: CGFloat = 10 + let cellTopBottomMargin: CGFloat = 5 // 上下各2.5的inset + + // 计算时间标签高度 + let timeHeight: CGFloat = 12 // 字体大小12 + + // 计算内容标签高度(2行文本) + let contentFont = UIFont.systemFont(ofSize: 14) + let contentWidth = containerWidth - 12 - 25 - 8 - 15 - 15 // 减去各种边距 + let contentHeight = contentFont.lineHeight * 2 // 2行文本 + + let totalHeight = cellTopBottomMargin + iconTopMargin + max(iconHeight, timeHeight) + timeToContentMargin + contentHeight + contentBottomMargin + cellTopBottomMargin + + return totalHeight + } + + +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatResponseTokenCell.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatResponseTokenCell.swift new file mode 100644 index 0000000..d8988f4 --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatResponseTokenCell.swift @@ -0,0 +1,91 @@ +// +// ChatResponseTokenCell.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/27. +// + +import UIKit + +// token +struct TokenRow: RowModel { + let count: String + var cellReuseID: String { "ChatResponseTokenCell" } + func cellHeight(tableWidth: CGFloat) -> CGFloat { 50 } +} + +class ChatResponseTokenCell: ChatSettingBaseCell, CellConfigurable { + + lazy var countLab: UILabel = { + let lab = UILabel() + lab.textColor = UIColor(hex: "#666666") + lab.font = UIFont.boldSystemFont(ofSize: 14) + lab.text = "0" + lab.textAlignment = .center + return lab + }() + + lazy var subBtn: UIButton = { + let btn = UIButton() + btn.setImage(UIImage(named: "role_setting_sub"), for: .normal) + btn.addTarget(self, action: #selector(subBtnTap), for: .touchUpInside) + return btn + }() + + lazy var addBtn: UIButton = { + let btn = UIButton() + btn.setImage(UIImage(named: "role_setting_add"), for: .normal) + btn.addTarget(self, action: #selector(addBtnTap), for: .touchUpInside) + return btn + }() + + @objc func subBtnTap() { + + } + + @objc func addBtnTap() { + + } + + func configure(with row: RowModel) { + guard let row = row as? TokenRow else { return } + countLab.text = row.count + } + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + configureViews() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func configureViews() { + + containerView.addSubview(subBtn) + containerView.addSubview(countLab) + containerView.addSubview(addBtn) + + countLab.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalTo(subBtn.snp.right).offset(5) + make.right.equalTo(addBtn.snp.left).offset(-5) + } + + subBtn.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalToSuperview().inset(10) + make.width.equalTo(25) + make.height.equalTo(25) + } + + addBtn.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.right.equalToSuperview().inset(10) + make.width.equalTo(25) + make.height.equalTo(25) + } + } +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatSettingBaseCell.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatSettingBaseCell.swift new file mode 100644 index 0000000..d5f2a1e --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatSettingBaseCell.swift @@ -0,0 +1,39 @@ +// +// ChatSettingBaseCell.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/27. +// + +import UIKit + +class ChatSettingBaseCell: UITableViewCell { + + lazy var containerView: UIView = { + let view = UIView() + view.backgroundColor = UIColor(hex: "#F6F6F6") + view.cornerRadius = 15.0 + return view + }() + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + setupViews() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func setupViews() { + + contentView.addSubview(containerView) + + containerView.snp.makeConstraints { make in + make.left.right.equalToSuperview().inset(20) + make.top.bottom.equalToSuperview().inset(2.5) + make.height.equalTo(45.0) + } + } +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatSwipeCell.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatSwipeCell.swift new file mode 100644 index 0000000..b27fe5c --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/Cell/ChatSwipeCell.swift @@ -0,0 +1,120 @@ +// +// ChatSwipeCell.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/27. +// + +import UIKit + +// icon title 声音头像 箭头 +struct ImageRow: RowModel { + let icon: String + let title: String + let showAvatar: Bool + let showArrow: Bool + let showSwitch: Bool + var cellReuseID: String { "ChatSwipeCell" } + func cellHeight(tableWidth: CGFloat) -> CGFloat { 50 } +} + +class ChatSwipeCell: ChatSettingBaseCell, CellConfigurable { + + lazy var iconImgView: UIImageView = { + let imgView = UIImageView(image: UIImage(named: "role_exchange_mode")) + return imgView + }() + + lazy var titleLab: UILabel = { + let lab = UILabel() + lab.text = "XL-0826-32K" + lab.font = UIFont.boldSystemFont(ofSize: 14) + lab.textColor = UIColor(hex: "#666666") + return lab + }() + + lazy var avatarView : UIImageView = { + let imgView = UIImageView() + imgView.cornerRadius = 10.5 + imgView.backgroundColor = .blue + return imgView + }() + + lazy var arrowImgView: UIImageView = { + let imgView = UIImageView(image: UIImage(named: "role_setting_go")) + return imgView + }() + + lazy var switchControl: SevenSwitch = { + let con = SevenSwitch() + con.onTintColor = UIColor(hex: "#020025") + con.onThumbTintColor = UIColor(hex: "#00CC88") + con.inactiveColor = UIColor(hex: "#020025") + return con + }() + + lazy var stackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [avatarView, arrowImgView]) + stackView.spacing = 5 + stackView.distribution = .fill + stackView.alignment = .center + return stackView + }() + + func configure(with row: RowModel) { + guard let row = row as? ImageRow else { return } + iconImgView.image = UIImage(named: row.icon) + titleLab.text = row.title + avatarView.isHidden = !row.showAvatar + arrowImgView.isHidden = !row.showArrow + switchControl.isHidden = !row.showSwitch + } + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + configureViews() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func configureViews() { + containerView.addSubview(iconImgView) + containerView.addSubview(titleLab) + containerView.addSubview(stackView) + containerView.addSubview(switchControl) + + iconImgView.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalToSuperview().offset(12) + make.width.height.equalTo(21) + } + + avatarView.snp.makeConstraints { make in + make.width.height.equalTo(21) + } + + stackView.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.right.equalToSuperview().inset(15) + } + + titleLab.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.left.equalTo(iconImgView.snp.right).offset(9) + make.right.equalTo(stackView.snp.left).offset(-5) + } + + switchControl.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.right.equalToSuperview().inset(15) + make.width.equalTo(45) + make.height.equalTo(23) + } + + titleLab.setContentCompressionResistancePriority(.fittingSizeLevel, for: .horizontal) + titleLab.setContentHuggingPriority(.fittingSizeLevel, for: .horizontal) + } +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/CellProtocol/ActionProtocol.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/CellProtocol/ActionProtocol.swift new file mode 100644 index 0000000..4d2bc62 --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/CellProtocol/ActionProtocol.swift @@ -0,0 +1,19 @@ +// +// ActionProtocol.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/27. +// + +import Foundation + +/// 1. 数据协议:每行只要告诉我复用ID 和 高度 +protocol RowModel { + var cellReuseID: String { get } + func cellHeight(tableWidth: CGFloat) -> CGFloat +} + +/// 2. 渲染协议:Cell 自己负责填数据 +protocol CellConfigurable: AnyObject { + func configure(with row: RowModel) +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/View/ChatSettingSwipeView.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/View/ChatSettingSwipeView.swift new file mode 100644 index 0000000..1f60177 --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/View/ChatSettingSwipeView.swift @@ -0,0 +1,196 @@ +// +// ChatSettingSwipeView.swift +// Visual_Novel_iOS +// +// Created by mh on 2025/10/24. +// + +import UIKit + +class ChatSettingSwipeView: CLContainer { + + var closeAction: (()->Void)? + + var sectionTitle: [String] = ["Switch Model", "Sound", "Maximum number of response tokens Maximum number of response tokens", "Appearance", "Background", "Historical Archives"] + var rows: [[RowModel]] = [ + [ImageRow(icon: "role_exchange_mode", title: "XL-0826-32K", showAvatar: false, showArrow: true, showSwitch: false), ImageRow(icon: "role_text_mode", title: "Short Text Mode", showAvatar: false, showArrow: true, showSwitch: false)], + [ImageRow(icon: "role_voice", title: "Voice actor", showAvatar: true, showArrow: true, showSwitch: false), ImageRow(icon: "role_talk", title: "Play dialogue only", showAvatar: false, showArrow: false, showSwitch: true)], + [TokenRow(count: "2500")], + [FontRow(count: "20", icon: "role_font", title: "Font size"), ImageRow(icon: "role_chat_mode", title: "Chat Mode", showAvatar: false, showArrow: true, showSwitch: false), ImageRow(icon: "role_chat_buttle", title: "Chat buttle", showAvatar: false, showArrow: true, showSwitch: false)], + [BackgroundRow(count: 50)], + [HistoryRow(time: "", icon: "", title: "", itemCount: 30)] + ] + + + lazy var titleLab: UILabel = { + let lab = UILabel() + lab.text = "Setting" + lab.font = UIFont.boldSystemFont(ofSize: 18) + lab.textColor = UIColor(hex: "#000000") + return lab + }() + + lazy var closeBtn: UIButton = { + let btn = UIButton(type: .custom) + btn.setImage(UIImage(named: "role_chat_close"), for: .normal) + btn.addTarget(self, action: #selector(closeBtnTap), for: .touchUpInside) + return btn + }() + + lazy var newChatBtn: UIButton = { + let btn = UIButton(type: .custom) + btn.setBackgroundImage(UIImage(named: "role_new_chat"), for: .normal) + btn.addTarget(self, action: #selector(newChatBtnTap), for: .touchUpInside) + btn.setTitle("+ Start New Chat", for: .normal) + btn.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17) + btn.imageView?.contentMode = .scaleToFill + return btn + }() + + lazy var tableView: UITableView = { + let tableView = UITableView(frame: .zero, style: .grouped) + tableView.separatorStyle = .none + tableView.delegate = self + tableView.dataSource = self + tableView.estimatedRowHeight = 72 + tableView.rowHeight = UITableView.automaticDimension + tableView.backgroundColor = .clear + tableView.showsVerticalScrollIndicator = false + tableView.tableFooterView = UIView() + tableView.register(ChatSwipeCell.self, forCellReuseIdentifier: "ChatSwipeCell") + tableView.register(ChatResponseTokenCell.self, forCellReuseIdentifier: "ChatResponseTokenCell") + tableView.register(ChatFontCell.self, forCellReuseIdentifier: "ChatFontCell") + tableView.register(ChatBackgroundCell.self, forCellReuseIdentifier: "ChatBackgroundCell") + tableView.register(ChatHistoryCell.self, forCellReuseIdentifier: "ChatHistoryCell") + tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) + return tableView + }() + + + override init(frame: CGRect) { + super.init(frame: frame) + + setupViews() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func setupViews() { + + navigationView = NavigationView() + navigationView?.backButton.isHidden = false + navigationView?.isHidden = true + addSubview(navigationView ?? UIView()) + + addSubview(titleLab) + addSubview(closeBtn) + addSubview(tableView) + addSubview(newChatBtn) + + navigationView?.snp.makeConstraints { make in + make.top.equalToSuperview() + make.left.equalToSuperview() + make.right.equalToSuperview() + make.height.equalTo(UIWindow.navBarTotalHeight) + } + + titleLab.snp.makeConstraints { make in + make.left.equalToSuperview().offset(20) + if self.navigationView != nil { + make.centerY.equalTo(self.navigationView!.titleLabel.snp.centerY) + } else { + make.top.equalToSuperview().offset(UIDevice().statusBarHeight + 13.0) + } + + make.right.equalTo(closeBtn.snp.left).offset(-10) + } + + closeBtn.snp.makeConstraints { make in + make.centerY.equalTo(titleLab.snp.centerY) + make.right.equalToSuperview().inset(20) + make.width.height.equalTo(25) + } + + + newChatBtn.snp.makeConstraints { make in + make.left.right.equalToSuperview().inset(20) + make.height.equalTo(50) + make.bottom.equalToSuperview().inset(UIDevice().safeBottom + 5.0) + } + + tableView.snp.makeConstraints { make in + make.left.right.equalToSuperview() + make.top.equalTo(closeBtn.snp.bottom).offset(10) + make.bottom.equalTo(newChatBtn.snp.top).offset(-5) + } + + // 设置tableView的contentInset,让内容可以滑动到最顶部 + tableView.contentInsetAdjustmentBehavior = .never + tableView.automaticallyAdjustsScrollIndicatorInsets = false + + } +} + +extension ChatSettingSwipeView { + + @objc func closeBtnTap() { + self.closeAction?() + } + + @objc func newChatBtnTap() { + + } +} + +extension ChatSettingSwipeView: UITableViewDelegate, UITableViewDataSource { + + func scrollViewDidScroll(_ scrollView: UIScrollView) { + // 确保tableView内容可以滑动到最顶部 + // 不需要额外的contentInset调整 + } + + func numberOfSections(in tableView: UITableView) -> Int { + return rows.count + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return rows[section].count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let row = rows[indexPath.section][indexPath.row] + let cell = tableView.dequeueReusableCell(withIdentifier: row.cellReuseID, for: indexPath) + cell.selectionStyle = .none + (cell as? CellConfigurable)?.configure(with: row) + return cell + } + + func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { + let header = UIView() + + let lab = UILabel() + lab.text = sectionTitle[section] + lab.textColor = UIColor(hex: "#333333") + lab.font = UIFont.boldSystemFont(ofSize: 16) + lab.numberOfLines = 0 + header.addSubview(lab) + lab.snp.makeConstraints { make in + make.left.equalToSuperview().offset(20) + make.right.equalToSuperview() + make.top.equalToSuperview().inset(5) + make.bottom.equalToSuperview() + } + + return header + } + + func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { + return UIView() + } + + func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { + return CGFLOAT_MIN + } +} diff --git a/Visual_Novel_iOS/Src/Modules/Chat/Setting/View/SevenSwitch.swift b/Visual_Novel_iOS/Src/Modules/Chat/Setting/View/SevenSwitch.swift new file mode 100644 index 0000000..fde4935 --- /dev/null +++ b/Visual_Novel_iOS/Src/Modules/Chat/Setting/View/SevenSwitch.swift @@ -0,0 +1,543 @@ +// +// SevenSwitch.swift +// +// Created by Benjamin Vogelzang on 6/20/14. +// Copyright (c) 2014 Ben Vogelzang. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit +import QuartzCore + +@IBDesignable @objc open class SevenSwitch: UIControl { + + // public + + /* + * Set (without animation) whether the switch is on or off + */ + @IBInspectable open var on: Bool { + get { + return switchValue + } + set { + switchValue = newValue + self.setOn(newValue, animated: false) + } + } + + /* + * Sets the background color that shows when the switch off and actively being touched. + * Defaults to light gray. + */ + @IBInspectable open var activeColor: UIColor = UIColor(red: 0.89, green: 0.89, blue: 0.89, alpha: 1) { + willSet { + if self.on && !self.isTracking { + backgroundView.backgroundColor = newValue + } + } + } + + /* + * Sets the background color when the switch is off. + * Defaults to clear color. + */ + @IBInspectable open var inactiveColor: UIColor = UIColor.clear { + willSet { + if !self.on && !self.isTracking { + backgroundView.backgroundColor = newValue + } + } + } + + /* + * Sets the background color that shows when the switch is on. + * Defaults to green. + */ + @IBInspectable open var onTintColor: UIColor = UIColor(red: 0.3, green: 0.85, blue: 0.39, alpha: 1) { + willSet { + if self.on && !self.isTracking { + backgroundView.backgroundColor = newValue + backgroundView.layer.borderColor = newValue.cgColor + } + } + } + + /* + * Sets the border color that shows when the switch is off. Defaults to light gray. + */ + @IBInspectable open var bordersColor: UIColor = UIColor(red: 0.78, green: 0.78, blue: 0.8, alpha: 1) { + willSet { + if !self.on { + backgroundView.layer.borderColor = newValue.cgColor + } + } + } + + /* + * Sets the knob color. Defaults to white. + */ + @IBInspectable open var thumbTintColor: UIColor = UIColor.white { + willSet { + if !userDidSpecifyOnThumbTintColor { + onThumbTintColor = newValue + } + if (!userDidSpecifyOnThumbTintColor || !self.on) && !self.isTracking { + thumbView.backgroundColor = newValue + } + } + } + + /* + * Sets the knob color that shows when the switch is on. Defaults to white. + */ + @IBInspectable open var onThumbTintColor: UIColor = UIColor.white { + willSet { + userDidSpecifyOnThumbTintColor = true + if self.on && !self.isTracking { + thumbView.backgroundColor = newValue + } + } + } + + /* + * Sets the shadow color of the knob. Defaults to gray. + */ + @IBInspectable open var shadowColor: UIColor = UIColor.gray { + willSet { + thumbView.layer.shadowColor = newValue.cgColor + } + } + + /* + * Sets whether or not the switch edges are rounded. + * Set to NO to get a stylish square switch. + * Defaults to YES. + */ + @IBInspectable open var isRounded: Bool = true { + willSet { + if newValue { + backgroundView.layer.cornerRadius = self.frame.size.height * 0.5 + thumbView.layer.cornerRadius = (self.frame.size.height * 0.5) - 1 + } + else { + backgroundView.layer.cornerRadius = 2 + thumbView.layer.cornerRadius = 2 + } + + thumbView.layer.shadowPath = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + } + } + + /* + * Sets the image that shows on the switch thumb. + */ + @IBInspectable open var thumbImage: UIImage! { + willSet { + thumbImageView.image = newValue + } + } + + /* + * Sets the image that shows when the switch is on. + * The image is centered in the area not covered by the knob. + * Make sure to size your images appropriately. + */ + @IBInspectable open var onImage: UIImage! { + willSet { + onImageView.image = newValue + } + } + + /* + * Sets the image that shows when the switch is off. + * The image is centered in the area not covered by the knob. + * Make sure to size your images appropriately. + */ + @IBInspectable open var offImage: UIImage! { + willSet { + offImageView.image = newValue + } + } + + /* + * Sets the text that shows when the switch is on. + * The text is centered in the area not covered by the knob. + */ + open var onLabel: UILabel! + + /* + * Sets the text that shows when the switch is off. + * The text is centered in the area not covered by the knob. + */ + open var offLabel: UILabel! + + // internal + internal var backgroundView: UIView! + internal var thumbView: UIView! + internal var onImageView: UIImageView! + internal var offImageView: UIImageView! + internal var thumbImageView: UIImageView! + // private + fileprivate var currentVisualValue: Bool = false + fileprivate var startTrackingValue: Bool = false + fileprivate var didChangeWhileTracking: Bool = false + fileprivate var isAnimating: Bool = false + fileprivate var userDidSpecifyOnThumbTintColor: Bool = false + fileprivate var switchValue: Bool = false + + /* + * Initialization + */ + public convenience init() { + self.init(frame: CGRect(x: 0, y: 0, width: 50, height: 30)) + } + + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + + self.setup() + } + + override public init(frame: CGRect) { + let initialFrame = frame.isEmpty ? CGRect(x: 0, y: 0, width: 50, height: 30) : frame + super.init(frame: initialFrame) + + self.setup() + } + + + /* + * Setup the individual elements of the switch and set default values + */ + fileprivate func setup() { + + // background + self.backgroundView = UIView(frame: CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height)) + backgroundView.backgroundColor = UIColor.clear + backgroundView.layer.cornerRadius = self.frame.size.height * 0.5 + backgroundView.layer.borderColor = self.bordersColor.cgColor + backgroundView.layer.borderWidth = 0.0 + backgroundView.isUserInteractionEnabled = false + backgroundView.clipsToBounds = true + self.addSubview(backgroundView) + + // on/off images + self.onImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.frame.size.width - self.frame.size.height, height: self.frame.size.height)) + onImageView.alpha = 1.0 + onImageView.contentMode = UIView.ContentMode.center + backgroundView.addSubview(onImageView) + + self.offImageView = UIImageView(frame: CGRect(x: self.frame.size.height, y: 0, width: self.frame.size.width - self.frame.size.height, height: self.frame.size.height)) + offImageView.alpha = 1.0 + offImageView.contentMode = UIView.ContentMode.center + backgroundView.addSubview(offImageView) + + // labels + self.onLabel = UILabel(frame: CGRect(x: 0, y: 0, width: self.frame.size.width - self.frame.size.height, height: self.frame.size.height)) + onLabel.textAlignment = NSTextAlignment.center + onLabel.textColor = UIColor.lightGray + onLabel.font = UIFont.systemFont(ofSize: 12) + backgroundView.addSubview(onLabel) + + self.offLabel = UILabel(frame: CGRect(x: self.frame.size.height, y: 0, width: self.frame.size.width - self.frame.size.height, height: self.frame.size.height)) + offLabel.textAlignment = NSTextAlignment.center + offLabel.textColor = UIColor.lightGray + offLabel.font = UIFont.systemFont(ofSize: 12) + backgroundView.addSubview(offLabel) + + // thumb + self.thumbView = UIView(frame: CGRect(x: 1, y: 1, width: self.frame.size.height - 2, height: self.frame.size.height - 2)) + thumbView.backgroundColor = self.thumbTintColor + thumbView.layer.cornerRadius = (self.frame.size.height * 0.5) - 1 + thumbView.layer.shadowColor = self.shadowColor.cgColor + thumbView.layer.shadowRadius = 2.0 + thumbView.layer.shadowOpacity = 0.5 + thumbView.layer.shadowOffset = CGSize(width: 0, height: 3) + thumbView.layer.shadowPath = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + thumbView.layer.masksToBounds = false + thumbView.isUserInteractionEnabled = false + self.addSubview(thumbView) + + // thumb image + self.thumbImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: thumbView.frame.size.width, height: thumbView.frame.size.height)) + thumbImageView.contentMode = UIView.ContentMode.center + thumbImageView.autoresizingMask = UIView.AutoresizingMask.flexibleWidth + thumbView.addSubview(thumbImageView) + + self.on = false + } + + override open func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool { + super.beginTracking(touch, with: event) + + startTrackingValue = self.on + didChangeWhileTracking = false + + let activeKnobWidth = self.bounds.size.height - 2 + 5 + isAnimating = true + + UIView.animate(withDuration: 0.3, delay: 0.0, options: [UIView.AnimationOptions.curveEaseOut, UIView.AnimationOptions.beginFromCurrentState], animations: { + if self.on { + self.thumbView.frame = CGRect(x: self.bounds.size.width - (activeKnobWidth + 1), y: self.thumbView.frame.origin.y, width: activeKnobWidth, height: self.thumbView.frame.size.height) + self.backgroundView.backgroundColor = self.onTintColor + self.thumbView.backgroundColor = self.onThumbTintColor + } + else { + self.thumbView.frame = CGRect(x: self.thumbView.frame.origin.x, y: self.thumbView.frame.origin.y, width: activeKnobWidth, height: self.thumbView.frame.size.height) + self.backgroundView.backgroundColor = self.activeColor + self.thumbView.backgroundColor = self.thumbTintColor + } + }, completion: { finished in + self.isAnimating = false + }) + + let shadowAnim = CABasicAnimation(keyPath: "shadowPath") + shadowAnim.duration = 0.3 + shadowAnim.fromValue = thumbView.layer.shadowPath + shadowAnim.toValue = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + thumbView.layer.add(shadowAnim, forKey: "shadowPath") + thumbView.layer.shadowPath = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + + return true + } + + override open func continueTracking(_ touch: UITouch, with event: UIEvent?) -> Bool { + super.continueTracking(touch, with: event) + + // Get touch location + let lastPoint = touch.location(in: self) + + // update the switch to the correct visuals depending on if + // they moved their touch to the right or left side of the switch + if lastPoint.x > self.bounds.size.width * 0.5 { + self.showOn(true) + if !startTrackingValue { + didChangeWhileTracking = true + } + } + else { + self.showOff(true) + if startTrackingValue { + didChangeWhileTracking = true + } + } + + return true + } + + override open func endTracking(_ touch: UITouch?, with event: UIEvent?) { + super.endTracking(touch, with: event) + + let previousValue = self.on + + if didChangeWhileTracking { + self.setOn(currentVisualValue, animated: true) + } + else { + self.setOn(!self.on, animated: true) + } + + if previousValue != self.on { + self.sendActions(for: UIControl.Event.valueChanged) + } + } + + override open func cancelTracking(with event: UIEvent?) { + super.cancelTracking(with: event) + + // just animate back to the original value + if self.on { + self.showOn(true) + } + else { + self.showOff(true) + } + } + + override open func layoutSubviews() { + super.layoutSubviews() + + if !isAnimating { + let frame = self.frame + + // background + backgroundView.frame = CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height) + backgroundView.layer.cornerRadius = self.isRounded ? frame.size.height * 0.5 : 2 + + // images + onImageView.frame = CGRect(x: 0, y: 0, width: frame.size.width - frame.size.height, height: frame.size.height) + offImageView.frame = CGRect(x: frame.size.height, y: 0, width: frame.size.width - frame.size.height, height: frame.size.height) + self.onLabel.frame = CGRect(x: 0, y: 0, width: frame.size.width - frame.size.height, height: frame.size.height) + self.offLabel.frame = CGRect(x: frame.size.height, y: 0, width: frame.size.width - frame.size.height, height: frame.size.height) + + // thumb + let normalKnobWidth = frame.size.height - 2 + if self.on { + thumbView.frame = CGRect(x: frame.size.width - (normalKnobWidth + 1), y: 1, width: frame.size.height - 2, height: normalKnobWidth) + thumbImageView.frame = CGRect(x: frame.size.width - normalKnobWidth, y: 0, width: normalKnobWidth, height: normalKnobWidth) + } + else { + thumbView.frame = CGRect(x: 1, y: 1, width: normalKnobWidth, height: normalKnobWidth) + thumbImageView.frame = CGRect(x: 0, y: 0, width: normalKnobWidth, height: normalKnobWidth) + } + + thumbView.layer.cornerRadius = self.isRounded ? (frame.size.height * 0.5) - 1 : 2 + thumbView.layer.shadowPath = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + } + } + + /* + * Set the state of the switch to on or off, optionally animating the transition. + */ + open func setOn(_ isOn: Bool, animated: Bool) { + switchValue = isOn + + if on { + self.showOn(animated) + } + else { + self.showOff(animated) + } + } + + /* + * Detects whether the switch is on or off + * + * @return BOOL YES if switch is on. NO if switch is off + */ + open func isOn() -> Bool { + return self.on + } + + /* + * update the looks of the switch to be in the on position + * optionally make it animated + */ + fileprivate func showOn(_ animated: Bool) { + let normalKnobWidth = self.bounds.size.height - 2 + let activeKnobWidth = normalKnobWidth + 5 + if animated { + isAnimating = true + UIView.animate(withDuration: 0.3, delay: 0.0, options: [UIView.AnimationOptions.curveEaseOut, UIView.AnimationOptions.beginFromCurrentState], animations: { + if self.isTracking { + self.thumbView.frame = CGRect(x: self.bounds.size.width - (activeKnobWidth + 1), y: self.thumbView.frame.origin.y, width: activeKnobWidth, height: self.thumbView.frame.size.height) + } + else { + self.thumbView.frame = CGRect(x: self.bounds.size.width - (normalKnobWidth + 1), y: self.thumbView.frame.origin.y, width: normalKnobWidth, height: self.thumbView.frame.size.height) + } + + self.backgroundView.backgroundColor = self.onTintColor + self.backgroundView.layer.borderColor = self.onTintColor.cgColor + self.thumbView.backgroundColor = self.onThumbTintColor + self.onImageView.alpha = 1.0 + self.offImageView.alpha = 0 + self.onLabel.alpha = 1.0 + self.offLabel.alpha = 0 + }, completion: { finished in + self.isAnimating = false + }) + + let shadowAnim = CABasicAnimation(keyPath: "shadowPath") + shadowAnim.duration = 0.3 + shadowAnim.fromValue = thumbView.layer.shadowPath + shadowAnim.toValue = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + thumbView.layer.add(shadowAnim, forKey: "shadowPath") + thumbView.layer.shadowPath = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + } + else { + if self.isTracking { + thumbView.frame = CGRect(x: self.bounds.size.width - (activeKnobWidth + 1), y: thumbView.frame.origin.y, width: activeKnobWidth, height: thumbView.frame.size.height) + } + else { + thumbView.frame = CGRect(x: self.bounds.size.width - (normalKnobWidth + 1), y: thumbView.frame.origin.y, width: normalKnobWidth, height: thumbView.frame.size.height) + } + + backgroundView.backgroundColor = self.onTintColor + backgroundView.layer.borderColor = self.onTintColor.cgColor + thumbView.backgroundColor = self.onThumbTintColor + onImageView.alpha = 1.0 + offImageView.alpha = 0 + onLabel.alpha = 1.0 + offLabel.alpha = 0 + } + + currentVisualValue = true + } + + /* + * update the looks of the switch to be in the off position + * optionally make it animated + */ + fileprivate func showOff(_ animated: Bool) { + let normalKnobWidth = self.bounds.size.height - 2 + let activeKnobWidth = normalKnobWidth + 5 + + if animated { + isAnimating = true + UIView.animate(withDuration: 0.3, delay: 0.0, options: [UIView.AnimationOptions.curveEaseOut, UIView.AnimationOptions.beginFromCurrentState], animations: { + if self.isTracking { + self.thumbView.frame = CGRect(x: 1, y: self.thumbView.frame.origin.y, width: activeKnobWidth, height: self.thumbView.frame.size.height); + self.backgroundView.backgroundColor = self.activeColor + } + else { + self.thumbView.frame = CGRect(x: 1, y: self.thumbView.frame.origin.y, width: normalKnobWidth, height: self.thumbView.frame.size.height); + self.backgroundView.backgroundColor = self.inactiveColor + } + + self.backgroundView.layer.borderColor = self.bordersColor.cgColor + self.thumbView.backgroundColor = self.thumbTintColor + self.onImageView.alpha = 0 + self.offImageView.alpha = 1.0 + self.onLabel.alpha = 0 + self.offLabel.alpha = 1.0 + + }, completion: { finished in + self.isAnimating = false + }) + + let shadowAnim = CABasicAnimation(keyPath: "shadowPath") + shadowAnim.duration = 0.3 + shadowAnim.fromValue = thumbView.layer.shadowPath + shadowAnim.toValue = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + thumbView.layer.add(shadowAnim, forKey: "shadowPath") + thumbView.layer.shadowPath = UIBezierPath(roundedRect: thumbView.bounds, cornerRadius: thumbView.layer.cornerRadius).cgPath + } + else { + if (self.isTracking) { + thumbView.frame = CGRect(x: 1, y: thumbView.frame.origin.y, width: activeKnobWidth, height: thumbView.frame.size.height) + backgroundView.backgroundColor = self.activeColor + } + else { + thumbView.frame = CGRect(x: 1, y: thumbView.frame.origin.y, width: normalKnobWidth, height: thumbView.frame.size.height) + backgroundView.backgroundColor = self.inactiveColor + } + backgroundView.layer.borderColor = self.bordersColor.cgColor + thumbView.backgroundColor = self.thumbTintColor + onImageView.alpha = 0 + offImageView.alpha = 1.0 + onLabel.alpha = 0 + offLabel.alpha = 1.0 + } + + currentVisualValue = false + } + + +} diff --git a/Visual_Novel_iOS/Src/Utils/Extensions/UIDeviceExt.swift b/Visual_Novel_iOS/Src/Utils/Extensions/UIDeviceExt.swift index bb9d645..d825fa3 100755 --- a/Visual_Novel_iOS/Src/Utils/Extensions/UIDeviceExt.swift +++ b/Visual_Novel_iOS/Src/Utils/Extensions/UIDeviceExt.swift @@ -49,7 +49,7 @@ extension UIDevice { } var hasNotch: Bool { - if #available(iOS 15.0, *) { + if #available(iOS 13.0, *) { // Use UIWindowScene.windows for iOS 15 and later let windowScene = UIApplication.shared.connectedScenes .compactMap { $0 as? UIWindowScene } @@ -61,6 +61,19 @@ extension UIDevice { } } + var safeBottom: CGFloat { + if #available(iOS 13.0, *) { + // Use UIWindowScene.windows for iOS 15 and later + let windowScene = UIApplication.shared.connectedScenes + .compactMap { $0 as? UIWindowScene } + .first + return windowScene?.windows.first?.safeAreaInsets.bottom ?? 0.0 + } else { + // Fallback for iOS versions before 15.0 + return UIApplication.shared.windows.first?.safeAreaInsets.bottom ?? 0.0 + } + } + // 状态栏 高度 var statusBarHeight: CGFloat { if #available(iOS 13.0, *) {