登录页面适配低分辨率设备
authorliangzhenying <867174124@qq.com>
Fri, 3 Apr 2026 03:24:23 +0000 (11:24 +0800)
committerliangzhenying <867174124@qq.com>
Fri, 3 Apr 2026 03:24:23 +0000 (11:24 +0800)
ShenYin/ShenYin.xcodeproj/project.pbxproj
ShenYin/ShenYin/Channel/PLAYBOY/Channel/Config/CCPage.swift
ShenYin/ShenYin/Channel/PLAYBOY/Channel/UI/PbLoginVC.swift [moved from ShenYin/ShenYin/UI/Login/Controller/DcLoginVC.swift with 98% similarity]
ShenYin/ShenYin/UI/Login/Controller/ForgetVC.swift
ShenYin/ShenYin/UI/Login/Controller/LoginVC.swift
ShenYin/ShenYin/UI/Login/Controller/RegisterVC.swift
ShenYin/ShenYin/UI/Login/Controller/SmsLoginVC.swift
ShenYin/ShenYin/UI/Login/View/LoginBgView.swift
ShenYin/ShenYin/UI/Login/View/OthersLoginView.swift
ShenYin/ShenYin/UI/Mine/Device/MyDeviceListVC.swift
ShenYin/ShenYin/lan/chinese.swift

index 6e1efd1..d7ed4ff 100644 (file)
@@ -8,9 +8,9 @@
 
 /* Begin PBXBuildFile section */
                30B13DEF1AA0E4C54D873276 /* Pods_playboy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4F1BB919D567C3B6B0EBAA7 /* Pods_playboy.framework */; };
-               3F1301DC2F750E7400B9B4F5 /* DeepChordsSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D54E0EF2F0A61E600A80EE7 /* DeepChordsSdk.framework */; };
+               3F1301DC2F750E7400B9B4F5 /* DeepChordsSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D54E0EF2F0A61E600A80EE7 /* DeepChordsSdk.framework */; platformFilter = ios; };
                3F1301DE2F750E7400B9B4F5 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3F8F58282EBCA2B800FFC00B /* PrivacyInfo.xcprivacy */; };
-               3F372ECC2F6BF69800E5C3B2 /* DeepChordsSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D54E0EF2F0A61E600A80EE7 /* DeepChordsSdk.framework */; };
+               3F372ECC2F6BF69800E5C3B2 /* DeepChordsSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D54E0EF2F0A61E600A80EE7 /* DeepChordsSdk.framework */; platformFilter = ios; };
                3F8F58292EBCA2B800FFC00B /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3F8F58282EBCA2B800FFC00B /* PrivacyInfo.xcprivacy */; };
                3FD1DFED2F0E00BF00A62733 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3F8F58282EBCA2B800FFC00B /* PrivacyInfo.xcprivacy */; };
                3FFB77C12F179F3100EF9A60 /* DeepChordsSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D54E0EF2F0A61E600A80EE7 /* DeepChordsSdk.framework */; platformFilter = ios; };
                                Channel/PLAYBOY/Channel/Config/CCConfig.swift,
                                Channel/PLAYBOY/Channel/Config/CCDevice.swift,
                                Channel/PLAYBOY/Channel/Config/CCPage.swift,
+                               Channel/PLAYBOY/Channel/UI/PbLoginVC.swift,
                                Channel/PLAYBOY/Channel/UI/PbModeVC.swift,
                                Channel/PLAYBOY/Channel/UI/PbTabBC.swift,
                                Channel/PLAYBOY/PLAYBOY.plist,
                                Channel/PLAYBOY/Channel/Config/CCConfig.swift,
                                Channel/PLAYBOY/Channel/Config/CCDevice.swift,
                                Channel/PLAYBOY/Channel/Config/CCPage.swift,
+                               Channel/PLAYBOY/Channel/UI/PbLoginVC.swift,
                                Channel/PLAYBOY/Channel/UI/PbModeVC.swift,
                                Channel/PLAYBOY/Channel/UI/PbTabBC.swift,
                                Channel/PLAYBOY/PLAYBOY.plist,
                                Channel/PaXa/PaXa.plist,
                                Channel/PaXa/PaXa.storyboard,
                                Channel/PaXa/PaXa.xcassets,
+                               UI/Login/Controller/LoginVC.swift,
                        );
                        target = 3FD1DFE32F0E00BF00A62733 /* playboy */;
                };
 /* Begin PBXTargetDependency section */
                3F1301D52F750E7400B9B4F5 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
+                       platformFilter = ios;
                        target = 0D54E0EE2F0A61E600A80EE7 /* DeepChordsSdk */;
                        targetProxy = 3F1301D62F750E7400B9B4F5 /* PBXContainerItemProxy */;
                };
                3F372ECF2F6BF69800E5C3B2 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
+                       platformFilter = ios;
                        target = 0D54E0EE2F0A61E600A80EE7 /* DeepChordsSdk */;
                        targetProxy = 3F372ECE2F6BF69800E5C3B2 /* PBXContainerItemProxy */;
                };
                                CODE_SIGN_STYLE = Automatic;
                                CURRENT_PROJECT_VERSION = 202604011815;
                                DEVELOPMENT_TEAM = MAC46RQ4KH;
+                               ENABLE_APP_SANDBOX = YES;
+                               ENABLE_HARDENED_RUNTIME = YES;
+                               ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
+                               ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = YES;
+                               ENABLE_RESOURCE_ACCESS_BLUETOOTH = YES;
+                               ENABLE_RESOURCE_ACCESS_CAMERA = YES;
+                               ENABLE_RESOURCE_ACCESS_LOCATION = YES;
+                               ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = YES;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(PROJECT_DIR)",
                                PRODUCT_BUNDLE_IDENTIFIER = com.deepchords.app;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                PROVISIONING_PROFILE_SPECIFIER = "";
+                               REGISTER_APP_GROUPS = YES;
                                SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
                                SUPPORTS_MACCATALYST = NO;
-                               SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+                               SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
                                SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
                                SWIFT_EMIT_LOC_STRINGS = YES;
                                SWIFT_OBJC_BRIDGING_HEADER = "ShenYin/ShenYin-Bridging-Header.h";
                                CODE_SIGN_STYLE = Automatic;
                                CURRENT_PROJECT_VERSION = 202604011815;
                                DEVELOPMENT_TEAM = MAC46RQ4KH;
+                               ENABLE_APP_SANDBOX = YES;
+                               ENABLE_HARDENED_RUNTIME = YES;
+                               ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
+                               ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = YES;
+                               ENABLE_RESOURCE_ACCESS_BLUETOOTH = YES;
+                               ENABLE_RESOURCE_ACCESS_CAMERA = YES;
+                               ENABLE_RESOURCE_ACCESS_LOCATION = YES;
+                               ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = YES;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(PROJECT_DIR)",
                                PRODUCT_BUNDLE_IDENTIFIER = com.deepchords.app;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                PROVISIONING_PROFILE_SPECIFIER = "";
+                               REGISTER_APP_GROUPS = YES;
                                SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
                                SUPPORTS_MACCATALYST = NO;
-                               SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+                               SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
                                SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
                                SWIFT_EMIT_LOC_STRINGS = YES;
                                SWIFT_OBJC_BRIDGING_HEADER = "ShenYin/ShenYin-Bridging-Header.h";
                                PROVISIONING_PROFILE_SPECIFIER = "";
                                SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
                                SUPPORTS_MACCATALYST = NO;
-                               SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+                               SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
                                SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
                                SWIFT_EMIT_LOC_STRINGS = YES;
                                SWIFT_OBJC_BRIDGING_HEADER = "ShenYin/ShenYin-Bridging-Header.h";
                                PROVISIONING_PROFILE_SPECIFIER = "";
                                SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
                                SUPPORTS_MACCATALYST = NO;
-                               SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+                               SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
                                SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
                                SWIFT_EMIT_LOC_STRINGS = YES;
                                SWIFT_OBJC_BRIDGING_HEADER = "ShenYin/ShenYin-Bridging-Header.h";
index 18552cb..d053f01 100644 (file)
@@ -41,6 +41,6 @@ class CCPage{
         App.shared.goToPage(GlassesFindVC())
     }
     static func gotoLogin(){
-        App.shared.window?.rootViewController = BaseNC(rootViewController: DcLoginVC())
+        App.shared.window?.rootViewController = BaseNC(rootViewController: PbLoginVC())
     }
 }
@@ -1,5 +1,5 @@
 //
-//  DcLoginVC.swift
+//  PbLoginVC.swift
 //  ShenYin
 //
 //  Created by liangshi on 2026/2/26.
@@ -8,7 +8,7 @@
 import UIKit
 import DeviceKit
 
-class DcLoginVC:BaseVC{
+class PbLoginVC:BaseVC{
     let scrollView = UIScrollView()
     let logoImg = LoginHeaderView()
     let bgView = LoginBgView()
@@ -17,7 +17,7 @@ class DcLoginVC:BaseVC{
     let pwdView = PasswordView()
     let loginBtn = CustomButton()
     let smsBtn = CustomButton()
-    let othersView = DCOthersLoginView()
+    let othersView = PbOthersLoginView()
     let agreeView  = AgreeView()
     
     override func viewDidLoad() {
@@ -110,7 +110,7 @@ class DcLoginVC:BaseVC{
     
 }
 
-extension DcLoginVC{
+extension PbLoginVC{
     @objc func smsAction(){
         App.shared.goToPage(SmsLoginVC())
     }
@@ -169,8 +169,8 @@ extension DcLoginVC{
 }
 
 
-extension DcLoginVC{
-    class DCOthersLoginView: BaseView {
+extension PbLoginVC{
+    class PbOthersLoginView: BaseView {
         let toolView = UIView()
         let registerLabel = UILabel()
         let pwdLabel = UILabel()
index fbf47ca..a4395f9 100644 (file)
@@ -76,7 +76,7 @@ class ForgetVC:BaseVC{
         }
         bgView.snp.makeConstraints { make in
             make.left.right.equalToSuperview()
-            make.top.equalToSuperview().inset(CCConfig.appType == .playboy ? 180:244)
+            make.top.equalToSuperview().inset(CCConfig.appType == .playboy ? 180:214)
             make.bottom.equalToSuperview()
         }
         
index 60befa7..0c9fe74 100644 (file)
@@ -9,6 +9,7 @@ import UIKit
 import DeviceKit
 
 class LoginVC:BaseVC{
+    let scrollView = UIScrollView()
     let logoImg = LoginHeaderView()
     let bgView = LoginBgView()
     let titleLabel = UILabel()
@@ -17,6 +18,7 @@ class LoginVC:BaseVC{
     let loginBtn = CustomButton()
     let othersView = OthersLoginView()
     let agreeView  = AgreeView()
+    let bottomView = LoginBgView()
     
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -42,27 +44,34 @@ class LoginVC:BaseVC{
         }
         
         loginBtn.set(title: "登录".l10n,style: .theme1, target: self, action: #selector(loginAction))
-        view.addSubviews([logoImg,bgView])
+        bottomView.backgroundColor = .white
+        
+        view.addSubviews([bottomView,scrollView])
+        scrollView.addSubviews([logoImg,bgView])
         bgView.addSubviews([titleLabel,phoneView,pwdView,loginBtn,agreeView,othersView])
         
     }
     override func setupLayout(){
+        bottomView.snp.makeConstraints { make in
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+            make.top.equalToSuperview().inset(214)
+            make.bottom.equalToSuperview()
+        }
+        scrollView.snp.makeConstraints { make in
+            make.left.top.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+            make.height.equalTo(kScreenHei)
+        }
         logoImg.snp.makeConstraints { make in
-            if CCConfig.appType == .playboy{
-                make.width.equalTo(62)
-                make.height.equalTo(80)
-                make.top.equalTo(kNavBtm + 20)
-                make.centerX.equalToSuperview()
-            }
-            else{
-                make.left.equalToSuperview().inset(28)
-                make.top.equalTo(kNavBtm + 20)
-                make.centerX.equalToSuperview()
-            }
+            make.left.equalToSuperview().inset(28)
+            make.top.equalTo(kNavBtm + 20)
+            make.centerX.equalToSuperview()
         }
         bgView.snp.makeConstraints { make in
-            make.left.right.equalToSuperview()
-            make.top.equalToSuperview().inset(244)
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+            make.top.equalToSuperview().inset(214)
             make.bottom.equalToSuperview()
         }
 
@@ -93,9 +102,9 @@ class LoginVC:BaseVC{
             make.height.equalTo(150)
             make.left.right.equalToSuperview()
             make.top.equalTo(loginBtn.snp.bottom).offset(20)
+            make.bottom.equalToSuperview().inset(20)
         }
     }
-
 }
 
 extension LoginVC{
index 4f9c3c6..8f28cdc 100644 (file)
@@ -70,7 +70,7 @@ class RegisterVC:BaseVC{
         }
         bgView.snp.makeConstraints { make in
             make.left.right.equalToSuperview()
-            make.top.equalToSuperview().inset(CCConfig.appType == .playboy ? 180:244)
+            make.top.equalToSuperview().inset(CCConfig.appType == .playboy ? 180:214)
             make.bottom.equalToSuperview()
         }
         
index cb357ec..8b71b13 100644 (file)
@@ -67,7 +67,7 @@ class SmsLoginVC:BaseVC{
         }
         bgView.snp.makeConstraints { make in
             make.left.right.equalToSuperview()
-            make.top.equalToSuperview().inset(CCConfig.appType == .playboy ? 180:244)
+            make.top.equalToSuperview().inset(CCConfig.appType == .playboy ? 180:214)
             make.bottom.equalToSuperview()
         }
         
index ae030e8..dff3167 100644 (file)
@@ -12,7 +12,7 @@ class LoginBgView: BaseView {
         }
         else{
             backgroundColor = UIColor.white
-            yc.setCorners(withRoundedRect: CGRect(x: 0, y: 0, width: kScreenWid, height: kScreenHei - 244), roundingCorners: [.topLeft,.topRight], cornerRadii: CGSize(width: 50, height: 50))
+            yc.setCorners(withRoundedRect: CGRect(x: 0, y: 0, width: kScreenWid, height: kScreenHei), roundingCorners: [.topLeft,.topRight], cornerRadii: CGSize(width: 50, height: 50))
         }
     }
 }
index b672b11..9ab1c78 100644 (file)
@@ -43,6 +43,7 @@ class OthersLoginView: BaseView {
             v.textColor = .color(.level2)
             v.font = .regular(12)
             v.textAlignment = .left
+            
             v.yc.addTap(target: self, action: #selector(smsAction))
         }
     }
index 814939c..172d9ac 100644 (file)
@@ -133,6 +133,7 @@ class MyDeviceListCell: BaseTableViewCell {
         titleLabel.snp.makeConstraints { (m) in
             m.centerY.equalToSuperview()
             m.left.equalToSuperview().offset(56)
+            m.right.equalToSuperview().inset(40)
         }
         nextIcon.snp.makeConstraints { (m) in
             m.width.equalTo(8)
index 5ae5d25..77d323a 100644 (file)
@@ -580,5 +580,7 @@ let chineseMap:[String:String] =
     "立即更新":"",
     "稍后":"",
     "版本":"",
+    "修改安全手机":"",
+    "已经是最新版本":"",
 ]