瀏覽代碼

细节优化完成

南鑫林 5 年之前
父節點
當前提交
3bc3dcc33c
共有 14 個文件被更改,包括 206 次插入12 次删除
  1. 8 0
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. 3 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/CommunityPostDetailTableViewHeaderView.swift
  3. 55 2
      RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/MobileLogin/View/MobileLoginView.swift
  4. 1 1
      RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/MobileLogin/ViewController/MobileLoginViewController.swift
  5. 33 0
      RainbowPlanet/RainbowPlanet/Router/BrowsePictureRouterModuleType.swift
  6. 6 0
      RainbowPlanet/RainbowPlanet/Router/H5RouterModuleType.swift
  7. 6 0
      RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/Contents.json
  8. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_normal.imageset/Contents.json
  9. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_normal.imageset/login_terms_normal@2x.png
  10. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_normal.imageset/login_terms_normal@3x.png
  11. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_pre.imageset/Contents.json
  12. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_pre.imageset/login_terms_pre@2x.png
  13. 二進制
      RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_pre.imageset/login_terms_pre@3x.png
  14. 50 9
      RainbowPlanet/RainbowPlanet/Tools/BrowsePictures/ViewController/BrowsePicturesViewController.swift

+ 8 - 0
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -208,6 +208,8 @@
 		A75C474E22938B3900139C0C /* OrderFreightTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A75C474D22938B3900139C0C /* OrderFreightTableViewCell.swift */; };
 		A76068E022E43DAC008DF18F /* CardContentUserDeleteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A76068DF22E43DAC008DF18F /* CardContentUserDeleteView.swift */; };
 		A76068E222E44D6A008DF18F /* SheetSureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A76068E122E44D6A008DF18F /* SheetSureView.swift */; };
+		A76068E422E47E0E008DF18F /* RegisterLoginModule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A76068E322E47E0E008DF18F /* RegisterLoginModule.xcassets */; };
+		A76068E722E48DC5008DF18F /* BrowsePictureRouterModuleType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A76068E622E48DC5008DF18F /* BrowsePictureRouterModuleType.swift */; };
 		A7636AC52268139C00374F9E /* LocationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7636AC42268139C00374F9E /* LocationViewController.swift */; };
 		A7636AC822682BAF00374F9E /* LocationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7636AC722682BAF00374F9E /* LocationView.swift */; };
 		A76390EB2248E27A0067EEE0 /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A76390EA2248E27A0067EEE0 /* UserNotifications.framework */; };
@@ -914,6 +916,8 @@
 		A75C474D22938B3900139C0C /* OrderFreightTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderFreightTableViewCell.swift; sourceTree = "<group>"; };
 		A76068DF22E43DAC008DF18F /* CardContentUserDeleteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentUserDeleteView.swift; sourceTree = "<group>"; };
 		A76068E122E44D6A008DF18F /* SheetSureView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SheetSureView.swift; sourceTree = "<group>"; };
+		A76068E322E47E0E008DF18F /* RegisterLoginModule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RegisterLoginModule.xcassets; sourceTree = "<group>"; };
+		A76068E622E48DC5008DF18F /* BrowsePictureRouterModuleType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowsePictureRouterModuleType.swift; sourceTree = "<group>"; };
 		A7636AC42268139C00374F9E /* LocationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationViewController.swift; sourceTree = "<group>"; };
 		A7636AC722682BAF00374F9E /* LocationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationView.swift; sourceTree = "<group>"; };
 		A76390EA2248E27A0067EEE0 /* UserNotifications.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotifications.framework; path = System/Library/Frameworks/UserNotifications.framework; sourceTree = SDKROOT; };
@@ -3276,6 +3280,7 @@
 				A7BF202322B392D600396DB3 /* CommunityModule.xcassets */,
 				A7BF202622B3930100396DB3 /* MessageModule.xcassets */,
 				BD24FABA22B509CF00C7AA3B /* PublishModule.xcassets */,
+				A76068E322E47E0E008DF18F /* RegisterLoginModule.xcassets */,
 				A729B5A92266F6FD004AE098 /* Launch Screen.storyboard */,
 				A77F2C6C2231FB4A001BD3F6 /* Info.plist */,
 				A7A59A7722363CCB00417FA4 /* RainbowPlanet.entitlements */,
@@ -3615,6 +3620,7 @@
 				A7DAB33822DC2B83005B964E /* ShareRouterModuleType.swift */,
 				BDBC0AF322DDE9BC00CA788E /* PublishRouterModuleType.swift */,
 				A7F3069322E16A5B00DC7917 /* MineRouterModuleType.swift */,
+				A76068E622E48DC5008DF18F /* BrowsePictureRouterModuleType.swift */,
 			);
 			path = Router;
 			sourceTree = "<group>";
@@ -5840,6 +5846,7 @@
 				A71AF0BE226F1792001730FE /* ShoppingMallModule.xcassets in Resources */,
 				A7778C9722438F5D00C7C47A /* AlipaySDK.bundle in Resources */,
 				BDD54A2722C31D60005BBE19 /* tail.png in Resources */,
+				A76068E422E47E0E008DF18F /* RegisterLoginModule.xcassets in Resources */,
 				BD61229B22C3605C00D3F513 /* AliyunEffectFilterCell.xib in Resources */,
 				A7190167227543DB00104A50 /* baidu_cityid_rel.json in Resources */,
 				A75B787D22E07A51007B986A /* MineModuleTabbar.json in Resources */,
@@ -6379,6 +6386,7 @@
 				A7FF1594228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift in Sources */,
 				A7B4E73A228192D20012914A /* CMSTemplateModel.swift in Sources */,
 				A72A72C622321DE000B21995 /* WebView.swift in Sources */,
+				A76068E722E48DC5008DF18F /* BrowsePictureRouterModuleType.swift in Sources */,
 				BD12B66922B47D4800AEB10B /* RecommendSubCommentTableViewCell.swift in Sources */,
 				BDF862A1228E41CC000DEF84 /* OrderLogisticsController.swift in Sources */,
 				A72A73162232481600B21995 /* WeChatpayManager.swift in Sources */,

+ 3 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/CommunityPostDetailTableViewHeaderView.swift

@@ -8,6 +8,7 @@
 
 import UIKit
 import FSPagerView
+import SwiftyMediator
 
 class CommunityPostDetailTableViewHeaderView: BaseView {
     
@@ -94,6 +95,8 @@ extension CommunityPostDetailTableViewHeaderView:FSPagerViewDataSource,FSPagerVi
     
     func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int) {
         pagerView.deselectItem(at: index, animated: true)
+        Mediator.push(BrowsePictureRouterModuleType.pushBrowsePictureImageStrs(imageStrs: imgs, index: index))
+        
     }
     
     func pagerViewWillBeginDragging(_ pagerView: FSPagerView) {

+ 55 - 2
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/MobileLogin/View/MobileLoginView.swift

@@ -9,6 +9,7 @@
 import UIKit
 import RxSwift
 import RxCocoa
+import SwiftyMediator
 
 class MobileLoginView: BaseView {
 
@@ -49,6 +50,10 @@ class MobileLoginView: BaseView {
 
         addSubview(loginButton)
         addSubview(passwordLoginButton)
+        
+        addSubview(agreementButton)
+        addSubview(oneLabel)
+        addSubview(twoLabel)
     }
 
     override func setupLayouts() {
@@ -125,6 +130,20 @@ class MobileLoginView: BaseView {
             make.top.equalTo(loginButton.snp.bottom).offset(20)
             make.centerX.equalToSuperview()
         }
+        
+        agreementButton.snp.makeConstraints { (make) in
+            make.bottom.equalTo(-32*kScaleWidth)
+            make.left.equalTo(92.5*kScaleWidth)
+            make.size.equalTo(20)
+        }
+        oneLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(agreementButton)
+            make.left.equalTo(agreementButton.snp.right).offset(6.5)
+        }
+        twoLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(agreementButton)
+            make.left.equalTo(oneLabel.snp.right)
+        }
     }
 
     private lazy var bindPhoneNumberLabel: UILabel = {
@@ -302,16 +321,50 @@ class MobileLoginView: BaseView {
 
 
     func observableString() {
-        Observable.combineLatest(Observable.just(phoneNumber), Observable.just(sms)) { (textValue1, textValue2) -> Bool in
+        Observable.combineLatest(Observable.just(phoneNumber), Observable.just(sms)) { [weak self] (textValue1, textValue2) -> Bool in
             let textValue1 = String(textValue1.prefix(11)) as String
             let textValue2 = String(textValue2.prefix(6)) as String
-            let isSuccess = (textValue1.count == 11) && (textValue2.count == 6)
+            let isSuccess = (textValue1.count == 11) && (textValue2.count == 6) && (self?.agreementButton.isSelected == true)
             return isSuccess
             }.subscribe(onNext: {
                 [weak self] isEmpty in
                 self?.loginButton.isEnabled = isEmpty
             }).disposed(by: self.disposeBag)
     }
+    
+    lazy var agreementButton: UIButton = {
+        let agreementButton = UIButton(type: UIButton.ButtonType.custom)
+        agreementButton.setImage(kImage(name: "login_terms_normal"), for: UIControl.State.normal)
+        agreementButton.setImage(kImage(name: "login_terms_pre"), for: UIControl.State.selected)
+        agreementButton.isSelected = true
+        agreementButton.rx.tap.subscribe(onNext: { [weak self] in
+            agreementButton.isSelected = !agreementButton.isSelected
+            self?.loginButton.isEnabled = agreementButton.isSelected
+        }).disposed(by: disposeBag)
+        return agreementButton
+    }()
+    
+    lazy var oneLabel: UILabel = {
+        let oneLabel = UILabel()
+        oneLabel.text = "我已阅读并同意 "
+        oneLabel.textColor = k999999Color
+        oneLabel.font = kRegularFont12
+        return oneLabel
+    }()
+    lazy var twoLabel: UILabel = {
+        let twoLabel = UILabel()
+        twoLabel.textColor = k999999Color
+        twoLabel.font = kRegularFont12
+        twoLabel.addTapGesture(1, target: self, action: #selector(agreement))
+        let attribute =  NSMutableAttributedString(string: "服务和隐私条款")
+        attribute.changeUnderline(atAllStyle: NSUnderlineStyle.single, color: k999999Color)
+        twoLabel.attributedText = attribute
+        return twoLabel
+    }()
+    
+    @objc func agreement() {
+        Mediator.push(H5RouterModuleType.pushContentId6)
+    }
 
 
 }

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/MobileLogin/ViewController/MobileLoginViewController.swift

@@ -9,7 +9,6 @@
 import UIKit
 import RxSwift
 import RxCocoa
-
 class MobileLoginViewController: BaseViewController {
 
     override func viewDidLoad() {
@@ -73,6 +72,7 @@ class MobileLoginViewController: BaseViewController {
         }
         return mobileLoginView
     }()
+    
 
 
 }

+ 33 - 0
RainbowPlanet/RainbowPlanet/Router/BrowsePictureRouterModuleType.swift

@@ -0,0 +1,33 @@
+//
+//  BrowsePictureRouterModuleType.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/7/21.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import SwiftyMediator
+
+/// 图片浏览模块
+///
+/// - pushBrowsePictureImageStrs: url
+/// - pushBrowsePictureImages: image
+public enum BrowsePictureRouterModuleType: MediatorTargetType {
+    case pushBrowsePictureImageStrs(imageStrs: Array<String>, index: Int)
+    case pushBrowsePictureImages(images: Array<UIImage>, index: Int)
+
+}
+
+extension BrowsePictureRouterModuleType: MediatorSourceType {
+    public var viewController: UIViewController? {
+        switch self {
+        case .pushBrowsePictureImageStrs(let imageStrs,let index):
+            let vc = BrowsePicturesViewController(imageStrs: imageStrs, index: index)
+            return vc
+        case .pushBrowsePictureImages(let images,let index):
+            let vc = BrowsePicturesViewController(images: images, index: index)
+            return vc
+        }
+    }
+}

+ 6 - 0
RainbowPlanet/RainbowPlanet/Router/H5RouterModuleType.swift

@@ -15,6 +15,7 @@ import SwiftyMediator
 /// - publish: 发布页面
 /// - pushCategory: 兑换商品分类页面
 /// - pushContentId4:  赚豆秘籍
+/// - pushContentId6: 用户协议
 /// - pushContentId7: 内容协议
 /// - pushBeanRecord:  赚豆明细
 /// - pushOrder:  我的订单
@@ -27,6 +28,7 @@ public enum H5RouterModuleType: MediatorTargetType {
     case presentPublish
     case pushCategory
     case pushContentId4
+    case pushContentId6
     case pushContentId7
     case pushBeanRecord
     case pushOrder
@@ -53,6 +55,10 @@ extension H5RouterModuleType: MediatorSourceType {
             let vc = H5CommonViewController()
             vc.URLString = kH5ContentId4Url
             return vc
+        case .pushContentId6: //用户协议
+            let vc = H5CommonViewController()
+            vc.URLString = kH5ContentId6Url
+            return vc
         case .pushContentId7: //赚豆秘籍
             let vc = H5CommonViewController()
             vc.URLString = kH5ContentId7Url

+ 6 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_normal.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "login_terms_normal@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "login_terms_normal@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_normal.imageset/login_terms_normal@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_normal.imageset/login_terms_normal@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_pre.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "login_terms_pre@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "login_terms_pre@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

二進制
RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_pre.imageset/login_terms_pre@2x.png


二進制
RainbowPlanet/RainbowPlanet/Supporting Files/RegisterLoginModule.xcassets/login_terms_pre.imageset/login_terms_pre@3x.png


+ 50 - 9
RainbowPlanet/RainbowPlanet/Tools/BrowsePictures/ViewController/BrowsePicturesViewController.swift

@@ -25,9 +25,6 @@ class BrowsePicturesViewController: BaseViewController {
     //collectionView的布局
     var collectionViewLayout: UICollectionViewFlowLayout!
     
-    //页控制器(小圆点)
-    var pageControl : UIPageControl!
-    
     //初始化
     init(imageStrs:Array<String> = [],images:Array<UIImage> = [], index:Int = 0){
         self.imageStrs = imageStrs
@@ -51,11 +48,26 @@ class BrowsePicturesViewController: BaseViewController {
         return backButton
     }()
     
+    private lazy var pageControl: NXLPageControl = {
+        let pageControl = NXLPageControl()
+        pageControl.pointSize = CGSize.init(width: kScaleValue(value: 4), height: 4)
+        pageControl.currentWidthMultiple = 4//当前点的宽度为其他点的4倍
+        pageControl.localPointSpace = 5
+        pageControl.currentColor = kThemeColor
+        pageControl.otherColor = UIColor(white: 1, alpha: 0.8)
+        pageControl.clickPoint { [weak self] (index) in
+            
+        }
+        return pageControl
+    }()
+    
     //初始化
     override func viewDidLoad() {
         super.viewDidLoad()
         navigationBar.isHidden = true
         
+        statusBarStyle = .lightContent
+        
         //背景设为黑色
         self.view.backgroundColor = UIColor.black
         //collectionView尺寸样式设置
@@ -79,30 +91,57 @@ class BrowsePicturesViewController: BaseViewController {
             self.automaticallyAdjustsScrollViewInsets = false
         }
         self.view.addSubview(collectionView)
+        self.view.addSubview(pageControl)
         
         //将视图滚动到默认图片上
         let indexPath = IndexPath(item: index, section: 0)
         collectionView.scrollToItem(at: indexPath, at: .left, animated: false)
         
-        //设置页控制器
-        pageControl = UIPageControl()
-        pageControl.center = CGPoint(x: UIScreen.main.bounds.width/2,
-                                     y: UIScreen.main.bounds.height - 20 -  kSafeTabBarHeight)
         if !(imageStrs.isEmpty ){
-             pageControl.numberOfPages = imageStrs.count
             if imageStrs.count == 1 {
                 pageControl.isHidden = true
             }else {
                 pageControl.isHidden = true
             }
+            
+            let pageControlWidth = CGFloat((imageStrs.count - 1) * 10) + 20
+            
+            pageControl.snp.remakeConstraints { (make) in
+                make.bottom.equalTo(-30)
+                make.height.equalTo(5)
+                make.centerX.equalToSuperview()
+                make.width.equalTo(pageControlWidth)
+            }
+            pageControl.numberOfPages = imageStrs.count
+            if  pageControl.numberOfPages > 1 {
+                pageControl.isHidden = false
+            }else {
+                pageControl.isHidden = true
+            }
         }
         if !(images.isEmpty ){
-            pageControl.numberOfPages = images.count
             if images.count == 1 {
                 pageControl.isHidden = true
             }else {
                 pageControl.isHidden = true
             }
+            pageControl.numberOfPages = images.count
+
+            
+            let pageControlWidth = CGFloat((images.count - 1) * 10) + 20
+            
+            pageControl.snp.remakeConstraints { (make) in
+                make.bottom.equalTo(-30)
+                make.height.equalTo(5)
+                make.centerX.equalToSuperview()
+                make.width.equalTo(pageControlWidth)
+            }
+            pageControl.numberOfPages = images.count
+            if  pageControl.numberOfPages > 1 {
+                pageControl.isHidden = false
+            }else {
+                pageControl.isHidden = true
+            }
         }
         pageControl.isUserInteractionEnabled = false
         pageControl.currentPage = index
@@ -115,6 +154,8 @@ class BrowsePicturesViewController: BaseViewController {
         }
     }
     
+    
+    
     //隐藏状态栏
     override var prefersStatusBarHidden: Bool {
         return true