HF_Q vor 4 Jahren
Ursprung
Commit
133d2299c6
43 geänderte Dateien mit 2797 neuen und 3923 gelöschten Zeilen
  1. 1 5
      Podfile.lock
  2. 1 5
      Pods/Manifest.lock
  3. 2450 2705
      Pods/Pods.xcodeproj/project.pbxproj
  4. 0 60
      Pods/Pods.xcodeproj/xcuserdata/niuzhen.xcuserdatad/xcschemes/WMZPageController.xcscheme
  5. 0 5
      Pods/Pods.xcodeproj/xcuserdata/niuzhen.xcuserdatad/xcschemes/xcschememanagement.plist
  6. 0 25
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-acknowledgements.markdown
  7. 0 31
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-acknowledgements.plist
  8. 0 1
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks-Debug-input-files.xcfilelist
  9. 0 1
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks-Debug-output-files.xcfilelist
  10. 0 1
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks-Release-input-files.xcfilelist
  11. 0 1
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks-Release-output-files.xcfilelist
  12. 0 2
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks.sh
  13. 4 4
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino.debug.xcconfig
  14. 4 4
      Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino.release.xcconfig
  15. 0 26
      Pods/Target Support Files/WMZPageController/WMZPageController-Info.plist
  16. 0 5
      Pods/Target Support Files/WMZPageController/WMZPageController-dummy.m
  17. 0 12
      Pods/Target Support Files/WMZPageController/WMZPageController-prefix.pch
  18. 0 25
      Pods/Target Support Files/WMZPageController/WMZPageController-umbrella.h
  19. 0 6
      Pods/Target Support Files/WMZPageController/WMZPageController.modulemap
  20. 0 9
      Pods/Target Support Files/WMZPageController/WMZPageController.xcconfig
  21. 0 21
      Pods/WMZPageController/LICENSE
  22. 0 457
      Pods/WMZPageController/README.md
  23. 1 1
      podfile
  24. 74 0
      smartRhino.xcodeproj/project.pbxproj
  25. BIN
      smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate
  26. 0 0
      smartRhino/Project/Other/Third/WMZPageController/Controller/NSObject+SafeKVO.h
  27. 0 0
      smartRhino/Project/Other/Third/WMZPageController/Controller/NSObject+SafeKVO.m
  28. 0 0
      smartRhino/Project/Other/Third/WMZPageController/Controller/UIView+PageRect.h
  29. 0 0
      smartRhino/Project/Other/Third/WMZPageController/Controller/UIView+PageRect.m
  30. 0 25
      Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageConfig.h
  31. 4 7
      Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageController.h
  32. 149 205
      Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageController.m
  33. 6 38
      Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageParam.h
  34. 3 14
      Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageParam.m
  35. 0 4
      Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageProtocol.h
  36. 0 0
      smartRhino/Project/Other/Third/WMZPageController/Controller/WMZPageScroller.h
  37. 0 0
      smartRhino/Project/Other/Third/WMZPageController/Controller/WMZPageScroller.m
  38. 0 0
      smartRhino/Project/Other/Third/WMZPageController/Navi/WMZPageLoopView.h
  39. 51 98
      Pods/WMZPageController/WMZPageController/WMZPageController/Navi/WMZPageLoopView.m
  40. 2 15
      Pods/WMZPageController/WMZPageController/WMZPageController/Navi/WMZPageNaviBtn.h
  41. 45 103
      Pods/WMZPageController/WMZPageController/WMZPageController/Navi/WMZPageNaviBtn.m
  42. 0 0
      smartRhino/Project/Other/Third/WMZPageController/PageController.bundle/page_back.png
  43. 2 2
      smartRhino/Project/VCModel/Home/VC/IndexViewController.m

+ 1 - 5
Podfile.lock

@@ -64,7 +64,6 @@ PODS:
     - UMCCommon
     - UMCShare/Core
     - UMCShare/Social/ReducedWeChat
-  - WMZPageController (1.1.7)
   - YYModel (1.0.4)
   - ZFPlayer (3.3.1):
     - ZFPlayer/Core (= 3.3.1)
@@ -97,7 +96,6 @@ DEPENDENCIES:
   - UMCShare/Social/QQ
   - UMCShare/Social/Sina
   - UMCShare/Social/WeChat
-  - WMZPageController
   - YYModel
   - ZFPlayer
   - ZFPlayer/AVPlayer
@@ -127,7 +125,6 @@ SPEC REPOS:
     - UMCCommon
     - UMCSecurityPlugins
     - UMCShare
-    - WMZPageController
     - YYModel
     - ZFPlayer
 
@@ -154,10 +151,9 @@ SPEC CHECKSUMS:
   UMCCommon: b0703b0053323f598e01670ea702b8eb1e66e611
   UMCSecurityPlugins: 0831a08f3988f3cea9f1d3a7626cd9bee4fef150
   UMCShare: a250203b34a56cde25cc4c28335449b542f0255d
-  WMZPageController: fc76f3634a3bf2271d173cf4ba025e98b1cd76eb
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
   ZFPlayer: 8a6021a3c45e281f2abd24dca5c88915af770a7e
 
-PODFILE CHECKSUM: aafedd0bb786fdb0c73df42e73e123c5d103cd5a
+PODFILE CHECKSUM: 815247f1ed93cb28b18fdb5bbea62a0dec47f5b4
 
 COCOAPODS: 1.8.4

+ 1 - 5
Pods/Manifest.lock

@@ -64,7 +64,6 @@ PODS:
     - UMCCommon
     - UMCShare/Core
     - UMCShare/Social/ReducedWeChat
-  - WMZPageController (1.1.7)
   - YYModel (1.0.4)
   - ZFPlayer (3.3.1):
     - ZFPlayer/Core (= 3.3.1)
@@ -97,7 +96,6 @@ DEPENDENCIES:
   - UMCShare/Social/QQ
   - UMCShare/Social/Sina
   - UMCShare/Social/WeChat
-  - WMZPageController
   - YYModel
   - ZFPlayer
   - ZFPlayer/AVPlayer
@@ -127,7 +125,6 @@ SPEC REPOS:
     - UMCCommon
     - UMCSecurityPlugins
     - UMCShare
-    - WMZPageController
     - YYModel
     - ZFPlayer
 
@@ -154,10 +151,9 @@ SPEC CHECKSUMS:
   UMCCommon: b0703b0053323f598e01670ea702b8eb1e66e611
   UMCSecurityPlugins: 0831a08f3988f3cea9f1d3a7626cd9bee4fef150
   UMCShare: a250203b34a56cde25cc4c28335449b542f0255d
-  WMZPageController: fc76f3634a3bf2271d173cf4ba025e98b1cd76eb
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
   ZFPlayer: 8a6021a3c45e281f2abd24dca5c88915af770a7e
 
-PODFILE CHECKSUM: aafedd0bb786fdb0c73df42e73e123c5d103cd5a
+PODFILE CHECKSUM: 815247f1ed93cb28b18fdb5bbea62a0dec47f5b4
 
 COCOAPODS: 1.8.4

Datei-Diff unterdrückt, da er zu groß ist
+ 2450 - 2705
Pods/Pods.xcodeproj/project.pbxproj


+ 0 - 60
Pods/Pods.xcodeproj/xcuserdata/niuzhen.xcuserdatad/xcschemes/WMZPageController.xcscheme

@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "1100"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForAnalyzing = "YES"
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "6E667E99D1DA806D9A6D19798D3FC2DD"
-               BuildableName = "WMZPageController.framework"
-               BlueprintName = "WMZPageController"
-               ReferencedContainer = "container:Pods.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      buildConfiguration = "Debug">
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      buildConfiguration = "Debug"
-      allowLocationSimulation = "YES">
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES"
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>

+ 0 - 5
Pods/Pods.xcodeproj/xcuserdata/niuzhen.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -124,11 +124,6 @@
 			<key>isShown</key>
 			<false/>
 		</dict>
-		<key>WMZPageController.xcscheme</key>
-		<dict>
-			<key>isShown</key>
-			<false/>
-		</dict>
 		<key>YYModel.xcscheme</key>
 		<dict>
 			<key>isShown</key>

+ 0 - 25
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-acknowledgements.markdown

@@ -426,31 +426,6 @@ Copyright 2011 - 2018 umeng.com. All rights reserved.
 Copyright 2011 - 2018 umeng.com. All rights reserved.
 
 
-## WMZPageController
-
-MIT License
-
-Copyright (c) 2019 WMZ
-
-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.
-
-
 ## YYModel
 
 The MIT License (MIT)

+ 0 - 31
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-acknowledgements.plist

@@ -571,37 +571,6 @@ SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
-			<string>MIT License
-
-Copyright (c) 2019 WMZ
-
-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.
-</string>
-			<key>License</key>
-			<string>MIT</string>
-			<key>Title</key>
-			<string>WMZPageController</string>
-			<key>Type</key>
-			<string>PSGroupSpecifier</string>
-		</dict>
-		<dict>
-			<key>FooterText</key>
 			<string>The MIT License (MIT)
 
 Copyright (c) 2015 ibireme &lt;ibireme@gmail.com&gt;

+ 0 - 1
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks-Debug-input-files.xcfilelist

@@ -16,5 +16,4 @@ ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework
 ${BUILT_PRODUCTS_DIR}/SLBannerView/SLBannerView.framework
 ${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework
 ${BUILT_PRODUCTS_DIR}/TZImagePickerController/TZImagePickerController.framework
-${BUILT_PRODUCTS_DIR}/WMZPageController/WMZPageController.framework
 ${BUILT_PRODUCTS_DIR}/YYModel/YYModel.framework

+ 0 - 1
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks-Debug-output-files.xcfilelist

@@ -15,5 +15,4 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SLBannerView.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TZImagePickerController.framework
-${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WMZPageController.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYModel.framework

+ 0 - 1
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks-Release-input-files.xcfilelist

@@ -16,5 +16,4 @@ ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework
 ${BUILT_PRODUCTS_DIR}/SLBannerView/SLBannerView.framework
 ${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework
 ${BUILT_PRODUCTS_DIR}/TZImagePickerController/TZImagePickerController.framework
-${BUILT_PRODUCTS_DIR}/WMZPageController/WMZPageController.framework
 ${BUILT_PRODUCTS_DIR}/YYModel/YYModel.framework

+ 0 - 1
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks-Release-output-files.xcfilelist

@@ -15,5 +15,4 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SLBannerView.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TZImagePickerController.framework
-${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WMZPageController.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYModel.framework

+ 0 - 2
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino-frameworks.sh

@@ -178,7 +178,6 @@ if [[ "$CONFIGURATION" == "Debug" ]]; then
   install_framework "${BUILT_PRODUCTS_DIR}/SLBannerView/SLBannerView.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/TZImagePickerController/TZImagePickerController.framework"
-  install_framework "${BUILT_PRODUCTS_DIR}/WMZPageController/WMZPageController.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/YYModel/YYModel.framework"
 fi
 if [[ "$CONFIGURATION" == "Release" ]]; then
@@ -199,7 +198,6 @@ if [[ "$CONFIGURATION" == "Release" ]]; then
   install_framework "${BUILT_PRODUCTS_DIR}/SLBannerView/SLBannerView.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/TZImagePickerController/TZImagePickerController.framework"
-  install_framework "${BUILT_PRODUCTS_DIR}/WMZPageController/WMZPageController.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/YYModel/YYModel.framework"
 fi
 if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then

Datei-Diff unterdrückt, da er zu groß ist
+ 4 - 4
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino.debug.xcconfig


Datei-Diff unterdrückt, da er zu groß ist
+ 4 - 4
Pods/Target Support Files/Pods-smartRhino/Pods-smartRhino.release.xcconfig


+ 0 - 26
Pods/Target Support Files/WMZPageController/WMZPageController-Info.plist

@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-  <key>CFBundleDevelopmentRegion</key>
-  <string>en</string>
-  <key>CFBundleExecutable</key>
-  <string>${EXECUTABLE_NAME}</string>
-  <key>CFBundleIdentifier</key>
-  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
-  <key>CFBundleInfoDictionaryVersion</key>
-  <string>6.0</string>
-  <key>CFBundleName</key>
-  <string>${PRODUCT_NAME}</string>
-  <key>CFBundlePackageType</key>
-  <string>FMWK</string>
-  <key>CFBundleShortVersionString</key>
-  <string>1.1.7</string>
-  <key>CFBundleSignature</key>
-  <string>????</string>
-  <key>CFBundleVersion</key>
-  <string>${CURRENT_PROJECT_VERSION}</string>
-  <key>NSPrincipalClass</key>
-  <string></string>
-</dict>
-</plist>

+ 0 - 5
Pods/Target Support Files/WMZPageController/WMZPageController-dummy.m

@@ -1,5 +0,0 @@
-#import <Foundation/Foundation.h>
-@interface PodsDummy_WMZPageController : NSObject
-@end
-@implementation PodsDummy_WMZPageController
-@end

+ 0 - 12
Pods/Target Support Files/WMZPageController/WMZPageController-prefix.pch

@@ -1,12 +0,0 @@
-#ifdef __OBJC__
-#import <UIKit/UIKit.h>
-#else
-#ifndef FOUNDATION_EXPORT
-#if defined(__cplusplus)
-#define FOUNDATION_EXPORT extern "C"
-#else
-#define FOUNDATION_EXPORT extern
-#endif
-#endif
-#endif
-

+ 0 - 25
Pods/Target Support Files/WMZPageController/WMZPageController-umbrella.h

@@ -1,25 +0,0 @@
-#ifdef __OBJC__
-#import <UIKit/UIKit.h>
-#else
-#ifndef FOUNDATION_EXPORT
-#if defined(__cplusplus)
-#define FOUNDATION_EXPORT extern "C"
-#else
-#define FOUNDATION_EXPORT extern
-#endif
-#endif
-#endif
-
-#import "NSObject+SafeKVO.h"
-#import "UIView+PageRect.h"
-#import "WMZPageConfig.h"
-#import "WMZPageController.h"
-#import "WMZPageParam.h"
-#import "WMZPageProtocol.h"
-#import "WMZPageScroller.h"
-#import "WMZPageLoopView.h"
-#import "WMZPageNaviBtn.h"
-
-FOUNDATION_EXPORT double WMZPageControllerVersionNumber;
-FOUNDATION_EXPORT const unsigned char WMZPageControllerVersionString[];
-

+ 0 - 6
Pods/Target Support Files/WMZPageController/WMZPageController.modulemap

@@ -1,6 +0,0 @@
-framework module WMZPageController {
-  umbrella header "WMZPageController-umbrella.h"
-
-  export *
-  module * { export * }
-}

+ 0 - 9
Pods/Target Support Files/WMZPageController/WMZPageController.xcconfig

@@ -1,9 +0,0 @@
-CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WMZPageController
-GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-PODS_BUILD_DIR = ${BUILD_DIR}
-PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
-PODS_ROOT = ${SRCROOT}
-PODS_TARGET_SRCROOT = ${PODS_ROOT}/WMZPageController
-PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
-SKIP_INSTALL = YES
-USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 0 - 21
Pods/WMZPageController/LICENSE

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 WMZ
-
-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.

+ 0 - 457
Pods/WMZPageController/README.md

@@ -1,457 +0,0 @@
-# WMZPageController - 分页控制器,替换UIPageController方案,具备完整的生命周期,多种指示器样式,多种标题样式,可悬浮,支持ios13暗黑模式(仿淘宝,优酷,爱奇艺,今日头条,简书,京东等多种标题菜单)(cocopod更新至1.2.4,使用有问题的话先看看是不是最新的版本,有问题加群937909825)
-
-# 注意⚠️⚠️  使用悬浮样式需要实现协议 WMZPageProtocol 
-
-演示
-==============
-### 动画样式 
-| 动画样式                | 作用   (默认值)                                 |
-|-----------------------|-----------------------------------------------------|
-| 爱奇艺样式               | ![AQY.gif](https://upload-images.jianshu.io/upload_images/9163368-2aeb8a149df8c985.gif?imageMogr2/auto-orient/strip)|
-| 优酷样式               | ![YouKu.gif](https://upload-images.jianshu.io/upload_images/9163368-4444482198f9a013.gif?imageMogr2/auto-orient/strip)|
-| 头条样式              | ![Toutiao.gif](https://upload-images.jianshu.io/upload_images/9163368-07204254c59bb15c.gif?imageMogr2/auto-orient/strip)|
-| 京东样式              | ![Jingdong.gif](https://upload-images.jianshu.io/upload_images/9163368-cc1f472eabfe9fcf.gif?imageMogr2/auto-orient/strip)|
-|QQ样式              | ![QQ.gif](https://upload-images.jianshu.io/upload_images/9163368-f700c66170ba6f16.gif?imageMogr2/auto-orient/strip)|
-
-
-### 标题样式 
-| 标题样式                | 作用   (默认值)                                 |
-|-----------------------|-----------------------------------------------------|
-| 换行               |  ![换行.gif](https://upload-images.jianshu.io/upload_images/9163368-0ccff6215a919dc2.gif?imageMogr2/auto-orient/strip) |
-| 富文本               |![富文本.gif](https://upload-images.jianshu.io/upload_images/9163368-5c5d1cd20b6c8509.gif?imageMogr2/auto-orient/strip) |
-| 固定宽度             |![固定宽度.gif](https://upload-images.jianshu.io/upload_images/9163368-7d730925c56b7200.gif?imageMogr2/auto-orient/strip)  |
-| 图文              |![带图片.gif](https://upload-images.jianshu.io/upload_images/9163368-383d923b19d3e1c4.gif?imageMogr2/auto-orient/strip) |
-|固定右边              |![](https://upload-images.jianshu.io/upload_images/9163368-7daf3d6d8092d256.gif?imageMogr2/auto-orient/strip)|
-|嵌套              |![嵌套.gif](https://upload-images.jianshu.io/upload_images/9163368-e6981080bae7c68c.gif?imageMogr2/auto-orient/strip)|
-|自定义标题样式              |![自定义标题样式.gif](https://upload-images.jianshu.io/upload_images/9163368-246160d93223dfe4.gif?imageMogr2/auto-orient/strip)|
-
-### 悬浮样式
-| 悬浮样式                | 作用   (默认值)                                 |
-|-----------------------|-----------------------------------------------------|
-| 悬浮导航栏透明度不变化+刷新在中间              |  ![悬浮导航栏透明度不变化.gif](https://upload-images.jianshu.io/upload_images/9163368-c816c09bfe3919c9.gif?imageMogr2/auto-orient/strip) |
-| 悬浮导航栏透明度变化+刷新在顶部               |![悬浮导航栏透明度变化+刷新在顶部.gif](https://upload-images.jianshu.io/upload_images/9163368-13ae25b5672ab495.gif?imageMogr2/auto-orient/strip)|
-| 自定义复杂嵌套悬浮UI            |![自定义复杂嵌套悬浮UI.gif](https://upload-images.jianshu.io/upload_images/9163368-face20117ca38861.gif?imageMogr2/auto-orient/strip) |
-
-### 特殊使用
-| 样式                | 作用   (默认值)                                 |
-|-----------------------|-----------------------------------------------------|
-| 作为tabbar使用              | ![tabbar.gif](https://upload-images.jianshu.io/upload_images/9163368-c3d9cb4339d6082a.gif?imageMogr2/auto-orient/strip) |
-| 淘宝首页效果           | ![taobao.gif](https://upload-images.jianshu.io/upload_images/9163368-ef84ae02f9d8bebf.gif?imageMogr2/auto-orient/strip)|
-| 美团外卖商家详情效果(子控制器多级联动)           |![meituan.gif](https://upload-images.jianshu.io/upload_images/9163368-caec9456b1383756.gif?imageMogr2/auto-orient/strip) |
-
-特性
-==============
-- 链式语法 结构优雅
-- 支持顶部悬浮
-- 支持自定义头部视图
-- 支持多种指示器样式
-- 支持富文本标题
-- 支持图文混合标题
-- 支持完整的生命周期
-- 替换系统UIPageController的方案,减少内存,避免UIPageController的bug
-- 支持ios13暗黑模式
-- 支持固定最右边标题
-- 支持自定义菜单标题
-- 支持子控制器多个滚动视图联动
-
-用法
-==============
-
-### 默认模式
-
-     WMZPageParam *param = PageParam()
-    .wTitleArrSet(@[@"推荐",@"LOOK直播",@"画",@"现场",@"翻唱",@"MV",@"广场",@"游戏"])
-    .wControllersSet(@[[Test new],[Test new],[Test new],[Test new],[Test new],[Test new],[Test new],[Test new]]);
-     WMZPageController *VC =  [WMZPageController new];
-     VC.param = param;
-    [vc.navigationController pushViewController:VC animated:YES];
-
-
-### 爱奇艺
-	
-     param.wTitleArrSet(data)
-      .wControllersSet(vcArr)
-      .wMenuTitleFontSet(17)
-      .wMenuTitleWeightSet(50)
-      .wMenuTitleColorSet(PageColor(0xeeeeee))
-      .wMenuTitleSelectColorSet(PageColor(0xffffff))
-      .wMenuIndicatorColorSet(PageColor(0x00dea3))
-      .wMenuIndicatorWidthSet(10.0f)
-      .wMenuFixRightDataSet(@"≡")
-      .wMenuAnimalTitleGradientSet(NO)
-      .wTopSuspensionSet(YES)
-      .wMenuAnimalSet(PageTitleMenuAiQY);
-    
-    //数据源
-    data = @[
-    @{
-       @"name":@"推荐",
-       @"backgroundColor":@[PageColor(0x15314b),PageColor(0x009a93)]},
-    @{
-       @"name":@"家务男",
-       @"backgroundColor":PageColor(0xffdfa2),
-       @"indicatorColor":PageColor(0x9b4f2d),
-       @"titleSelectColor":PageColor(0x9b4f2d),
-       @"titleColor":PageColor(0xd79869)
-    },
-    @{
-       @"name":@"70年",
-       @"titleColor":PageColor(0xffaa68),
-       @"backgroundColor":PageColor(0xd70022),
-       @"indicatorColor":PageColor(0xfffcc6),
-       @"titleSelectColor":PageColor(0xfffcc6)
-     },
-     @{
-       @"name":@"VIP",
-       @"backgroundColor":PageColor(0x3d4659),
-       @"titleSelectColor":PageColor(0xe2c285),
-       @"indicatorColor":PageColor(0xe2c285),
-       @"titleColor":PageColor(0x9297a5)
-     },
-     @{@"name":@"热点",@"backgroundColor":@[PageColor(0x15314b),PageColor(0x009a93)]},
-     @{@"name":@"电视剧",@"backgroundColor":@[PageColor(0x15314b),PageColor(0x009a93)]},
-     @{@"name":@"电影",@"backgroundColor":PageColor(0x007e80)},
-     @{@"name":@"儿童",@"backgroundColor":@[PageColor(0x15314b),PageColor(0x009a93)]},
-     @{@"name":@"游戏",@"backgroundColor":PageColor(0x1c2c3b)},
-    ];
-}
-
-
-      
-    
-### 京东
-
-       param.wTitleArrSet(data)
-       .wControllersSet(vcArr)
-       .wMenuTitleSelectColorSet(PageColor(0xFFFBF0))
-       .wMenuBgColorSet(PageColor(0xff183b))
-       .wMenuTitleColorSet(PageColor(0xffffff))
-       .wMenuAnimalTitleGradientSet(NO)
-       .wMenuIndicatorImageSet(@"E")
-       .wMenuIndicatorHeightSet(15)
-       .wMenuIndicatorWidthSet(20)
-       .wMenuCellPaddingSet(40)
-       .wMenuAnimalSet(PageTitleMenuLine);
-       
-       //数据源
-       data = @[
-         @"推荐",
-         @{@"image":@"F"},
-         @"榜单",
-         @"5G",
-         @"抽奖",
-         @"新时代",
-         @{@"image":@"F",@"selectImage":@"D"},
-         @"电竞",
-         @"明星"]
-         
-###  悬浮 (需实现WMZPageProtocol协议返回可滚动的视图)
-       param.wTitleArrSet(data)
-       .wControllersSet(vcArr)
-        //悬浮开启
-       .wTopSuspensionSet(YES)
-        //导航栏透明度变化
-       .wNaviAlphaSet(YES)
-        //头视图y坐标从0开始
-       .wFromNaviSet(NO)
-        //头部
-       .wMenuHeadViewSet(^UIView *{
-            UIView *back = [UIView new];
-            back.backgroundColor = [UIColor whiteColor];
-            back.frame = CGRectMake(0, 0, PageVCWidth, 70+PageVCStatusBarHeight);
-            UISearchBar *bar = [UISearchBar new];
-            bar.tag = 999;
-            bar.barTintColor = [UIColor whiteColor];
-            bar.backgroundColor = [UIColor whiteColor];
-            bar.searchBarStyle = UISearchBarStyleMinimal;
-            bar.searchTextField.textAlignment = NSTextAlignmentCenter;
-            bar.placeholder = @"请搜索";
-            bar.frame = CGRectMake(10, PageVCStatusBarHeight, PageVCWidth-20, 70);
-            [back addSubview:bar];
-            return back;
-       });
-       
-    
-###  暗黑模式 传入的color用宏 PageDarkColor(PageColor(0x333333), PageColor(0xffffff))#####   第一个是正常的颜色 第二个是暗黑模式下的颜色
-
-     
-    
-
-### 可配置的全部参数说明
-      //标题数组 必传
-      wTitleArr
-      
-      //VC数组 必传
-      wControllers
-      
-      //能否滑动切换 default YES
-      wScrollCanTransfer
-      
-      //特殊属性 菜单滑动到顶部悬浮 default NO
-      wTopSuspension
-      
-      //导航栏透明度变化 default NO
-      wNaviAlpha
-      
-      //头部视图frame从导航栏下方开始 default YES
-      wFromNavi
-      
-      //菜单最右边固定内容是否开启左边阴影 defaulf YES
-      wMenuFixShadow
-      
-      //选中变大 default yes
-      wMenuAnimalTitleBig
-      
-      //开启渐变色 default yes
-      wMenuAnimalTitleGradient
-      
-      //默认选中 default 0
-      wMenuDefaultIndex
-      
-      //菜单最右边固定内容 default nil
-      wMenuFixRightData
-      
-      //菜单最右边固定内容宽度 defaulf 45
-      wMenuFixWidth
-      
-      //菜单标题动画效果 default  PageTitleMenuMove
-      wMenuAnimal
-      
-      //头部视图 default nil
-      wMenuHeadView
-      
-      //菜单宽度 default 屏幕宽度
-      wMenuWidth
-      
-      //菜单背景颜色 default ffffff
-      wMenuBgColor
-      
-      //菜单按钮的左右间距 default 20
-      wMenuCellMargin
-      
-      //菜单按钮的上下间距 default 20 (可根据此属性改变导航栏的高度)
-      wMenuCellPadding
-      
-      //菜单的位置 default PageMenuPositionLeft
-      wMenuPosition
-      
-      //菜单标题左右间距 default 0
-      wMenuTitleOffset
-      
-      //菜单标题字体 default 15.0f
-      wMenuTitleFont
-      
-      //菜单标题固定宽度 default 文本内容宽度+wMenuCellMargin
-      wMenuTitleWidth
-      
-      //菜单标题字体粗体 default 0
-      wMenuTitleWeight
-      
-      //菜单字体颜色 default 333333
-      wMenuTitleColor
-      
-      //菜单字体选中颜色 default E5193E
-      wMenuTitleSelectColor
-      
-      //菜单图文位置 default PageBtnPositionTop
-      wMenuImagePosition
-      
-      //菜单图文位置间距 default 5
-      wMenuImageMargin
-      
-      //指示器颜色 default E5193E
-      wMenuIndicatorColor
-      
-      //指示器宽度 default 标题宽度+10
-      wMenuIndicatorWidth
-      
-      //指示器图片 default nil
-      wMenuIndicatorImage
-      
-      //指示器高度 default k1px
-      wMenuIndicatorHeight
-      
-      //指示器圆角 default 0
-      wMenuIndicatorRadio
-      
-      //初始化
-      WMZPageParam * PageParam(void);
-      
-      //右边固定标题点击
-      wEventFixedClick
-      
-      //标题点击
-      wEventClick
-      
-      //控制器开始切换
-      wEventBeganTransferController
-      
-      //控制器结束切换
-      wEventEndTransferController
-      
-      //子控制器滚动(做滚动时候自己的操作)  =>开启悬浮有效
-      wEventChildVCDidSroll
-      
-### 传入菜单数据说明
-
-      普通
-      @[@"推荐",@"LOOK直播",@"画",@"现场",@"翻唱",@"MV",@"广场",@"游戏"];
-      
-      换行 
-      @[@"推荐\n10",@"LOOK直播\n100",@"画\n1000",@"现场\n6",@"翻唱\n4",@"MV\n好看的MV",@"广场\n4",@"游戏\n30"]
-      
-      带红点普通标题 badge红点
-      @[
-        @{@"name":@"推荐",@"badge":@(YES)},
-        @"LOOK直播",
-        @"画",
-        @"现场",
-        @{@"name":@"翻唱",@"badge":@(YES)},
-        @"MV",
-        @"广场",
-        @{@"name":@"游戏",@"badge":@(YES)},
-     ];
-     
-     带富文本  wrapColor第二行标题  firstColor第一行标题 
-     @[
-        @{@"name":@"推荐\n10",@"wrapColor":[UIColor brownColor]},
-        @"LOOK直播\n10",
-        @{@"name":@"画\n10",@"badge":@(YES),@"wrapColor":[UIColor purpleColor]},
-        @"现场\n10",
-        @{@"name":@"翻唱\n10",@"wrapColor":[UIColor blueColor],@"firstColor":[UIColor cyanColor]},
-        @"MV\n10",
-        @"MV\n10",
-        @{@"name":@"游戏\n10",@"badge":@(YES),@"wrapColor":[UIColor yellowColor]},
-    ];
-    
-    图片  image图片  selectImage选中图片
-    @[
-        @{@"name":@"推荐",@"image":@"B",@"selectImage":@"D"},
-        @{@"name":@"LOOK直播",@"image":@"C",@"selectImage":@"D"},
-        @{@"name":@"画",@"image":@"B",@"selectImage":@"D"},
-        @{@"name":@"现场",@"image":@"C",@"selectImage":@"D"},
-        @{@"name":@"翻唱",@"image":@"B",@"selectImage":@"D"},
-        @{@"name":@"MV",@"image":@"C",@"selectImage":@"D"},
-        @{@"name":@"游戏",@"badge":@(YES),@"image":@"B",@"selectImage":@"D"},
-        @{@"name":@"广场",@"image":@"C",@"selectImage":@"D"},
-    ];
-    
-    /*爱奇艺标题
-    (滚动完改变颜色)
-    indicatorColor 指示器颜色
-    titleSelectColor 选中字体颜色
-    titleColor 未选中字体颜色
-    backgroundColor 选中背景颜色 (如果是数组则是背景色渐变色)
-    */
-    {
-    return @[
-    @{
-       @"name":@"推荐",
-       @"backgroundColor":@[PageColor(0x15314b),PageColor(0x009a93)]},
-    @{
-       @"name":@"家务男",
-       @"backgroundColor":PageColor(0xffdfa2),
-       @"indicatorColor":PageColor(0x9b4f2d),
-       @"titleSelectColor":PageColor(0x9b4f2d),
-       @"titleColor":PageColor(0xd79869)
-    },
-    @{
-       @"name":@"70年",
-       @"titleColor":PageColor(0xffaa68),
-       @"backgroundColor":PageColor(0xd70022),
-       @"indicatorColor":PageColor(0xfffcc6),
-       @"titleSelectColor":PageColor(0xfffcc6)
-     },
-     @{
-       @"name":@"VIP",
-       @"backgroundColor":PageColor(0x3d4659),
-       @"titleSelectColor":PageColor(0xe2c285),
-       @"indicatorColor":PageColor(0xe2c285),
-       @"titleColor":PageColor(0x9297a5)
-     },
-     @{@"name":@"热点",@"backgroundColor":@[PageColor(0x15314b),PageColor(0x009a93)]},
-     @{@"name":@"电视剧",@"backgroundColor":@[PageColor(0x15314b),PageColor(0x009a93)]},
-     @{@"name":@"电影",@"backgroundColor":PageColor(0x007e80)},
-     @{@"name":@"儿童",@"backgroundColor":@[PageColor(0x15314b),PageColor(0x009a93)]},
-     @{@"name":@"游戏",@"backgroundColor":PageColor(0x1c2c3b)},
-    ];
-### 详情看demo    
-
-###  更新 改变wTitleArr和wControllers后直接调用实例方法即可
-     /*
-     *更新(全部重新渲染)
-     */
-     - (void)updatePageController;
-     
-     /*
-     *更新头部
-     */
-     - (void)updateHeadView;
-
-     /*
-     *手动调用菜单到第index个
-     */
-     - (void)selectMenuWithIndex:(NSInteger)index;
-     
-     /*
-     *底部手动滚动  传入CGPointZero则为吸顶临界点
-     */
-     - (void)downScrollViewSetOffset:(CGPoint)point animated:(BOOL)animat;
-
-### 依赖
-无任何依赖 
-
-安装
-==============
-
-### CocoaPods
-1. 将 cocoapods 更新至最新版本.
-2. 在 Podfile 中添加 `pod 'WMZPageController'`。
-3. 执行 `pod install` 或 `pod update`。
-4. 导入 #import "WMZPageController.h"。
-
-### 注:要消除链式编程的警告 
-要在Buildding Settings 把CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF 设为NO
-
-### 手动安装
-
-1. 下载 WMZPageController 文件夹内的所有内容。
-2. 将 WMZPageController 内的源文件添加(拖放)到你的工程。
-3. 导入 #import "WMZPageController.h"
-
-系统要求
-==============
-该库最低支持 `iOS 9.0` 和 `Xcode 9.0`。
-
-
-
-许可证
-==============
-LEETheme 使用 MIT 许可证,详情见 [LICENSE](LICENSE) 文件。
-
-
-个人主页
-==============
-使用过程中如果有什么bug欢迎给我提issue 我看到就会解决
-[我的简书](https://www.jianshu.com/p/32e997b74d74)
-ios问题交流群 937909825(有问题加群哈)
-
-更新日记
-==============
-- 20191104 更新cocopod到1.0.1版本 修复一些问题
-- 20191207 更新cocopod到1.0.3版本 修复悬浮问题
-- 20191209 更新cocopod到1.0.4版本 修复bug
-- 20191213 更新cocopod到1.0.5版本 增加demo说明 新增自定义菜单接口
-- 20191213 更新cocopod到1.1.0版本 建议更新 新增可添加tableviewCell功能
-- 20200104 更新cocopod到1.1.1版本 修复bug
-- 20200107 更新cocopod到1.1.3版本 修复bug 新增可固定底部
-- 20200202 更新cocopod到1.1.4版本 修复bug 
-- 20200202 新增wFixFirst属性 固定在所有控制器的底部的尾视图
-- 20200328 修复设置导航栏translant和tabbar设置translant的布局问题 更新至1.1.5
-- 20200409 修复偏移问题 更新至1.1.6
-- 20200424 修复细节问题 更新至1.1.7
-- 20200511 修复bug 更新至1.1.8
-- 20200605 新增自定义红点和特殊样式1 更新至1.1.9
-- 20200726 新增淘宝分页效果/美团商家分页效果 更新至1.2.0
-- 20200801 修复bug 更新至1.2.1
-- 20200820 修复bug/新增swift使用示范 更新至1.2.4 

+ 1 - 1
podfile

@@ -14,7 +14,7 @@ pod 'SDWebImage'
 pod 'FLAnimatedImage'
 pod 'YYModel'
 #pod 'WechatOpenSDK'
-pod 'WMZPageController'
+#pod 'WMZPageController','~> 1.1.4'
 pod 'SLBannerView'
 pod 'FMDB'
 pod 'MJRefresh'

+ 74 - 0
smartRhino.xcodeproj/project.pbxproj

@@ -1365,6 +1365,14 @@
 		EBD6231225148231007FF6BC /* IndexGoodBookCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EBD6231025148231007FF6BC /* IndexGoodBookCell.xib */; };
 		EBD623152514A175007FF6BC /* home.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EBD623142514A174007FF6BC /* home.storyboard */; };
 		EBD623192514A21C007FF6BC /* IndexMoreVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD623182514A21C007FF6BC /* IndexMoreVC.m */; };
+		EBD623BB25159A66007FF6BC /* WMZPageLoopView.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD623AB25159A66007FF6BC /* WMZPageLoopView.m */; };
+		EBD623BC25159A66007FF6BC /* WMZPageNaviBtn.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD623AC25159A66007FF6BC /* WMZPageNaviBtn.m */; };
+		EBD623BD25159A66007FF6BC /* NSObject+SafeKVO.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD623B125159A66007FF6BC /* NSObject+SafeKVO.m */; };
+		EBD623BE25159A66007FF6BC /* WMZPageParam.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD623B225159A66007FF6BC /* WMZPageParam.m */; };
+		EBD623BF25159A66007FF6BC /* WMZPageController.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD623B525159A66007FF6BC /* WMZPageController.m */; };
+		EBD623C025159A66007FF6BC /* WMZPageScroller.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD623B625159A66007FF6BC /* WMZPageScroller.m */; };
+		EBD623C125159A66007FF6BC /* UIView+PageRect.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD623B925159A66007FF6BC /* UIView+PageRect.m */; };
+		EBD623C225159A66007FF6BC /* PageController.bundle in Resources */ = {isa = PBXBuildFile; fileRef = EBD623BA25159A66007FF6BC /* PageController.bundle */; };
 		EBD627D52429DD6500D91C9E /* ChatQrcodeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBD627D42429DD6500D91C9E /* ChatQrcodeVC.m */; };
 		EBDD70BB23B4876F00AC0BF4 /* MyWorkCarVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBDD70BA23B4876F00AC0BF4 /* MyWorkCarVC.m */; };
 		EBDE08B02458179B005D426C /* CommonHomeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBDE08AF2458179B005D426C /* CommonHomeVC.m */; };
@@ -3837,6 +3845,23 @@
 		EBD623142514A174007FF6BC /* home.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = home.storyboard; sourceTree = "<group>"; };
 		EBD623172514A21C007FF6BC /* IndexMoreVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IndexMoreVC.h; sourceTree = "<group>"; };
 		EBD623182514A21C007FF6BC /* IndexMoreVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IndexMoreVC.m; sourceTree = "<group>"; };
+		EBD623A925159A66007FF6BC /* WMZPageLoopView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMZPageLoopView.h; sourceTree = "<group>"; };
+		EBD623AA25159A66007FF6BC /* WMZPageNaviBtn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMZPageNaviBtn.h; sourceTree = "<group>"; };
+		EBD623AB25159A66007FF6BC /* WMZPageLoopView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WMZPageLoopView.m; sourceTree = "<group>"; };
+		EBD623AC25159A66007FF6BC /* WMZPageNaviBtn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WMZPageNaviBtn.m; sourceTree = "<group>"; };
+		EBD623AE25159A66007FF6BC /* WMZPageScroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMZPageScroller.h; sourceTree = "<group>"; };
+		EBD623AF25159A66007FF6BC /* WMZPageConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMZPageConfig.h; sourceTree = "<group>"; };
+		EBD623B025159A66007FF6BC /* WMZPageController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMZPageController.h; sourceTree = "<group>"; };
+		EBD623B125159A66007FF6BC /* NSObject+SafeKVO.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+SafeKVO.m"; sourceTree = "<group>"; };
+		EBD623B225159A66007FF6BC /* WMZPageParam.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WMZPageParam.m; sourceTree = "<group>"; };
+		EBD623B325159A66007FF6BC /* WMZPageProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMZPageProtocol.h; sourceTree = "<group>"; };
+		EBD623B425159A66007FF6BC /* UIView+PageRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+PageRect.h"; sourceTree = "<group>"; };
+		EBD623B525159A66007FF6BC /* WMZPageController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WMZPageController.m; sourceTree = "<group>"; };
+		EBD623B625159A66007FF6BC /* WMZPageScroller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WMZPageScroller.m; sourceTree = "<group>"; };
+		EBD623B725159A66007FF6BC /* NSObject+SafeKVO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+SafeKVO.h"; sourceTree = "<group>"; };
+		EBD623B825159A66007FF6BC /* WMZPageParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMZPageParam.h; sourceTree = "<group>"; };
+		EBD623B925159A66007FF6BC /* UIView+PageRect.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+PageRect.m"; sourceTree = "<group>"; };
+		EBD623BA25159A66007FF6BC /* PageController.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = PageController.bundle; sourceTree = "<group>"; };
 		EBD627D32429DD6500D91C9E /* ChatQrcodeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatQrcodeVC.h; sourceTree = "<group>"; };
 		EBD627D42429DD6500D91C9E /* ChatQrcodeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatQrcodeVC.m; sourceTree = "<group>"; };
 		EBDD70B923B4876F00AC0BF4 /* MyWorkCarVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyWorkCarVC.h; sourceTree = "<group>"; };
@@ -5463,6 +5488,7 @@
 		C6F2E18D236C333E009E6903 /* Third */ = {
 			isa = PBXGroup;
 			children = (
+				EBD623A725159A66007FF6BC /* WMZPageController */,
 				EBAB7CAF2500FAC000923FBA /* BaiduAIBD */,
 				EBB6883523C9C0C300E24DD9 /* RichTextEdit */,
 				C7B8646423C9CE800090F2A3 /* Swipe */,
@@ -9155,6 +9181,46 @@
 			path = BDSResource;
 			sourceTree = "<group>";
 		};
+		EBD623A725159A66007FF6BC /* WMZPageController */ = {
+			isa = PBXGroup;
+			children = (
+				EBD623A825159A66007FF6BC /* Navi */,
+				EBD623AD25159A66007FF6BC /* Controller */,
+				EBD623BA25159A66007FF6BC /* PageController.bundle */,
+			);
+			path = WMZPageController;
+			sourceTree = "<group>";
+		};
+		EBD623A825159A66007FF6BC /* Navi */ = {
+			isa = PBXGroup;
+			children = (
+				EBD623A925159A66007FF6BC /* WMZPageLoopView.h */,
+				EBD623AA25159A66007FF6BC /* WMZPageNaviBtn.h */,
+				EBD623AB25159A66007FF6BC /* WMZPageLoopView.m */,
+				EBD623AC25159A66007FF6BC /* WMZPageNaviBtn.m */,
+			);
+			path = Navi;
+			sourceTree = "<group>";
+		};
+		EBD623AD25159A66007FF6BC /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				EBD623AE25159A66007FF6BC /* WMZPageScroller.h */,
+				EBD623AF25159A66007FF6BC /* WMZPageConfig.h */,
+				EBD623B025159A66007FF6BC /* WMZPageController.h */,
+				EBD623B125159A66007FF6BC /* NSObject+SafeKVO.m */,
+				EBD623B225159A66007FF6BC /* WMZPageParam.m */,
+				EBD623B325159A66007FF6BC /* WMZPageProtocol.h */,
+				EBD623B425159A66007FF6BC /* UIView+PageRect.h */,
+				EBD623B525159A66007FF6BC /* WMZPageController.m */,
+				EBD623B625159A66007FF6BC /* WMZPageScroller.m */,
+				EBD623B725159A66007FF6BC /* NSObject+SafeKVO.h */,
+				EBD623B825159A66007FF6BC /* WMZPageParam.h */,
+				EBD623B925159A66007FF6BC /* UIView+PageRect.m */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
 		EBDE08AD24581782005D426C /* common */ = {
 			isa = PBXGroup;
 			children = (
@@ -9479,6 +9545,7 @@
 				C6227097236C09FC00E2E3BF /* mj_air_black@2x.png in Resources */,
 				EB0A73A8247BC95900DB75CB /* BookBillCousreCell.xib in Resources */,
 				EBD29FB125025A0700AEB04C /* Chinese_And_English_Text.dat in Resources */,
+				EBD623C225159A66007FF6BC /* PageController.bundle in Resources */,
 				EB568FC2239B40C7000827B0 /* FindResultViewCell.xib in Resources */,
 				C7743F8823A86A8600973D70 /* WorkFlowHomeListController.xib in Resources */,
 				EB96B8A323BF5ACB00EE09D7 /* MyTDTopic.storyboard in Resources */,
@@ -9882,6 +9949,7 @@
 				EBCCEC4E2508C3D800DC6B6F /* BookSetPlayTimeAlert.m in Sources */,
 				EBF3C53725134DBB00D40A66 /* IndexAllCell.m in Sources */,
 				EB8E2D24239666A900CDFBDA /* EMChineseToPinyin.m in Sources */,
+				EBD623BE25159A66007FF6BC /* WMZPageParam.m in Sources */,
 				EB952680248A0BA6003EFCCE /* DCContentVC.m in Sources */,
 				EB9DA130250333240062FEB8 /* SwitchTableViewCell.m in Sources */,
 				C5598D2523869D2300BC7185 /* NoticeModel.m in Sources */,
@@ -9990,9 +10058,11 @@
 				EBB6887B23C9C0C300E24DD9 /* UITextView+RCSBackWord.m in Sources */,
 				EB56DA0723BB31AF00FE7262 /* EMChatFileShowVC.m in Sources */,
 				EBF1771B24826E5100C729DC /* BookPeriodicaCell.m in Sources */,
+				EBD623C125159A66007FF6BC /* UIView+PageRect.m in Sources */,
 				324F176A239B3B4D0025CAE7 /* NoticeSelectCell.m in Sources */,
 				EB5F45012474CE0E008D316D /* BookDetailCell.m in Sources */,
 				C7D6BB9C235DA18A00770E7C /* ZYCTool.m in Sources */,
+				EBD623BC25159A66007FF6BC /* WMZPageNaviBtn.m in Sources */,
 				C7D6BBA8235DA18A00770E7C /* TDSearchBar.m in Sources */,
 				EB0F64D023A9EE5900AD56A0 /* TopicGroupManageModel.m in Sources */,
 				EB5F45092475093C008D316D /* BookChanelCell.m in Sources */,
@@ -10194,6 +10264,7 @@
 				EBAA1F242463A4F200272F13 /* SourceGroupVC.m in Sources */,
 				EB8E2CF4239666A900CDFBDA /* wav.mm in Sources */,
 				C62215A42372CC89006F5D7F /* MailListByZuVC.m in Sources */,
+				EBD623C025159A66007FF6BC /* WMZPageScroller.m in Sources */,
 				C7D6BC85235DA1CE00770E7C /* NoticeViewController.m in Sources */,
 				C76DB42F236ACB4B00369F5C /* MyTDTopicViewController.m in Sources */,
 				EBFDFE4C247762280046E847 /* BookSelectCollectCell.m in Sources */,
@@ -10313,6 +10384,7 @@
 				EBFA5EF4246E374A00915D5F /* HomeMusicCell.m in Sources */,
 				C6F2E19A236C334A009E6903 /* UIImage+Crop.m in Sources */,
 				EBA0FA55249CC22C0022AFA3 /* SSScrollViewController.m in Sources */,
+				EBD623BD25159A66007FF6BC /* NSObject+SafeKVO.m in Sources */,
 				C751012823837FB100E4429B /* MyZanCell.m in Sources */,
 				EB3CB79F24E5481B00F399E7 /* GroupSynopsisUserVC.m in Sources */,
 				EB1D158424C807A800C82FED /* TopicShowListView.m in Sources */,
@@ -10408,6 +10480,7 @@
 				C625AA7A236FB5A40010E967 /* ChatMsgCollectionCell.m in Sources */,
 				C75958A6237FFCC200AE85C0 /* Item.m in Sources */,
 				C77E217F23ADEE51009A230C /* WorkFlowOrderSelectedCell.m in Sources */,
+				EBD623BF25159A66007FF6BC /* WMZPageController.m in Sources */,
 				C75ACEDA236AAE5F00CB6374 /* MyTDGroupViewController.m in Sources */,
 				326B92D9239F78B8004230EB /* MoveViewController.m in Sources */,
 				C625AA7E236FB9080010E967 /* UIView+Extension.m in Sources */,
@@ -10568,6 +10641,7 @@
 				C62215922372A32B006F5D7F /* NoticeUnreadCell.m in Sources */,
 				C59D0C4823825DE1007D0760 /* YYKeychain.m in Sources */,
 				EBF7176724723CBA00ED1838 /* BookCardPayAlert.m in Sources */,
+				EBD623BB25159A66007FF6BC /* WMZPageLoopView.m in Sources */,
 				C7D6BB41235DA18A00770E7C /* SearchTypeSection.m in Sources */,
 				EB9DA134250333240062FEB8 /* InputTableViewCell.m in Sources */,
 				EBCE636A24AEC7BB004C9B3B /* BookChanelModel.m in Sources */,

BIN
smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate


Pods/WMZPageController/WMZPageController/WMZPageController/Controller/NSObject+SafeKVO.h → smartRhino/Project/Other/Third/WMZPageController/Controller/NSObject+SafeKVO.h


Pods/WMZPageController/WMZPageController/WMZPageController/Controller/NSObject+SafeKVO.m → smartRhino/Project/Other/Third/WMZPageController/Controller/NSObject+SafeKVO.m


Pods/WMZPageController/WMZPageController/WMZPageController/Controller/UIView+PageRect.h → smartRhino/Project/Other/Third/WMZPageController/Controller/UIView+PageRect.h


Pods/WMZPageController/WMZPageController/WMZPageController/Controller/UIView+PageRect.m → smartRhino/Project/Other/Third/WMZPageController/Controller/UIView+PageRect.m


+ 0 - 25
Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageConfig.h

@@ -14,7 +14,6 @@
 #import "WMZPageProtocol.h"
 #import "NSObject+SafeKVO.h"
 #import "UIView+PageRect.h"
-@class WMZPageNaviBtn;
 #define   PageVCWidth   [UIScreen mainScreen].bounds.size.width
 #define   PageVCHeight  [UIScreen mainScreen].bounds.size.height
 
@@ -79,10 +78,6 @@ typedef enum :NSInteger{
     PageBtnPositionBottom   = 3,            //图片在下,文字在上
 }PageBtnPosition;
 
-typedef enum :NSInteger{
-    PageSpecialTypeOne     = 1,          //菜单栏可见底部子视图
-}PageSpecialType;
-
 
 typedef enum :NSInteger{
     PageTitleMenuNone     = 0,            //无样式
@@ -153,10 +148,6 @@ typedef UIView* (^PageFootViewBlock)(void);
  */
 typedef void (^PageHeadAndMenuBgView)(UIView *bgView);
 
-/*
- * 自定义红点
- */
-typedef void (^PageCustomRedText)(UILabel *redLa,NSDictionary *info);
 
 /*
  * 自定义菜单栏
@@ -170,20 +161,4 @@ typedef void (^PageCustomMenuTitle)(NSArray *titleArr);
 typedef void (^PageCustomMenuSelectTitle)(NSArray *titleArr);
 
 
-/*
- * 切换高度block
- */
-typedef void (^PageMenuChangeHeight)(NSArray<WMZPageNaviBtn*>*titleArr,CGFloat offset);
-
-/*
- * 恢复原来高度block
- */
-typedef void (^PageMenuNormalHeight)(NSArray<WMZPageNaviBtn*>*titleArr);
-
-
-/*
- * vc数组
- */
-typedef UIViewController* (^PageViewControllerIndex)(NSInteger index);
-
 #endif /* WMZPageConfig_h */

+ 4 - 7
Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageController.h

@@ -13,6 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
 @interface WMZPageController : UIViewController<UIScrollViewDelegate,WMZPageLoopDelegate,UITableViewDelegate>
 //参数
 @property(nonatomic,strong)WMZPageParam *param;
+//frame数组  如果出现frame不准确 可以手动调节一下这个数组的内容 [NSValue 存的rect]
+@property(nonatomic,strong)NSMutableArray *rectArr;
 //头部标题滚动视图
 @property(nonatomic,strong)WMZPageLoopView *upSc;
 //底部全屏滚动视图
@@ -32,26 +34,21 @@ NS_ASSUME_NONNULL_BEGIN
 @property(nonatomic,assign)CGFloat footViewOrginY;
 
 /*
- *全部更新(会全部重新渲染)
+ *更新
  */
 - (void)updatePageController;
 
-- (void)updateController;
 /*
 *更新头部
 */
 - (void)updateHeadView;
 
 /*
-*更新菜单栏
-*/
-- (void)updateMenuData;
-
-/*
 *底部手动滚动  传入CGPointZero则为吸顶临界点
 */
 - (void)downScrollViewSetOffset:(CGPoint)point animated:(BOOL)animat;
 
+
 /*
 *手动调用菜单到第index个
 */

+ 149 - 205
Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageController.m

@@ -13,13 +13,9 @@
     NSInteger footerViewIndex;
     CGFloat sonChildVCHeight;
     CGFloat sonChildVCY;
-    CGRect pageDataFrame;
-    CGRect pageUpScFrame;
 }
 //当前子控制器中的滚动视图
 @property(nonatomic,strong)UIScrollView *currentScroll;
-//子控制器中的滚动视图数组(底部有多层的情况)
-@property(nonatomic,strong)NSArray *currentScrollArr;
 //当前子控制器中需要固定的底部视图
 @property(nonatomic,strong)UIView *currentFootView;
 //头部视图
@@ -44,10 +40,61 @@
 @property (nonatomic, assign) CGFloat headHeight;
 @end
 @implementation WMZPageController
+//更新
+- (void)updatePageController{
+    [self.upSc removeFromSuperview];
+    [self.downSc removeFromSuperview];
+    self.downSc = [[WMZPageScroller alloc]initWithFrame:CGRectMake(0, 0, PageVCWidth, PageVCHeight) style:UITableViewStyleGrouped];
+    [self.sonChildScrollerViewDic removeAllObjects];
+    [self.sonChildFooterViewDic removeAllObjects];
+    [self.rectArr removeAllObjects];
+    footerViewIndex = -1;
+    for (UIViewController *VC in self.childViewControllers) {
+        [VC willMoveToParentViewController:nil];
+        [VC.view removeFromSuperview];
+        [VC removeFromParentViewController];
+    }
+    [self setParam];
+    [self UI];
+}
+
+//更新头部
+- (void)updateHeadView{
+    [self setUpHead];
+}
+
+/*
+*底部手动滚动  传入CGPointZero则为吸顶临界点
+*/
+- (void)downScrollViewSetOffset:(CGPoint)point animated:(BOOL)animat;{
+    if (CGPointEqualToPoint(point, CGPointZero)) {
+        //顶点
+        int topOffset = self.downSc.contentSize.height - self.downSc.frame.size.height;
+        if (!self.parentViewController) {
+            topOffset -=PageVCStatusBarHeight;
+        }else{
+            if (!self.param.wFromNavi) {
+                topOffset -=PageVCNavBarHeight;
+            }
+        }
+        point = CGPointMake(self.downSc.contentOffset.x, topOffset);
+    }
+    [self.downSc setContentOffset:point animated:animat];
+}
+
+
 - (void)viewDidLoad{
     self.view.backgroundColor = [UIColor whiteColor];
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [self setParam];
+        [self UI];
+        if (self.naviBarBackGround&&self.param.wNaviColor) {
+            self.naviBarBackGround.backgroundColor = self.param.wNaviColor;
+        }
+    });
 }
 
+
 - (void)viewWillDisappear:(BOOL)animated{
     [super viewWillDisappear:animated];
     if (self.naviBarBackGround&&self.param.wNaviAlpha) {
@@ -125,11 +172,6 @@
         self.param.wMenuAnimal == PageTitleMenuPDD) {
         self.param.wMenuAnimalTitleBig = NO;
         self.param.wMenuAnimalTitleGradient = NO;
-        if (self.param.wMenuAnimal == PageTitleMenuPDD) {
-            if (!self.param.wMenuIndicatorWidth) {
-                self.param.wMenuIndicatorWidth = 25;
-            }
-        }
     }
     
     if (self.param.wMenuAnimal == PageTitleMenuYouKu) {
@@ -155,6 +197,7 @@
 
 
 - (void)UI{
+
     self.cache = [NSCache new];
     self.cache.countLimit = 30;
     footerViewIndex = -1;
@@ -162,20 +205,18 @@
     CGFloat tabbarHeight = 0;
     CGFloat statusBarHeight = 0;
     if (self.presentingViewController) {
-        
         if (!self.navigationController) {
             statusBarHeight = PageVCStatusBarHeight;
         }
     } else if (self.tabBarController) {
-        
         if (!self.tabBarController.tabBar.translucent) {
             tabbarHeight = 0;
         }else{
             tabbarHeight = PageVCTabBarHeight;
         }
     } else if (self.navigationController){
-        
         headY = (!self.param.wFromNavi&&
+                  self.param.wMenuPosition != PageMenuPositionNavi&&
                   self.param.wMenuPosition != PageMenuPositionBottom)?0:
        (!self.navigationController.navigationBar.translucent?0:PageVCNavBarHeight);
     }
@@ -184,7 +225,8 @@
         if ([self.parentViewController isKindOfClass:[UINavigationController class]]) {
             UINavigationController *naPar = (UINavigationController*)self.parentViewController;
             headY = (!self.param.wFromNavi&&
-            self.param.wMenuPosition != PageMenuPositionBottom)?0:
+            self.param.wMenuPosition != PageMenuPositionNavi&&
+                     self.param.wMenuPosition != PageMenuPositionBottom)?0:
             (!naPar.navigationBar.translucent?0:PageVCNavBarHeight);
             if (self.parentViewController.tabBarController) {
                 if (!self.parentViewController.tabBarController.tabBar.translucent) {
@@ -202,6 +244,7 @@
             }
             if (self.parentViewController.navigationController) {
                 headY = (!self.param.wFromNavi&&
+                self.param.wMenuPosition != PageMenuPositionNavi&&
                 self.param.wMenuPosition != PageMenuPositionBottom)?0:(!self.parentViewController.navigationController.navigationBar.translucent?0:PageVCNavBarHeight);
             }else if(self.parentViewController.presentingViewController){
                 statusBarHeight = PageVCStatusBarHeight;
@@ -217,27 +260,26 @@
     if (self.hidesBottomBarWhenPushed&&tabbarHeight>=PageVCTabBarHeight) {
         tabbarHeight -= PageVCTabBarHeight;
     }
+    
     //全屏
       if (self.navigationController) {
           for (UIGestureRecognizer *gestureRecognizer in self.downSc.gestureRecognizers) {
               [gestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];
           }
       }
-    
       if (@available(iOS 11.0, *)) {
+          self.downSc.estimatedRowHeight = 0.01;
           self.downSc.estimatedSectionFooterHeight = 0.01;
           self.downSc.estimatedSectionHeaderHeight = 0.01;
           self.downSc.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+      }else{
+           self.downSc.estimatedRowHeight = 0;
       }
-      self.downSc.estimatedRowHeight = 100;
       self.downSc.sectionHeaderHeight = 0.01;
       self.downSc.sectionFooterHeight = 0.01;
       self.downSc.delegate = self;
       self.downSc.bounces = self.param.wBounces;
       self.downSc.frame = CGRectMake(0, headY, self.view.frame.size.width, self.view.frame.size.height-headY-tabbarHeight);
-      self.downSc.canScroll = [self canTopSuspension];
-      self.downSc.scrollEnabled = [self canTopSuspension];
-      self.downSc.wFromNavi = self.param.wFromNavi;
       [self.view addSubview:self.downSc];
     
 
@@ -247,36 +289,12 @@
     self.downSc.tableFooterView = self.upSc;
     
     if (self.navigationController) {
+        
         for (UIGestureRecognizer *gestureRecognizer in self.upSc.gestureRecognizers) {
             [gestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];
         }
     }
     //底部
-    [self setUpMenuAndDataViewFrame];
-    
-    if (self.param.wCustomMenuTitle) {
-        self.param.wCustomMenuTitle(self.upSc.btnArr);
-    }
-    
-    [self setUpHead];
-   
-    [self.upSc.btnArr enumerateObjectsUsingBlock:^(WMZPageNaviBtn*  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
-        if (idx == self.param.wMenuDefaultIndex && obj.tag!=10086) {
-            self.upSc.first = YES;
-            [obj sendActionsForControlEvents:UIControlEventTouchUpInside];
-            *stop = YES;
-        }
-    }];
-    self.canScroll = YES;
-    self.scrolToBottom = YES;
-    
-}
-
-- (void)updateMenuData{
-     [self UI];
-}
-
-- (void)setUpMenuAndDataViewFrame{
     sonChildVCY = 0;
     sonChildVCHeight = 0;
     CGFloat titleMenuhHeight = self.upSc.mainView.frame.size.height;
@@ -285,11 +303,7 @@
         sonChildVCHeight = self.downSc.frame.size.height;
     }else if (self.param.wMenuPosition == PageMenuPositionBottom) {
         sonChildVCY = 0;
-        if (self.param.wMenuSpecifial == PageSpecialTypeOne) {
-            sonChildVCHeight = self.downSc.frame.size.height;
-        }else{
-            sonChildVCHeight = self.downSc.frame.size.height - titleMenuhHeight;
-        }
+        sonChildVCHeight = self.downSc.frame.size.height - titleMenuhHeight;
     }else{
         sonChildVCY = 0;
         sonChildVCHeight = self.downSc.frame.size.height - titleMenuhHeight;
@@ -298,39 +312,11 @@
         sonChildVCHeight -= self.param.wTopOffset;
     }
     
-    CGFloat height = [self canTopSuspension]?sonChildVCHeight :(sonChildVCHeight-self.headHeight);
-    if ([self canTopSuspension]) {
-        if (!self.parentViewController) {
-            height -=PageVCStatusBarHeight;
-        }else{
-            if (![self.parentViewController isKindOfClass:[WMZPageController class]]) {
-                if (self.navigationController) {
-                    if (!self.param.wFromNavi) {
-                        height -= (self.navigationController.navigationBar.translucent?PageVCNavBarHeight:0);
-                        
-                    }
-                }else{
-                    height -= PageVCStatusBarHeight;
-                }
-            }
-        }
-    }
-    sonChildVCHeight = height;
-    
-    
     if (self.param.wMenuPosition == PageMenuPositionBottom){
-        if (self.param.wMenuSpecifial == PageSpecialTypeOne) {
-            [self.upSc.dataView page_y:0];
-            [self.upSc.dataView page_height:sonChildVCHeight];
-            [self.upSc.mainView page_y:sonChildVCHeight-titleMenuhHeight];
-            [self.upSc page_height:CGRectGetMaxY(self.upSc.mainView.frame)];
-            [self.upSc bringSubviewToFront:self.upSc.mainView];
-        }else{
-            [self.upSc.dataView page_y:0];
-            [self.upSc.dataView page_height:sonChildVCHeight];
-            [self.upSc.mainView page_y:CGRectGetMaxY(self.upSc.dataView.frame)];
-            [self.upSc page_height:CGRectGetMaxY(self.upSc.mainView.frame)];
-        }
+        [self.upSc.dataView page_y:0];
+        [self.upSc.dataView page_height:sonChildVCHeight];
+        [self.upSc.mainView page_y:CGRectGetMaxY(self.upSc.dataView.frame)];
+        [self.upSc page_height:CGRectGetMaxY(self.upSc.mainView.frame)];
     }else if (self.param.wMenuPosition == PageMenuPositionNavi && self.navigationController) {
         [self.upSc.mainView removeFromSuperview];
         [self.upSc.dataView page_y:0];
@@ -342,10 +328,34 @@
         [self.upSc.dataView page_height:sonChildVCHeight];
         [self.upSc page_height:CGRectGetMaxY(self.upSc.dataView.frame)];
     }
+    
+   
     self.param.titleHeight = self.upSc.mainView.frame.size.height;
     self.downSc.menuTitleHeight = self.param.titleHeight;
-    pageDataFrame = self.upSc.dataView.frame;
-    pageUpScFrame = self.upSc.frame;
+    self.downSc.canScroll = [self canTopSuspension];
+    self.downSc.scrollEnabled = [self canTopSuspension];
+    self.downSc.wFromNavi = self.param.wFromNavi;
+    if (self.param.wCustomMenuTitle) {
+        self.param.wCustomMenuTitle(self.upSc.btnArr);
+    }
+    
+    [self setUpHead];
+   
+    [self.upSc.btnArr enumerateObjectsUsingBlock:^(WMZPageNaviBtn*  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+        if (idx == self.param.wMenuDefaultIndex) {
+            self.upSc.first = YES;
+            [obj sendActionsForControlEvents:UIControlEventTouchUpInside];
+            *stop = YES;
+        }
+    }];
+    self.canScroll = YES;
+    self.scrolToBottom = YES;
+    
+    if (@available(iOS 11.0, *)) {
+        [[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
+    }else {
+        self.automaticallyAdjustsScrollViewInsets = NO;
+    }
 }
 
 - (void)setUpHead{
@@ -359,6 +369,28 @@
     }else{
         self.downSc.tableHeaderView = [[UIView alloc]initWithFrame:CGRectMake( 0, 0,self.view.frame.size.width, 0.01)];
     }
+    self.rectArr = [NSMutableArray new];
+    for (int i = 0; i<self.param.wTitleArr.count; i++) {
+        CGFloat height = [self canTopSuspension]?sonChildVCHeight :(sonChildVCHeight-self.headHeight);
+        if ([self canTopSuspension]) {
+            if (!self.parentViewController) {
+                height -=PageVCStatusBarHeight;
+            }else{
+                if (self.navigationController) {
+                    if (!self.param.wFromNavi) {
+                        height -= (self.navigationController.navigationBar.translucent?PageVCNavBarHeight:0);
+                    }
+                }else{
+                    height -= PageVCStatusBarHeight;
+                }
+            }
+        }
+        CGRect frame = CGRectMake(i * self.downSc.frame.size.width,
+                                  [self canTopSuspension]?0:sonChildVCY,
+                                  self.downSc.frame.size.width,
+                                  height);
+        [self.rectArr addObject:[NSValue valueWithCGRect:frame]];
+    }
     //全景
     if (self.head_MenuView) {
         self.head_MenuView.frame = CGRectMake(0, self.headView?CGRectGetMinX(self.headView.frame):CGRectGetMinX(self.upSc.frame), self.upSc.frame.size.width, CGRectGetMaxY(self.upSc.frame)-self.upSc.dataView.frame.size.height);
@@ -382,14 +414,22 @@
     float yOffset  = scrollView.contentOffset.y;
     //顶点
     int topOffset = scrollView.contentSize.height - scrollView.frame.size.height;
-    
+    if (!self.parentViewController||!self.navigationController) {
+        topOffset -=PageVCStatusBarHeight;
+    }else{
+         UINavigationController *naPar = (UINavigationController*)self.parentViewController;
+        if (!self.param.wFromNavi) {
+            if (naPar.navigationBar.translucent) {
+                topOffset -=PageVCNavBarHeight;
+            }
+        }
+    }
     //外部传入 修改此属性即可
     if (self.param.wTopOffset) {
         topOffset += self.param.wTopOffset;
     }
     if (yOffset<=0) {
         self.scrolToBottom = YES;
-        
     }else{
         if (yOffset >= topOffset) {
             scrollView.contentOffset = CGPointMake(self.downSc.contentOffset.x, topOffset);
@@ -412,7 +452,6 @@
         }else {
              self.sonCanScroll = NO;
         }
-
     }
     
     CGFloat delta = scrollView.contentOffset.y/topOffset;
@@ -444,53 +483,31 @@
     }
 }
 
-//改变菜单栏高度
-- (void)changeMenuFrame{
-    if (!self.param.wTopChangeHeight) return;
-    if (self.upSc.mainView.frame.size.height == self.param.titleHeight&&!self.sonCanScroll)return;
-    CGFloat offsetHeight = self.param.wTopChangeHeight>0?MIN(self.currentScroll.contentOffset.y, self.param.wTopChangeHeight):MAX (-self.currentScroll.contentOffset.y, self.param.wTopChangeHeight);
-    if (self.upSc.mainView.frame.size.height == (self.param.titleHeight-self.param.wTopChangeHeight)&&self.sonCanScroll&&offsetHeight == self.param.wTopChangeHeight)  return;
-    [self.upSc.mainView page_height:self.param.titleHeight-offsetHeight];
-    [self.upSc.dataView page_y:CGRectGetMaxY(self.upSc.mainView.frame)];
-    [self.upSc.dataView page_height:pageDataFrame.size.height+offsetHeight];
-    if (offsetHeight == 0) {
-        if (self.param.wEventMenuNormalHeight) {
-            self.param.wEventMenuNormalHeight(self.upSc.btnArr);
-        }
-    }else{
-        if (self.param.wEventMenuChangeHeight) {
-            self.param.wEventMenuChangeHeight(self.upSc.btnArr,self.currentScroll.contentOffset.y);
-        }
-    }
-    //设置下划线
-    [self.upSc endAninamal];
-}
 //设置悬浮
 - (void)setUpSuspension:(UIViewController*)newVC index:(NSInteger)index end:(BOOL)end{
     if (![self canTopSuspension]) return;
     if ([newVC conformsToProtocol:@protocol(WMZPageProtocol)]) {
         UIScrollView *view = nil;
-        if ([newVC respondsToSelector:@selector(getMyScrollViews)]) {
-            NSArray *arr = [newVC performSelector:@selector(getMyScrollViews)];
-            [arr enumerateObjectsUsingBlock:^(UIScrollView*  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
-                 [self topSuspensionView:obj index:index*1000+idx+100];
-            }];
-            self.currentScrollArr = arr;
-        }else{
-            if ([newVC respondsToSelector:@selector(getMyTableView)]) {
-                UIScrollView *tmpView = [newVC performSelector:@selector(getMyTableView)];
-                if (tmpView&&[tmpView isKindOfClass:[UIScrollView class]]) {
-                    view = tmpView;
-                }
-            }else if([newVC respondsToSelector:@selector(getMyScrollView)]){
-                UIScrollView *tmpView = [newVC performSelector:@selector(getMyScrollView)];
-                if (tmpView&&[tmpView isKindOfClass:[UIScrollView class]]) {
-                    view = tmpView;
-                }
+       if ([newVC respondsToSelector:@selector(getMyTableView)]) {
+           UIScrollView *tmpView = [newVC performSelector:@selector(getMyTableView)];
+           if (tmpView&&[tmpView isKindOfClass:[UIScrollView class]]) {
+               view = tmpView;
+           }
+       }else if([newVC respondsToSelector:@selector(getMyScrollView)]){
+           UIScrollView *tmpView = [newVC performSelector:@selector(getMyScrollView)];
+           if (tmpView&&[tmpView isKindOfClass:[UIScrollView class]]) {
+               view = tmpView;
+           }
+       }
+        if (view) {
+            self.currentScroll = view;
+            [self.sonChildScrollerViewDic setObject:view forKey:@(index)];
+            if (self.scrolToBottom) {
+                view.contentOffset = CGPointMake(view.contentOffset.x,0);
             }
-            [self topSuspensionView:view index:index];
+            [self.currentScroll pageAddObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
         }
-
+        
         if ([newVC respondsToSelector:@selector(fixFooterView)]) {
             UIView *tmpView = [newVC performSelector:@selector(fixFooterView)];
             [self.sonChildFooterViewDic setObject:view forKey:@(index)];
@@ -513,20 +530,6 @@
     }
 }
 
-- (void)topSuspensionView:(UIScrollView*)view index:(NSInteger)index{
-    if (view&&[view isKindOfClass:[UIScrollView class]]) {
-        self.currentScroll = view;
-        [self.sonChildScrollerViewDic setObject:view forKey:@(index)];
-        if (self.scrolToBottom) {
-            [view setContentOffset:CGPointMake(view.contentOffset.x,0) animated:NO];
-        }
-        if (!self.sonCanScroll&&!self.scrolToBottom) {
-            [view setContentOffset:CGPointZero animated:NO];
-        }
-        [view pageAddObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
-    }
-}
-
 //底部左滑滚动
 - (void)pageWithScrollView:(UIScrollView*)scrollView left:(BOOL)left{
     int offset = (int)scrollView.contentOffset.x%(int)self.upSc.frame.size.width;
@@ -573,22 +576,19 @@
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
     if ([keyPath isEqualToString:@"contentOffset"]) {
         if (![self canTopSuspension]) return;
+        if (self.currentScroll!=object) return;
         if (hadWillDisappeal) return;
-        if (self.currentScroll!=object){
-            self.currentScroll = object;
-        };
         CGPoint newH = [[change objectForKey:@"new"] CGPointValue];
         CGPoint newOld = [[change objectForKey:@"old"] CGPointValue];
         if (newH.y==newOld.y)  return;
         if (!self.sonCanScroll&&!self.scrolToBottom) {
             self.currentScroll.contentOffset = CGPointZero;
-            self.downSc.showsVerticalScrollIndicator = NO;
+            self.downSc.showsVerticalScrollIndicator = YES;
             self.currentScroll.showsVerticalScrollIndicator = NO;
         }else{
             self.downSc.showsVerticalScrollIndicator = NO;
-            self.currentScroll.showsVerticalScrollIndicator = NO;
+            self.currentScroll.showsVerticalScrollIndicator = YES;
         }
-        [self changeMenuFrame];
         if ((int)newH.y<=0) {
             self.canScroll = YES;
             if (self.param.wBounces) {
@@ -619,61 +619,11 @@
     }];
 }
 
-//更新
-- (void)updatePageController{
-    [self.upSc removeFromSuperview];
-    [self.downSc removeFromSuperview];
-    self.downSc = [[WMZPageScroller alloc]initWithFrame:CGRectMake(0, 0, PageVCWidth, PageVCHeight) style:UITableViewStyleGrouped];
-    [self.sonChildScrollerViewDic removeAllObjects];
-    [self.sonChildFooterViewDic removeAllObjects];
-    footerViewIndex = -1;
-    for (UIViewController *VC in self.childViewControllers) {
-        [VC willMoveToParentViewController:nil];
-        [VC.view removeFromSuperview];
-        [VC removeFromParentViewController];
-    }
-    [self setParam];
-    [self UI];
-}
-- (void)updateController{
-    [self.upSc removeFromSuperview];
-    [self.downSc removeFromSuperview];
-    self.downSc = [[WMZPageScroller alloc]initWithFrame:CGRectMake(0, 0, PageVCWidth, PageVCHeight) style:UITableViewStyleGrouped];
-    [self.sonChildScrollerViewDic removeAllObjects];
-    [self.sonChildFooterViewDic removeAllObjects];
-    footerViewIndex = -1;
-    for (UIViewController *VC in self.childViewControllers) {
-        [VC willMoveToParentViewController:nil];
-        [VC.view removeFromSuperview];
-        [VC removeFromParentViewController];
-    }
-    [self setParam];
-    [self UI];
-}
-//更新头部
-- (void)updateHeadView{
-    [self setUpHead];
-}
-
-/*
-*底部手动滚动  传入CGPointZero则为吸顶临界点
-*/
-- (void)downScrollViewSetOffset:(CGPoint)point animated:(BOOL)animat;{
-    if (CGPointEqualToPoint(point, CGPointZero)) {
-        //顶点
-        int topOffset = self.downSc.contentSize.height - self.downSc.frame.size.height;
-        point = CGPointMake(self.downSc.contentOffset.x, topOffset);
-    }
-    [self.downSc setContentOffset:point animated:animat];
-}
-
-//数据
-- (void)showData{
-    [self setParam];
-    [self UI];
-    if (self.naviBarBackGround&&self.param.wNaviColor) {
-        self.naviBarBackGround.backgroundColor = self.param.wNaviColor;
+- (NSMutableArray *)rectArr{
+    if (!_rectArr) {
+        _rectArr = [NSMutableArray new];
     }
+    return _rectArr;
 }
 
 - (NSMutableDictionary *)sonChildScrollerViewDic{
@@ -716,18 +666,12 @@
     return _footViewSizeWidth;
 }
 
-- (void)setParam:(WMZPageParam *)param{
-    _param = param;
-    [self performSelector:@selector(showData) withObject:nil afterDelay:CGFLOAT_MIN];
-}
-
 - (void)didReceiveMemoryWarning{
     [super didReceiveMemoryWarning];
     [self.cache removeAllObjects];
     [self.sonChildScrollerViewDic removeAllObjects];
 }
 
-
 - (void)dealloc{
     [self.sonChildScrollerViewDic enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
         [obj removeAllObserverdKeyPath:self withKey:@"contentOffset"];

+ 6 - 38
Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageParam.h

@@ -15,11 +15,8 @@ NS_ASSUME_NONNULL_BEGIN
 /* =========================================required==============================================*/
 //标题数组 必传
 WMZPagePropStatementAndPropSetFuncStatement(strong, WMZPageParam, NSArray*,              wTitleArr)
-//VC数组 (已废弃)
+//VC数组 必传
 WMZPagePropStatementAndPropSetFuncStatement(strong, WMZPageParam, NSArray*,              wControllers)
-//VC数据 必传 1.1.6新增
-WMZPagePropStatementAndPropSetFuncStatement(copy,  WMZPageParam,  PageViewControllerIndex,              wViewController)
-
 /* =========================================required==============================================*/
 
 /* =========================================special==============================================*/
@@ -58,10 +55,6 @@ WMZPagePropStatementAndPropSetFuncStatement(strong, WMZPageParam, UIColor*,
 WMZPagePropStatementAndPropSetFuncStatement(copy,   WMZPageParam, PageHeadAndMenuBgView,                  wInsertHeadAndMenuBg)
 //给菜单栏加个下划线 default -
 WMZPagePropStatementAndPropSetFuncStatement(copy,   WMZPageParam, PageHeadAndMenuBgView,                  wInsertMenuLine)
-//自定义菜单栏 default -
-WMZPagePropStatementAndPropSetFuncStatement(copy,   WMZPageParam, PageHeadAndMenuBgView,                  wCustomMenuView)
-//自定义菜单右上角红点
-WMZPagePropStatementAndPropSetFuncStatement(copy,   WMZPageParam, PageCustomRedText,                  wCustomRedView)
 //自定义菜单栏上的标题
 WMZPagePropStatementAndPropSetFuncStatement(copy,   WMZPageParam, PageCustomMenuTitle,                  wCustomMenuTitle)
 //自定义选中后菜单栏上的标题
@@ -82,22 +75,20 @@ WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,
 WMZPagePropStatementAndPropSetFuncStatement(strong, WMZPageParam, UIColor*,              wMenuBgColor)
 //菜单按钮的左右间距 default 20
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuCellMargin)
-//菜单按钮的上下间距 default 20 (可根据此属性改变菜单栏的高度)
+//菜单按钮的上下间距 default 20 (可根据此属性改变导航栏的高度)
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuCellPadding)
+//菜单按钮的高度 不设置此属性则高度为文字字体大小+wMenuCellPadding
+//WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuHeight)
 //菜单按钮距离顶部的y值 default 0
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuCellMarginY)
 //菜单的位置 default PageMenuPositionLeft
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, PageMenuPosition,      wMenuPosition)
 //菜单标题左右间距 default 0
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuTitleOffset)
-//菜单标题字体 default 17.0f (已废弃)
+//菜单标题字体 default 15.0f
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuTitleFont)
-//菜单选中标题字体大小 default wMenuTitleFont+1.5  (已废弃)
+//菜单选中标题字体大小 default wMenuTitleFont+1.5
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuTitleSelectFont)
-//菜单标题字体 default [UIFont 15]
-WMZPagePropStatementAndPropSetFuncStatement(strong, WMZPageParam, UIFont*,               wMenuTitleUIFont)
-//菜单标题字体 default [UIFont wMenuTitleFont+1.5]
-WMZPagePropStatementAndPropSetFuncStatement(strong, WMZPageParam, UIFont*,               wMenuTitleSelectUIFont)
 //菜单标题固定宽度 default 文本内容宽度+wMenuCellMargin
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuTitleWidth)
 //菜单标题字体粗体 default 0
@@ -122,8 +113,6 @@ WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuIndicatorRadio)
 //指示器距离按钮的y值(AQY) default 菜单视图的高度-指示器高度-4/wMenuCellPadding
 WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuIndicatorY)
-//背景圆圈的圆角 默认高度的一半
-WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wMenuCircilRadio)
 
 /* =========================================Menu===============================================*/
 
@@ -142,27 +131,6 @@ WMZPagePropStatementAndPropSetFuncStatement(copy,   WMZPageParam, PageChildVCScr
 /* =========================================Events==================================================*/
 
 
-/* =========================================special==================================================*/
-//特殊样式实际demo 实际效果看demo
-WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, PageSpecialType,       wMenuSpecifial)
-/* =========================================special==================================================*/
-
-
-/* =========================================changeMenu===============================================*/
-
-//滑动到顶部改变菜单栏的高度 可传入正负值 改变的高度为当前的titleHeight+传入wTopChangeHeight default 0
-WMZPagePropStatementAndPropSetFuncStatement(assign, WMZPageParam, CGFloat,               wTopChangeHeight)
-
-//改变高度的block 可在此做标题的操作
-WMZPagePropStatementAndPropSetFuncStatement(copy,   WMZPageParam, PageMenuChangeHeight,  wEventMenuChangeHeight)
-
-//恢复原来高度的block 可在此做标题的操作
-WMZPagePropStatementAndPropSetFuncStatement(copy,   WMZPageParam, PageMenuNormalHeight,  wEventMenuNormalHeight)
-
-
-/* =========================================changeMenu===============================================*/
-
-
 /* =========================================开放的属性==================================================*/
 //标题高度
 @property(nonatomic,assign)CGFloat titleHeight;

+ 3 - 14
Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageParam.m

@@ -35,16 +35,15 @@ WMZPagePropSetFuncImplementation(WMZPageParam, UIColor*,               wMenuIndi
 WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuIndicatorWidth)
 WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuIndicatorHeight)
 WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuIndicatorRadio)
+//WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuHeight)
 WMZPagePropSetFuncImplementation(WMZPageParam, NSString*,              wMenuIndicatorImage)
 WMZPagePropSetFuncImplementation(WMZPageParam, PageBtnPosition,        wMenuImagePosition)
-WMZPagePropSetFuncImplementation(WMZPageParam, PageSpecialType,        wMenuSpecifial)
 WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuImageMargin)
 WMZPagePropSetFuncImplementation(WMZPageParam, id,                     wMenuFixRightData)
 WMZPagePropSetFuncImplementation(WMZPageParam, UIColor*,               wMenuBgColor)
 WMZPagePropSetFuncImplementation(WMZPageParam, UIColor*,               wNaviColor)
 WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuFixWidth)
 WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuCellMarginY)
-WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wTopChangeHeight)
 WMZPagePropSetFuncImplementation(WMZPageParam, PageHeadViewBlock,      wMenuHeadView)
 WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuTitleWeight)
 WMZPagePropSetFuncImplementation(WMZPageParam, BOOL,                   wTopSuspension)
@@ -54,8 +53,6 @@ WMZPagePropSetFuncImplementation(WMZPageParam, BOOL,                   wScrollCa
 WMZPagePropSetFuncImplementation(WMZPageParam, BOOL,                   wBounces)
 WMZPagePropSetFuncImplementation(WMZPageParam, BOOL,                   wNaviAlphaAll)
 WMZPagePropSetFuncImplementation(WMZPageParam, BOOL,                   wFixFirst)
-WMZPagePropSetFuncImplementation(WMZPageParam, PageHeadAndMenuBgView,  wCustomMenuView)
-WMZPagePropSetFuncImplementation(WMZPageParam, PageCustomRedText,      wCustomRedView)
 WMZPagePropSetFuncImplementation(WMZPageParam, PageHeadAndMenuBgView,  wInsertHeadAndMenuBg)
 WMZPagePropSetFuncImplementation(WMZPageParam, PageHeadAndMenuBgView,  wInsertMenuLine)
 WMZPagePropSetFuncImplementation(WMZPageParam, PageCustomMenuTitle,    wCustomMenuTitle)
@@ -65,27 +62,19 @@ WMZPagePropSetFuncImplementation(WMZPageParam, PageClickBlock,         wEventCli
 WMZPagePropSetFuncImplementation(WMZPageParam, PageVCChangeBlock,      wEventBeganTransferController)
 WMZPagePropSetFuncImplementation(WMZPageParam, PageVCChangeBlock,      wEventEndTransferController)
 WMZPagePropSetFuncImplementation(WMZPageParam, PageChildVCScroll,      wEventChildVCDidSroll)
-WMZPagePropSetFuncImplementation(WMZPageParam, PageMenuChangeHeight,   wEventMenuChangeHeight)
-WMZPagePropSetFuncImplementation(WMZPageParam, PageMenuNormalHeight,   wEventMenuNormalHeight)
-WMZPagePropSetFuncImplementation(WMZPageParam, PageViewControllerIndex,              wViewController)
 WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuIndicatorY)
-WMZPagePropSetFuncImplementation(WMZPageParam, CGFloat,                wMenuCircilRadio)
-WMZPagePropSetFuncImplementation(WMZPageParam, UIFont*,                wMenuTitleUIFont)
-WMZPagePropSetFuncImplementation(WMZPageParam, UIFont*,                wMenuTitleSelectUIFont)
 - (instancetype)init{
     if (self = [super init]) {
         _wMenuAnimal = PageTitleMenuNone;
-        _wMenuTitleColor = PageColor(0x333333);
+        _wMenuTitleColor = PageColor(0x666666);
         _wMenuTitleSelectColor = PageColor(0xE5193E);
-        _wMenuIndicatorColor = PageColor(0xE5193E);
+        _wMenuIndicatorColor = PageColor(0x000000);
         _wMenuBgColor = PageColor(0xffffff);
         _wMenuIndicatorHeight = 3.0f;
         _wMenuWidth = PageVCWidth;
         _wMenuAnimalTitleBig = YES;
         _wMenuAnimalTitleGradient = YES;
         _wMenuTitleFont = 17.0f;
-        _wMenuTitleUIFont = [UIFont systemFontOfSize:17.0f];
-        _wMenuTitleSelectUIFont = [UIFont systemFontOfSize:18.5f];
         _wMenuImagePosition = PageBtnPositionTop;
         _wMenuImageMargin = 5.0f;
         _wMenuCellMargin = 30.0f;

+ 0 - 4
Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageProtocol.h

@@ -23,10 +23,6 @@ NS_ASSUME_NONNULL_BEGIN
  */
 - (UIScrollView*)getMyScrollView;
 
-/*
- *悬浮 数组 可滚动视图的数组 适用底部多个tableview的情况
- */
-- (NSArray*)getMyScrollViews;
 
 /*
  *子控制器需要固定的尾部视图

Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageScroller.h → smartRhino/Project/Other/Third/WMZPageController/Controller/WMZPageScroller.h


Pods/WMZPageController/WMZPageController/WMZPageController/Controller/WMZPageScroller.m → smartRhino/Project/Other/Third/WMZPageController/Controller/WMZPageScroller.m


Pods/WMZPageController/WMZPageController/WMZPageController/Navi/WMZPageLoopView.h → smartRhino/Project/Other/Third/WMZPageController/Navi/WMZPageLoopView.h


+ 51 - 98
Pods/WMZPageController/WMZPageController/WMZPageController/Navi/WMZPageLoopView.m

@@ -8,7 +8,6 @@
 
 #import "WMZPageLoopView.h"
 #import "WMZPageController.h"
-#define pageScale 0.9
 @interface WMZPageLoopView()<UIScrollViewDelegate>
 {
     WMZPageNaviBtn *_btnLeft ;
@@ -36,6 +35,7 @@
 }
 
 - (void)setUp{
+
     //标题菜单
     NSDictionary *dic = @{
         @(PageMenuPositionLeft):[NSValue valueWithCGRect:CGRectMake(0, 0 , self.param.wMenuWidth,0)],
@@ -54,7 +54,7 @@
     self.dataView.scrollEnabled = self.param.wScrollCanTransfer;
     self.dataView.contentSize = CGSizeMake(self.param.wTitleArr.count*PageVCWidth,0);
     self.dataView.delegate = self;
-    
+
     self.currentTitleIndex = -1;
     NSMutableArray *heightArr = [NSMutableArray new];
     WMZPageNaviBtn *temp = nil;
@@ -98,7 +98,6 @@
     if (!self.param.wMenuIndicatorY) {
         self.param.wMenuIndicatorY = self.param.wMenuCellPadding/4;
     }
-    
 }
 
 //初始化指示器
@@ -121,13 +120,13 @@
         self.lineView.layer.cornerRadius = self.param.wMenuIndicatorRadio;
         self.lineView.layer.masksToBounds = YES;
     }
+       
 }
 
 //设置右边固定标题
 - (void)setUpFixRightBtn:(WMZPageNaviBtn*)temp{
     if (self.param.wMenuFixRightData) {
         WMZPageNaviBtn *fixBtn = [WMZPageNaviBtn buttonWithType:UIButtonTypeCustom];
-        CGFloat menuFixWidth = self.param.wMenuFixWidth;
         id text = [self getTitleData:self.param.wMenuFixRightData key:@"name"];
         id image = [self getTitleData:self.param.wMenuFixRightData key:@"image"];
         id selectImage = [self getTitleData:self.param.wMenuFixRightData key:@"selectImage"];
@@ -141,17 +140,15 @@
             [fixBtn setImage:[UIImage imageNamed:selectImage] forState:UIControlStateSelected];
         }
         if (text && image) {
-            menuFixWidth+=30;
+            [fixBtn TagSetImagePosition:self.param.wMenuImagePosition spacing:self.param.wMenuImageMargin];
+            self.param.wMenuFixWidth+=30;
         }
-        fixBtn.titleLabel.font = self.param.wMenuTitleUIFont;
+        fixBtn.titleLabel.font = [UIFont systemFontOfSize:self.param.wMenuTitleFont weight:self.param.wMenuTitleWeight];
         [fixBtn setTitleColor:self.param.wMenuTitleColor forState:UIControlStateNormal];
-        fixBtn.frame = CGRectMake(CGRectGetWidth(self.frame)-menuFixWidth, temp.frame.origin.y, menuFixWidth, temp.frame.size.height);
+        fixBtn.frame = CGRectMake(CGRectGetWidth(self.frame)-self.param.wMenuFixWidth, temp.frame.origin.y, self.param.wMenuFixWidth, temp.frame.size.height);
         fixBtn.tag = 10086;
         [self addSubview:fixBtn];
         [self bringSubviewToFront:fixBtn];
-        if (self.hasImage) {
-            [fixBtn TagSetImagePosition:self.param.wMenuImagePosition spacing:self.param.wMenuImageMargin];
-        }
         if (self.param.wMenuFixShadow) {
            [fixBtn viewShadowPathWithColor:PageColor(0x333333) shadowOpacity:0.8 shadowRadius:3 shadowPathType:PageShadowPathLeft shadowPathWidth:2];
             fixBtn.alpha = 0.9;
@@ -159,10 +156,8 @@
         [fixBtn  setAdjustsImageWhenHighlighted:NO];
         [fixBtn addTarget:self action:@selector(fixTap:) forControlEvents:UIControlEventTouchUpInside];
         self.fixBtn = fixBtn;
-        self.mainView.contentSize = CGSizeMake(self.mainView.contentSize.width+menuFixWidth, 0);
+        self.mainView.contentSize = CGSizeMake(self.mainView.contentSize.width+self.param.wMenuFixWidth, 0);
         [self.btnArr addObject:fixBtn];
-        
-         self.mainView.scrollEnabled = !(CGRectGetMaxX(temp.frame) <= (self.mainView.frame.size.width-menuFixWidth));
     }
 }
 
@@ -176,7 +171,6 @@
    id name = [self getTitleData:self.param.wTitleArr[i] key:@"name"];
    if (name) {
        [btn setTitle:name forState:UIControlStateNormal];
-       btn.normalText = name;
    }
    CGSize size =  btn.maxSize;
    //设置图片
@@ -184,8 +178,9 @@
      id selectImage = [self getTitleData:self.param.wTitleArr[i] key:@"selectImage"];
      if (image) {
         [btn setImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
-         btn.imageView.contentMode = UIViewContentModeScaleAspectFill;
+         btn.imageView.contentMode = UIViewContentModeScaleAspectFit;
          if (name) {
+            [btn TagSetImagePosition:self.param.wMenuImagePosition spacing:self.param.wMenuImageMargin];
             self.hasImage = YES;
          }
      }
@@ -213,7 +208,7 @@
         }
      }
 
-     btn.titleLabel.font = self.param.wMenuTitleUIFont;
+     btn.titleLabel.font = [UIFont systemFontOfSize:self.param.wMenuTitleFont weight:self.param.wMenuTitleWeight];
 
      id selectColor = [self getTitleData:self.param.wTitleArr[i] key:@"titleSelectColor"];
      [btn setTitleColor:selectColor?:self.param.wMenuTitleSelectColor forState:UIControlStateSelected];
@@ -223,15 +218,9 @@
      [heightArr addObject:@(btn.frame.size.height+self.param.wMenuCellMarginY)];
      [self.mainView addSubview:btn];
      [self.btnArr addObject:btn];
-    
-     if (self.hasImage) {
-         [btn TagSetImagePosition:self.param.wMenuImagePosition spacing:self.param.wMenuImageMargin];
-     }
-    
      //设置右上角红点
-     NSString *badge = [self getTitleData:self.param.wTitleArr[i] key:@"badge"];
-     if (badge) {
-        [btn showBadgeWithTopMagin:self.param.wTitleArr[i]];
+     if ([self getTitleData:self.param.wTitleArr[i] key:@"badge"]) {
+        [btn showBadgeWithTopMagin:0];
      }
        
      if (self.param.wMenuPosition != PageMenuPositionNavi) {
@@ -258,21 +247,16 @@
       }
       //重新设置布局
       if (i == (self.param.wTitleArr.count -1)) {
-          if (CGRectGetMaxX(btn.frame) <= self.mainView.frame.size.width) {
+          if (CGRectGetMaxX(btn.frame) <= self.frame.size.width) {
             self.mainView.scrollEnabled = NO;
           }else{
             self.mainView.scrollEnabled = YES;
           }
           float max =[[heightArr valueForKeyPath:@"@max.floatValue"] floatValue];
-          if (pageIsIphoneX&&self.param.wMenuPosition == PageMenuPositionBottom) {
-              max+=15;
-          }
+          
           [self.mainView page_height:max];
           self.mainView.contentSize = CGSizeMake(CGRectGetMaxX(btn.frame), 0);
       }
-     if (self.param.wCustomMenuView) {
-         self.param.wCustomMenuView(self.mainView);
-     }
 }
 
 //解析字典
@@ -286,7 +270,7 @@
 }
 
 //点击
-- (void)tap:(WMZPageNaviBtn*)btn{
+- (void)tap:(UIButton*)btn{
     if (!self.first) {
         if (self.param.wEventClick) {
             self.param.wEventClick(btn, btn.tag);
@@ -310,10 +294,9 @@
              [self.loopDelegate setUpSuspension:newVC index:index end:YES];
          }
         self.first = NO;
-        if (self.param.wMenuAnimalTitleBig) {
-            btn.transform = CGAffineTransformMakeScale(1 + (1-pageScale), 1 + (1-pageScale));
-        }
+
     }else{
+
         [self beginAppearanceTransitionWithIndex:index withOldIndex:self.currentTitleIndex];
         self.lastPageIndex = self.currentTitleIndex;
         self.nextPageIndex = index;
@@ -355,7 +338,7 @@
             if (backgroundColor) {
                 //渐变色
                 if ([backgroundColor isKindOfClass:[NSArray class]]) {
-                    if ([backgroundColor count]==2) {
+                    if ([(NSArray *)backgroundColor count] == 2) {
                         tempBackgroundColor = [UIColor bm_colorGradientChangeWithSize:self.mainView.frame.size direction:PageGradientChangeDirectionLevel startColor:backgroundColor[0] endColor:backgroundColor[1]];
                         fixBackgroundColor = backgroundColor[1];
                     }else{
@@ -368,21 +351,19 @@
                     fixBackgroundColor = tempBackgroundColor;
                 }
             }
-            if (!self.param.wInsertHeadAndMenuBg) {
-                self.mainView.backgroundColor = tempBackgroundColor;
-            }
+            self.backgroundColor = tempBackgroundColor;
             if (!self.param.wMenuIndicatorImage) {
                 self.lineView.backgroundColor = indicatorColor?:self.param.wMenuIndicatorColor;
             }
             self.fixBtn.backgroundColor = fixBackgroundColor;
             [self.fixBtn setTitleColor:titleColor?:self.param.wMenuTitleColor forState:UIControlStateNormal];
             if (self.param.wMenuAnimalTitleBig) {
-                temp.titleLabel.font = self.param.wMenuTitleSelectUIFont;
+                temp.titleLabel.font = [UIFont systemFontOfSize:self.param.wMenuTitleSelectFont weight:self.param.wMenuTitleWeight];
             }
         }else{
             [temp setTitleColor:titleColor?:self.param.wMenuTitleColor forState:UIControlStateNormal];
             if (self.param.wMenuAnimalTitleBig) {
-               temp.titleLabel.font = self.param.wMenuTitleUIFont;
+               temp.titleLabel.font = [UIFont systemFontOfSize:self.param.wMenuTitleFont weight:self.param.wMenuTitleWeight];
             }
         }
     }
@@ -400,15 +381,17 @@
     }else{
         point = CGPointMake(CGRectGetMaxX(indexFrame) -  centerX-  indexFrame.size.width/2, 0);
     }
+    
     if ([self.mainView isScrollEnabled]) {
-        [self.mainView setContentOffset:point animated:self.first?NO:YES];
+        [UIView animateWithDuration:0.25f animations:^(void){
+           [self.mainView setContentOffset:point];
+        }];
     }
-    
     CGFloat dataWidth = btn.titleLabel.frame.size.width?:btn.maxSize.width;
     //改变指示器frame
     CGRect lineRect = indexFrame;
     lineRect.size.height = self.param.wMenuIndicatorHeight?:PageK1px;
-    lineRect.origin.y = [self getMainHeight] - lineRect.size.height/2 - self.param.wMenuIndicatorY;
+    lineRect.origin.y = self.mainView.frame.size.height - lineRect.size.height/2 - self.param.wMenuIndicatorY;
     lineRect.size.width =  self.param.wMenuIndicatorWidth?:(dataWidth+10);
     lineRect.origin.x =  (indexFrame.size.width - lineRect.size.width)/2 + indexFrame.origin.x;
     
@@ -418,6 +401,12 @@
         self.lineView.layer.cornerRadius = lineRect.size.height/2;
     }
     
+    if (self.param.wMenuAnimal == PageTitleMenuPDD) {
+        lineRect.origin.y = self.frame.size.height - lineRect.size.height;
+        lineRect.size.width = self.param.wMenuIndicatorWidth?:dataWidth;
+        lineRect.origin.x =  (indexFrame.size.width - lineRect.size.width)/2 + indexFrame.origin.x;
+    }
+    
     if (self.param.wMenuAnimal == PageTitleMenuCircle) {
         lineRect = indexFrame;
         lineRect.origin.x =  lineRect.origin.x - 2;
@@ -425,10 +414,10 @@
         lineRect.size.width =  lineRect.size.width + 4;
         lineRect.size.height =  lineRect.size.height - 8 ;
         self.lineView.layer.masksToBounds = YES;
-        self.lineView.layer.cornerRadius =  self.param.wMenuCircilRadio?:(lineRect.size.height/2);
+        self.lineView.layer.cornerRadius = lineRect.size.height/2;
     }
     
-    [UIView animateWithDuration:0.01 animations:^{
+    [UIView animateWithDuration:0.1 animations:^{
         self.lineView.frame = lineRect;
     } completion:^(BOOL finished) {
         
@@ -442,17 +431,8 @@
     if (self.param.wCustomMenuSelectTitle) {
         self.param.wCustomMenuSelectTitle(self.btnArr);
     }
-    
 }
 
-- (CGFloat)getMainHeight{
-    if ((pageIsIphoneX&&self.param.wMenuPosition == PageMenuPositionBottom)) {
-        return (self.mainView.frame.size.height - 15);
-    }else if (self.param.wMenuPosition == PageMenuPositionNavi) {
-        return 44;
-    }
-    return self.mainView.frame.size.height;
-}
 
 #pragma -mark- scrollerDeleagte
 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
@@ -556,7 +536,7 @@
 }
 
 - (UIViewController*)getVCWithIndex:(NSInteger)index{
-    if (index < 0|| index >= self.param.wTitleArr.count) {
+    if (index < 0|| index >= self.param.wControllers.count) {
         return nil;
     }
     
@@ -564,14 +544,7 @@
         return [[self findBelongViewControllerForView:self].cache objectForKey:@(index)];
     }
     
-    if (self.param.wViewController) {
-       return self.param.wViewController(index);
-    }else{
-        if (self.param.wControllers) {
-            return self.param.wControllers[index];
-        }
-    }
-    return nil;
+    return self.param.wControllers[index];
 }
 
 
@@ -596,9 +569,7 @@
 - (void)addChildVC:(NSInteger)index VC:(UIViewController*)newVC{
     if (![[self findBelongViewControllerForView:self].childViewControllers containsObject:newVC]) {
         [[self findBelongViewControllerForView:self] addChildViewController:newVC];
-        CGRect frame = CGRectMake(index * self.dataView.frame.size.width,0,self.dataView.frame.size.width,
-                                  self.dataView.frame.size.height);
-        newVC.view.frame = frame;
+        newVC.view.frame = [[self findBelongViewControllerForView:self].rectArr[index] CGRectValue];
         [self.dataView addSubview:newVC.view];
         [newVC didMoveToParentViewController:[self findBelongViewControllerForView:self]];
         [[self findBelongViewControllerForView:self].cache setObject:newVC forKey:@(index)];
@@ -678,6 +649,7 @@
     int num = [arr[0] intValue];
     CGFloat scale = content_X - num;
     int selectIndex = contentOffsetX/sWidth;
+    
     // 拖拽
     if (contentOffsetX <= lastContentOffset ){
         selectIndex = selectIndex+1;
@@ -690,41 +662,28 @@
     }
     
     //跟随滑动
-    if (self.param.wMenuAnimal == PageTitleMenuAiQY ||
-        self.param.wMenuAnimal == PageTitleMenuYouKu) {
+    if (self.param.wMenuAnimal == PageTitleMenuAiQY || self.param.wMenuAnimal == PageTitleMenuYouKu) {
         CGRect rect = self.lineView.frame;
         if (scale < 0.5 ) {
-             rect.origin.x = _btnLeft.center.x -self.param.wMenuIndicatorWidth/2;
-             rect.size.width = self.param.wMenuIndicatorWidth + ( _btnRight.center.x-_btnLeft.center.x) * scale*2;
-         }else if(scale >= 0.5 ){
-             rect.origin.x = _btnLeft.center.x +  2*(scale-0.5)*(_btnRight.center.x - _btnLeft.center.x)-self.param.wMenuIndicatorWidth/2;
-             rect.size.width =  self.param.wMenuIndicatorWidth+(_btnRight.center.x-_btnLeft.center.x) * (1-scale)*2;
-         }
-        
+            rect.size.width = self.param.wMenuIndicatorWidth + ( _btnRight.center.x-_btnLeft.center.x) * scale*2;
+            rect.origin.x = _btnLeft.center.x -self.param.wMenuIndicatorWidth/2;
+        }else if(scale >= 0.5 ){
+            rect.size.width =  self.param.wMenuIndicatorWidth+(_btnRight.center.x-_btnLeft.center.x) * (1-scale)*2;
+            rect.origin.x = _btnLeft.center.x +  2*(scale-0.5)*(_btnRight.center.x - _btnLeft.center.x)-self.param.wMenuIndicatorWidth/2;
+        }
         if (rect.size.height!= (self.param.wMenuIndicatorHeight?:PageK1px)) {
             rect.size.height = self.param.wMenuIndicatorHeight?:PageK1px;
         }
-        if (rect.origin.y != ([self getMainHeight]-self.param.wMenuIndicatorY-rect.size.height/2)) {
-            rect.origin.y = [self getMainHeight]-self.param.wMenuIndicatorY-rect.size.height/2;
+        if (rect.origin.y != (self.mainView.frame.size.height-self.param.wMenuIndicatorY-rect.size.height/2)) {
+            rect.origin.y = self.mainView.frame.size.height-self.param.wMenuIndicatorY-rect.size.height/2;
         }
         self.lineView.frame = rect;
     }
     
-    
-    if (self.param.wMenuAnimal == PageTitleMenuPDD) {
-        CGRect rect = self.lineView.frame;
-        rect.size.width = self.param.wMenuIndicatorWidth;
-        self.lineView.frame = rect;
-        CGPoint center = self.lineView.center;
-        center.x = _btnLeft.center.x +  (scale)*(_btnRight.center.x - _btnLeft.center.x);
-        self.lineView.center = center;
-    }
-    
-    
     //变大
     if (self.param.wMenuAnimalTitleBig) {
-        _btnLeft.transform = CGAffineTransformMakeScale(1+(1-pageScale)*(1-scale), 1+(1-pageScale)*(1-scale));
-        _btnRight.transform = CGAffineTransformMakeScale(1+(1-pageScale)*scale, 1+(1-pageScale)*scale);
+        _btnLeft.transform = CGAffineTransformMakeScale(1+(1-0.9)*(1-scale), 1+(1-0.9)*(1-scale));
+        _btnRight.transform = CGAffineTransformMakeScale(1+(1-0.9)*scale, 1+(1-0.9)*scale);
     }
     
     //渐变
@@ -746,15 +705,9 @@
     if (self.param.wMenuAnimal == PageTitleMenuYouKu) {
         CGRect rect = self.lineView.frame;
         rect.size.height = rect.size.width;
-        rect.origin.y = [self getMainHeight]-rect.size.height/2-self.param.wMenuCellPadding/4;
+        rect.origin.y = self.mainView.frame.size.height-rect.size.height/2-self.param.wMenuCellPadding/4;
         self.lineView.frame = rect;
         self.lineView.layer.cornerRadius = rect.size.height/2;
-    }else if (self.param.wMenuAnimal == PageTitleMenuAiQY||self.param.wMenuAnimal == PageTitleMenuPDD){
-        CGRect rect = self.lineView.frame;
-        if (rect.origin.y != ([self getMainHeight]-self.param.wMenuIndicatorY-rect.size.height/2)) {
-            rect.origin.y = [self getMainHeight]-self.param.wMenuIndicatorY-rect.size.height/2;
-        }
-        self.lineView.frame = rect;
     }
 }
 

+ 2 - 15
Pods/WMZPageController/WMZPageController/WMZPageController/Navi/WMZPageNaviBtn.h

@@ -17,11 +17,9 @@ NS_ASSUME_NONNULL_BEGIN
 //处于动画状态
 @property(nonatomic,assign)BOOL animal;
 //有红点提示
-@property(nonatomic,assign)NSInteger hasBadge;
+@property(nonatomic,assign)BOOL hasBadge;
 //富文本
 @property(nonatomic,assign)BOOL attributed;
-//初始文本内容
-@property(nonatomic,copy)NSString* normalText;
 //RGB值
 @property (nonatomic, assign) CGFloat selectedColorR;
 @property (nonatomic, assign) CGFloat selectedColorG;
@@ -30,17 +28,6 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, assign) CGFloat unSelectedColorG;
 @property (nonatomic, assign) CGFloat unSelectedColorB;
 
-//富文本图片
-@property(nonatomic,strong)NSAttributedString* attributedImage;
-//富文本选中图片
-@property(nonatomic,strong)NSAttributedString* attributedSelectImage;
-
-- (NSAttributedString*)setImageWithStr:(NSString*)str
-                                  font:(UIFont*)font
-                         textAlignment:(NSTextAlignment)textAlignment
-                             textColor:(nullable UIColor*)textColor
-                       backgroundColor:(nullable UIColor*)backgroundColor
-                          cornerRadius:(CGFloat)cornerRadius;
 //设置图文位置
 - (void)TagSetImagePosition:(PageBtnPosition)postion spacing:(CGFloat)spacing;
 //设置单边阴影
@@ -57,7 +44,7 @@ NS_ASSUME_NONNULL_BEGIN
  *  显示小红点
  *  @magin 小红点距离控件上方距离
  */
-- (void)showBadgeWithTopMagin:(NSDictionary*)info;
+- (void)showBadgeWithTopMagin:(CGFloat)magin;
 
 /**
  *  隐藏小红点

+ 45 - 103
Pods/WMZPageController/WMZPageController/WMZPageController/Navi/WMZPageNaviBtn.m

@@ -6,15 +6,13 @@
 //  Created by wmz on 2019/9/22.
 //  Copyright © 2019 wmz. All rights reserved.
 //
+
 #import "WMZPageNaviBtn.h"
 @interface WMZPageNaviBtn()
 @property(nonatomic,assign)CGSize minSize;
 @end
 @implementation WMZPageNaviBtn
 
-- (void)setHighlighted:(BOOL)highlighted{
-    
-}
 
 -(void)setRadii:(CGSize)size RoundingCorners:(UIRectCorner)rectCorner {
     //设置只有一半圆角
@@ -69,40 +67,49 @@
 
 
 - (void)TagSetImagePosition:(PageBtnPosition)postion spacing:(CGFloat)spacing {
-     CGFloat imgWidth = self.imageView.bounds.size.width;
-     CGFloat imgHeight = self.imageView.bounds.size.height;
-     CGFloat labWidth = self.titleLabel.bounds.size.width;
-     CGFloat labHeight = self.titleLabel.bounds.size.height;
-     CGSize textSize = [self.titleLabel.text sizeWithAttributes:@{NSFontAttributeName:self.titleLabel.font}];
-     CGSize frameSize = CGSizeMake(ceilf(textSize.width), ceilf(textSize.height));
-     if (labWidth < frameSize.width) {
-         labWidth = frameSize.width;
-     }
-     CGFloat kMargin = spacing/2.0;
-     switch (postion) {
-         case PageBtnPositionLeft:
-             [self setImageEdgeInsets:UIEdgeInsetsMake(0, -kMargin, 0, kMargin)];
-             [self setTitleEdgeInsets:UIEdgeInsetsMake(0, kMargin, 0, -kMargin)];
-             break;
-             
-         case PageBtnPositionRight:
-            [self setImageEdgeInsets:UIEdgeInsetsMake(0, labWidth + kMargin, 0, -labWidth - kMargin)];
-             [self setTitleEdgeInsets:UIEdgeInsetsMake(0, -imgWidth - kMargin, 0, imgWidth + kMargin)];
-             break;
-             
-         case PageBtnPositionTop:
-             [self setImageEdgeInsets:UIEdgeInsetsMake(0,0, labHeight + spacing, -labWidth)];
-             [self setTitleEdgeInsets:UIEdgeInsetsMake(imgHeight + spacing, -imgWidth, 0, 0)];
-             break;
-             
-         case PageBtnPositionBottom:
-             [self setImageEdgeInsets:UIEdgeInsetsMake(labHeight + spacing,0, 0, -labWidth)];
-             [self setTitleEdgeInsets:UIEdgeInsetsMake(0, -imgWidth, imgHeight + spacing, 0)];
-             break;
-             
-         default:
-             break;
-     }
+    CGFloat imgW = self.imageView.image.size.width;
+    CGFloat imgH = self.imageView.image.size.height;
+    CGSize trueSize = CGSizeMake(self.maxSize.width, self.maxSize.height);
+    
+    CGFloat trueLabW = trueSize.width;
+    CGFloat trueLabH = trueSize.height;
+//    if (self.max) {
+//        trueLabW -= (imgW+spacing+spacing);
+//    }
+    //image中心移动的x距离
+    CGFloat imageOffsetX = trueLabW/2 ;
+    //image中心移动的y距离
+    CGFloat imageOffsetY = trueLabH/2 + spacing/2;
+    //label左边缘移动的x距离
+    CGFloat labelOffsetX1 = imgW/2 - trueLabW/2 + trueLabW/2;
+    //label右边缘移动的x距离
+    CGFloat labelOffsetX2 = imgW/2 + trueLabW/2 - trueLabW/2;
+    //label中心移动的y距离
+    CGFloat labelOffsetY = imgH/2 + spacing/2;
+    switch (postion) {
+        case PageBtnPositionLeft:
+            self.imageEdgeInsets = UIEdgeInsetsMake(0, -spacing/2, 0, spacing/2);
+            self.titleEdgeInsets = UIEdgeInsetsMake(0, spacing/2, 0, -spacing/2);
+            break;
+            
+        case PageBtnPositionRight:
+            self.imageEdgeInsets = UIEdgeInsetsMake(0, trueLabW + spacing/2, 0, -(trueLabW + spacing/2));
+            self.titleEdgeInsets = UIEdgeInsetsMake(0, -(imgW + spacing/2), 0, imgW + spacing/2);
+            break;
+            
+        case PageBtnPositionTop:
+            self.imageEdgeInsets = UIEdgeInsetsMake(-imageOffsetY, imageOffsetX, imageOffsetY, -imageOffsetX);
+            self.titleEdgeInsets = UIEdgeInsetsMake(labelOffsetY, -labelOffsetX1, -labelOffsetY, labelOffsetX2);
+            break;
+            
+        case PageBtnPositionBottom:
+            self.imageEdgeInsets = UIEdgeInsetsMake(imageOffsetY, imageOffsetX, -imageOffsetY, -imageOffsetX);
+            self.titleEdgeInsets = UIEdgeInsetsMake(-labelOffsetY, -labelOffsetX1, labelOffsetY, labelOffsetX2);
+            break;
+            
+        default:
+            break;
+    }
 }
 
 - (void)viewShadowPathWithColor:(UIColor *)shadowColor shadowOpacity:(CGFloat)shadowOpacity shadowRadius:(CGFloat)shadowRadius shadowPathType:(PageShadowPathType)shadowPathType shadowPathWidth:(CGFloat)shadowPathWidth{
@@ -155,74 +162,13 @@
     }
     
 }
-
-- (void)setAttributedTitle:(NSAttributedString *)title forState:(UIControlState)state{
-    [super setAttributedTitle:title forState:state];
-    UIColor *color = [title attribute:NSForegroundColorAttributeName atIndex:0 effectiveRange:nil];
-    CGFloat red = 0.0;
-    CGFloat green = 0.0;
-    CGFloat blue = 0.0;
-    CGFloat alpha = 0.0;
-    [color getRed:&red green:&green blue:&blue alpha:&alpha];
-    if (state == UIControlStateNormal) {
-        self.unSelectedColorR = red;
-        self.unSelectedColorB = blue;
-        self.unSelectedColorG = green;
-    }else{
-        self.selectedColorR = red;
-        self.selectedColorB = blue;
-        self.selectedColorG = green;
-    }
-}
-- (NSAttributedString*)setImageWithStr:(NSString*)str
-                                  font:(UIFont*)font
-                         textAlignment:(NSTextAlignment)textAlignment textColor:(nullable UIColor*)textColor
-                       backgroundColor:(nullable UIColor*)backgroundColor
-                          cornerRadius:(CGFloat)cornerRadius{
-    CGFloat aaW1 = [self boundingRectWithSize:str Font:font Size:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)].width+20;
-    UILabel *aaL1 = [UILabel new];
-    aaL1.frame = CGRectMake(0, 0, aaW1, 18);
-    aaL1.text = str;
-    aaL1.font = font;
-    aaL1.textAlignment = textAlignment;
-    if (textColor) {
-       aaL1.textColor = textColor;
-    }
-    if (cornerRadius) {
-        if (backgroundColor) {
-            aaL1.layer.backgroundColor = backgroundColor.CGColor;
-            aaL1.layer.cornerRadius = cornerRadius;
-        }
-    }else{
-        if (backgroundColor) {
-            aaL1.backgroundColor = backgroundColor;
-        }
-    }
-    UIImage *image1 = [self imageWithUIView:aaL1];
-    NSTextAttachment *attach1 = [[NSTextAttachment alloc] init];
-    attach1.bounds = CGRectMake(0, 10, aaW1, 20);
-    attach1.image = image1;
-    NSAttributedString * imageStr1= [NSAttributedString attributedStringWithAttachment:attach1];
-    return imageStr1;
-}
-
-//view转成image
-- (UIImage*) imageWithUIView:(UIView*) view{
-    UIGraphicsBeginImageContext(view.bounds.size);
-    CGContextRef ctx = UIGraphicsGetCurrentContext();
-    [view.layer renderInContext:ctx];
-    UIImage* tImage = UIGraphicsGetImageFromCurrentImageContext();
-    UIGraphicsEndImageContext();
-    return tImage;
-}
-
 @end
 
 
 static char badgeViewKey;
 static NSInteger const pointWidth = 7; //小红点的宽高
 @implementation WMZPageNaviBtn (HMBadge)
-- (void)showBadgeWithTopMagin:(NSDictionary*)info
+- (void)showBadgeWithTopMagin:(CGFloat)magin
 {
     if (self.badge == nil) {
         CGRect frame = CGRectMake(self.maxSize.width+self.param.wMenuCellMargin/2, self.param.wMenuCellPadding/2-pointWidth, pointWidth, pointWidth);
@@ -230,12 +176,8 @@ static NSInteger const pointWidth = 7; //小红点的宽高
         self.badge.backgroundColor = PageColor(0xff5153);
         self.badge.layer.cornerRadius = pointWidth / 2;
         self.badge.layer.masksToBounds = YES;
-        self.badge.textAlignment = NSTextAlignmentCenter;
         [self addSubview:self.badge];
         [self bringSubviewToFront:self.badge];
-        if (self.param.wCustomRedView) {
-            self.param.wCustomRedView(self.badge,info);
-        }
     }
 }
 

Pods/WMZPageController/WMZPageController/WMZPageController/PageController.bundle/page_back.png → smartRhino/Project/Other/Third/WMZPageController/PageController.bundle/page_back.png


+ 2 - 2
smartRhino/Project/VCModel/Home/VC/IndexViewController.m

@@ -242,7 +242,7 @@
     //等分
     .wMenuCellPaddingSet(45 - 21.5)
     .wMenuCellMarginSet(15)
-    .wTopOffsetSet(- NAVH - 52)
+    .wTopOffsetSet(52 + NAVH)
     .wFromNaviSet(YES)
     .wMenuAnimalSet(PageTitleMenuNone)
     .wMenuTitleFontSet(15.f)
@@ -275,7 +275,7 @@
             [weakSelf.upSc addSubview:view];
             [weakSelf.upSc bringSubviewToFront:view];
             [view setFrame:CGRectMake(SCREEN_WIDTH - 88.5, 0, 88.5, 45)];
-            [weakSelf updateController];
+//            [weakSelf updateController];
         });
     });
 }