南鑫林 5 роки тому
батько
коміт
9ab554a70a
19 змінених файлів з 193 додано та 51 видалено
  1. 0 4
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. 8 5
      RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseTabbarViewController.swift
  3. 0 31
      RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishNew/View/PublishNewPopView/PublishNewPopButton.swift
  4. 75 11
      RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishNew/View/PublishNewPopView/PublishNewPopView.swift
  5. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_article.imageset/Contents.json
  6. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_article.imageset/publish_btn_article@2x.png
  7. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_article.imageset/publish_btn_article@3x.png
  8. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_close.imageset/Contents.json
  9. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_close.imageset/publish_btn_close@2x.png
  10. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_close.imageset/publish_btn_close@3x.png
  11. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_photo.imageset/Contents.json
  12. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_photo.imageset/publish_btn_photo@2x.png
  13. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_photo.imageset/publish_btn_photo@3x.png
  14. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_picture.imageset/Contents.json
  15. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_picture.imageset/publish_btn_picture@2x.png
  16. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_picture.imageset/publish_btn_picture@3x.png
  17. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_video.imageset/Contents.json
  18. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_video.imageset/publish_btn_video@2x.png
  19. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_video.imageset/publish_btn_video@3x.png

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

@@ -300,7 +300,6 @@
 		A784F2B32350337D00E49140 /* ShareH5LinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A784F2B22350337D00E49140 /* ShareH5LinkView.swift */; };
 		A784F2B623505D3F00E49140 /* CardTitleHTMLTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A784F2B523505D3F00E49140 /* CardTitleHTMLTableViewCell.swift */; };
 		A784F2B823505E3700E49140 /* CardContentPicHTMLTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A784F2B723505E3700E49140 /* CardContentPicHTMLTableViewCell.swift */; };
-		A784F2BB23506E1A00E49140 /* PublishNewPopButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = A784F2BA23506E1A00E49140 /* PublishNewPopButton.swift */; };
 		A784F2BD2350730C00E49140 /* PublishNewPopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A784F2BC2350730C00E49140 /* PublishNewPopView.swift */; };
 		A78A5F7622FAA03800DD1764 /* share_iSpt.gif in Resources */ = {isa = PBXBuildFile; fileRef = A78A5F7522FAA03800DD1764 /* share_iSpt.gif */; };
 		A78A5F7822FAC7F000DD1764 /* SetGenderModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A78A5F7722FAC7F000DD1764 /* SetGenderModel.swift */; };
@@ -990,7 +989,6 @@
 		A784F2B22350337D00E49140 /* ShareH5LinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareH5LinkView.swift; sourceTree = "<group>"; };
 		A784F2B523505D3F00E49140 /* CardTitleHTMLTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardTitleHTMLTableViewCell.swift; sourceTree = "<group>"; };
 		A784F2B723505E3700E49140 /* CardContentPicHTMLTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardContentPicHTMLTableViewCell.swift; sourceTree = "<group>"; };
-		A784F2BA23506E1A00E49140 /* PublishNewPopButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublishNewPopButton.swift; sourceTree = "<group>"; };
 		A784F2BC2350730C00E49140 /* PublishNewPopView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublishNewPopView.swift; sourceTree = "<group>"; };
 		A78A5F7522FAA03800DD1764 /* share_iSpt.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = share_iSpt.gif; sourceTree = "<group>"; };
 		A78A5F7722FAC7F000DD1764 /* SetGenderModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetGenderModel.swift; sourceTree = "<group>"; };
@@ -3299,7 +3297,6 @@
 		A784F2B923506DFD00E49140 /* PublishNewPopView */ = {
 			isa = PBXGroup;
 			children = (
-				A784F2BA23506E1A00E49140 /* PublishNewPopButton.swift */,
 				A784F2BC2350730C00E49140 /* PublishNewPopView.swift */,
 			);
 			path = PublishNewPopView;
@@ -5761,7 +5758,6 @@
 				A7EE6E1223055A5A00628D39 /* MemoryManager.swift in Sources */,
 				BD61225422C355C800D3F513 /* AliyunMagicCameraViewController.m in Sources */,
 				BDAF83A222B330540004BCC3 /* RecommendSimilarCell.swift in Sources */,
-				A784F2BB23506E1A00E49140 /* PublishNewPopButton.swift in Sources */,
 				BD2FCBE222B21CF70006D974 /* CommunityRecommendController.swift in Sources */,
 				A71AA51F22729F35008FF1A5 /* AuthorizationSwift.swift in Sources */,
 				A770E61222D6625700CBD0A4 /* ShareCommunityContentView.swift in Sources */,

+ 8 - 5
RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseTabbarViewController.swift

@@ -182,11 +182,14 @@ class BaseTabbarViewController: NSObject {
     /// 跳转到VC
     func pushPublishVC() {
         if BaseTabbarViewController.shared.v1.navigationBarbgView.isHidden {
-            let pickVc = PublishViewController()
-//            let  pickVc = PublishNewViewController()
-            let nav = BaseNavigationViewController.init(rootViewController: pickVc)
-            nav.modalPresentationStyle = .fullScreen
-            BaseTabbarViewController.shared.esTabBarController.present(nav, animated: true, completion: nil)
+//            let pickVc = PublishViewController()
+////            let  pickVc = PublishNewViewController()
+//            let nav = BaseNavigationViewController.init(rootViewController: pickVc)
+//            nav.modalPresentationStyle = .fullScreen
+//            BaseTabbarViewController.shared.esTabBarController.present(nav, animated: true, completion: nil)
+            PublishNewPopView.show(imageStrs: ["publish_btn_picture","publish_btn_video","publish_btn_photo","publish_btn_article"], titles: ["相册","视频","拍照","文章"], columnCount: 4) { (index) in
+                
+            }
         } else {
             SwiftProgressHUD.shared().showText("内容上传中,请稍等", textAlignment: .center)
         }

+ 0 - 31
RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishNew/View/PublishNewPopView/PublishNewPopButton.swift

@@ -1,31 +0,0 @@
-//
-//  PublishNewPopButton.swift
-//  RainbowPlanet
-//
-//  Created by 南鑫林 on 2019/10/11.
-//  Copyright © 2019 RainbowPlanet. All rights reserved.
-//
-
-import UIKit
-
-let iconHeight : CGFloat = 60.0
-let titleHeight : CGFloat = 20.0
-let spacingHeight : CGFloat = 10.0
-
-class PublishNewPopButton: UIButton {
-    
-    override func imageRect(forContentRect contentRect: CGRect) -> CGRect {
-        let height : CGFloat = contentRect.size.height
-        let y = (height - iconHeight - titleHeight - spacingHeight) / 2
-        let rect = CGRect(x: 0.0, y: y, width: contentRect.size.width, height: iconHeight)
-        return rect
-    }
-    
-    override func titleRect(forContentRect contentRect: CGRect) -> CGRect {
-        let height : CGFloat = contentRect.size.height
-         let y = (height - iconHeight - titleHeight - spacingHeight) / 2 + iconHeight + spacingHeight
-        let rect = CGRect(x: 0.0, y: y, width: contentRect.size.width, height: titleHeight)
-        return rect
-    }
-    
-}

+ 75 - 11
RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishNew/View/PublishNewPopView/PublishNewPopView.swift

@@ -14,6 +14,7 @@ class PublishNewPopView: UIView {
     var titles : Array<String>?
     var columnCount : Int = 4
     var scrollView : UIScrollView?
+    var shutImgView : UIImageView?
     typealias SelectClosure = (Int) -> Void
     var selectClosure : SelectClosure?
     
@@ -28,19 +29,22 @@ class PublishNewPopView: UIView {
         let effect = UIBlurEffect(style: UIBlurEffect.Style.light)
         let effectView = UIVisualEffectView(effect: effect)
         effectView.frame = publishNewPopView.bounds
-        effectView.alpha = 0.8
+        effectView.alpha = 1
+        effectView.addTapGesture(1, target: publishNewPopView, action: #selector(close))
         publishNewPopView.addSubview(effectView)
         
         publishNewPopView.imageStrs = imageStrs
         publishNewPopView.titles = titles
         publishNewPopView.columnCount = columnCount
         publishNewPopView.selectClosure = selectClosure
-        
+        publishNewPopView.setupMainView()
+        publishNewPopView.setupItem()
+        publishNewPopView.setupBottom()
     }
     
     func setupMainView() {
-        let scrollView = UIScrollView(frame: CGRect(x: 0, y: kScreenHeight-170-48-kSafeTabBarHeight, width: kScreenWidth, height: 170))
-        let pages = (titles?.count ?? 1 - 1) / columnCount + 1
+        let scrollView = UIScrollView(frame: CGRect(x: 0, y: kScreenHeight-130-48-kSafeTabBarHeight, width: kScreenWidth, height: 90))
+        let pages = 1
         scrollView.contentSize = CGSize(width: scrollView.frame.size.width * CGFloat(pages), height: 0)
         scrollView.isPagingEnabled = true
         scrollView.showsHorizontalScrollIndicator = false
@@ -56,19 +60,79 @@ class PublishNewPopView: UIView {
         for i in 0 ..< (titles?.count ?? 0) {
             let x : CGFloat = (CGFloat(i + 1) * hSpacing) + CGFloat(CGFloat(i) * itemWidth)
             let y : CGFloat = 0.0
-            let button = PublishNewPopButton(frame: CGRect(x: x, y: y, width: itemWidth, height: itemHeight))
-            button.tag = 1000 + 1
+            let button = UIButton(frame: CGRect(x: x, y: 90, width: itemWidth, height: itemHeight))
+            button.tag = 1000 + i
             button.setTitle(titles?[i], for: UIControl.State.normal)
             button.setTitleColor(k333333Color, for: UIControl.State.normal)
             button.titleLabel?.font = kRegularFont14
             button.setImage(kImage(name: imageStrs?[i] ?? "") , for: UIControl.State.normal)
             button.imageView?.contentMode = .center
-//            button.addTarget(self, action: #selector(selectClick(:)), for: UIControl.Event.touchUpInside)
-
+            button.addTarget(self, action: #selector(selectClick(button:)), for: UIControl.Event.touchUpInside)
+            scrollView?.addSubview(button)
+            button.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 10)
+            
+            UIView.animate(withDuration: 0.3, delay: TimeInterval(CGFloat(i) * 0.03), usingSpringWithDamping: 0.7, initialSpringVelocity: 0.04, options: UIView.AnimationOptions.allowUserInteraction, animations: { [weak button] in
+                button?.frame = CGRect(x: x, y: y, width: itemWidth, height: itemHeight)
+            }) { (finished) in}
+        }
+    }
+    
+    func setupBottom() {
+        
+        let view = UIView()
+        view.isUserInteractionEnabled = false
+        addSubview(view)
+        view.snp.makeConstraints { (make) in
+            make.bottom.equalTo(-kSafeTabBarHeight)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(48)
+        }
+        
+        let shutImgView = UIImageView()
+        shutImgView.image = kImage(name: "publish_btn_close")
+        shutImgView.isUserInteractionEnabled = false
+        self.shutImgView = shutImgView
+        view.addSubview(shutImgView)
+        shutImgView.snp.makeConstraints { (make) in
+            make.center.equalToSuperview()
+            make.size.equalTo(24)
+        }
+        UIView.animate(withDuration: 0.3, animations: {
+            [weak self] in
+            self?.shutImgView?.transform = CGAffineTransform(rotationAngle: 0.0)
+        })
+    }
+    
+    @objc func selectClick(button:UIButton) {
+        UIView.animate(withDuration: 0.25, animations: {
+            [weak self] in
+            self?.alpha = 0
+        }) { [weak self] (finished) in
+            self?.removeFromSuperview()
+        }
+        if let selectClosure = selectClosure {
+            selectClosure(button.tag - 1000)
+        }
+    }
+    
+    @objc func close() {
+        UIView.animate(withDuration: 0.3, animations: {
+            [weak self] in
+            self?.shutImgView?.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi / 4))
+        })
+        for i in 0 ..< (titles?.count ?? 0) {
+            let button = self.viewWithTag(1000 + i)
+            guard let width = button?.frame.width else { return }
+            guard let height = button?.frame.height else { return }
+            guard let x = button?.frame.origin.x else { return }
+            let y =  90
+            
+            UIView.animate(withDuration: 0.3, delay: TimeInterval(0.03 * CGFloat((titles?.count ?? 0) - i)) , usingSpringWithDamping: 0.7, initialSpringVelocity: 0.04, options: UIView.AnimationOptions.allowUserInteraction, animations: { [weak button] in
+                button?.frame = CGRect(x: x, y: CGFloat(y), width:width, height: height)
+            }) { [weak self]  (finished) in
+                self?.removeFromSuperview()
+            }
         }
     }
     
-//    @objc func selectClick(sender:PublishNewPopButton) {
-//        
-//    }
 }

+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_article.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_article.imageset/publish_btn_article@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_article.imageset/publish_btn_article@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_close.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_close.imageset/publish_btn_close@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_close.imageset/publish_btn_close@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_photo.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_photo.imageset/publish_btn_photo@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_photo.imageset/publish_btn_photo@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_picture.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_picture.imageset/publish_btn_picture@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_picture.imageset/publish_btn_picture@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_video.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_video.imageset/publish_btn_video@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/publish_btn_video.imageset/publish_btn_video@3x.png