diff --git a/Podfile b/Podfile index e8df93e..4636a72 100644 --- a/Podfile +++ b/Podfile @@ -24,6 +24,8 @@ def taget_pods pod 'TZImagePickerController' # 布局 pod 'Masonry' + # 数据存储 + pod 'FMDB' #轮播 pod 'SDCycleScrollView' #日期选择 diff --git a/Podfile.lock b/Podfile.lock index 262526e..aa1de3f 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -250,6 +250,7 @@ DEPENDENCIES: - AvoidCrash - BRPickerView - Bugly + - FMDB - JXCategoryView - JXPagingView/Pager - LLDebugTool @@ -379,6 +380,6 @@ SPEC CHECKSUMS: YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928 Zip: b3fef584b147b6e582b2256a9815c897d60ddc67 -PODFILE CHECKSUM: 9f0c224f530b4e6d6636265a8440d96ff79f0a83 +PODFILE CHECKSUM: 683d8919b3bdf1a04798d420114eaf498bc4e208 COCOAPODS: 1.16.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 262526e..aa1de3f 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -250,6 +250,7 @@ DEPENDENCIES: - AvoidCrash - BRPickerView - Bugly + - FMDB - JXCategoryView - JXPagingView/Pager - LLDebugTool @@ -379,6 +380,6 @@ SPEC CHECKSUMS: YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928 Zip: b3fef584b147b6e582b2256a9815c897d60ddc67 -PODFILE CHECKSUM: 9f0c224f530b4e6d6636265a8440d96ff79f0a83 +PODFILE CHECKSUM: 683d8919b3bdf1a04798d420114eaf498bc4e208 COCOAPODS: 1.16.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index b3d77f3..aef1a1d 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -18335,6 +18335,46 @@ }; name = Debug; }; + 0B44C51E2EAEBA3D97D9EAB1758DE448 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2598910578FE259E665B3B0E83B7BDF0 /* Pods-QXLive.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 0CB96FC9A1A1E7D68149A5F7980A0F3E /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = E1715BFF9FFCC48A55760BF6D7A3DF0D /* MJRefresh.release.xcconfig */; @@ -18907,6 +18947,72 @@ }; name = Debug; }; + 2B9E26EAE2CD392AD762421F663075A1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; 2BE2244D11F320D023DF33D33A8E3DCE /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 1AAB0867ED6A458E0B07F580C634DF93 /* SDWebImage.release.xcconfig */; @@ -19096,46 +19202,6 @@ }; name = Debug; }; - 39F4CE657F6AF6D2D9CD4FDE01848476 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2598910578FE259E665B3B0E83B7BDF0 /* Pods-QXLive.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; 3D3ACDCEF836B8110E914244F80048B2 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = CF9037A22AB4577D4B577E63385E2DEB /* QGVAPlayer.release.xcconfig */; @@ -19572,6 +19638,45 @@ }; name = Release; }; + 5213021CF20BDCABA382E1179D519679 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 908009E78A2E56530859FF690E873087 /* Pods-QXLiveDev.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; 52C7A8FBE5D07456824797CAADA2B9F0 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 48686C9E63BF75E0BF18CAFE80C7A62E /* JXCategoryView.release.xcconfig */; @@ -19769,44 +19874,67 @@ }; name = Release; }; - 672B9BBB9EEB1657AB5AEC80118BE380 /* Debug */ = { + 63FAF33E1C55B71A5F5A8B3CC8749F99 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CD816C1AB0BAE69BA4F0703D10DE6EC1 /* Pods-QXLive.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; }; - name = Debug; + name = Release; }; 67C644A7554018C7665368AC72B08558 /* Release */ = { isa = XCBuildConfiguration; @@ -19847,46 +19975,6 @@ }; name = Release; }; - 6B7F2AB559996C8A0B9341184F129E3B /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 664D85C77511FBEB1896EFC975EA5903 /* Pods-QXLiveDev.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; 6BEA43AACC8B9625C6A335F7B89C511A /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 08B8980434FBD4317A7A907D8F0BA6EB /* TUICore.debug.xcconfig */; @@ -20297,72 +20385,6 @@ }; name = Debug; }; - 8DE5143C03248BB6CD542DE3963D6F3A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; 8EAC2F834160F0D756B3363236E0940A /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = B5BE0DDBB1EEDFDCFD0698DB3EA721C2 /* JXPagingView.release.xcconfig */; @@ -20724,68 +20746,6 @@ }; name = Debug; }; - 9E406C6AAF85E580207CD97B0044DEAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; 9F84D925093362E29A484E2C87EE2D57 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0FBAD2C2380043B919A3E8EDE38B71C0 /* ReactiveObjC.debug.xcconfig */; @@ -20937,45 +20897,6 @@ }; name = Release; }; - AE5B9408AEBED055D8FDC0F4CCD1D8AB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 908009E78A2E56530859FF690E873087 /* Pods-QXLiveDev.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; AFC894E0E244EF0FBFC14CF792FC5B00 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 59F0050B85838ADC5B0707D0DC7E3862 /* FMDB.release.xcconfig */; @@ -21262,6 +21183,45 @@ }; name = Debug; }; + C7FDB5526F7C17CD2177564B0FEF8D23 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CD816C1AB0BAE69BA4F0703D10DE6EC1 /* Pods-QXLive.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-QXLive/Pods-QXLive.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; C90E52668ADA630F88D584FC5EA36B17 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 08B8980434FBD4317A7A907D8F0BA6EB /* TUICore.debug.xcconfig */; @@ -21445,6 +21405,46 @@ }; name = Debug; }; + D18BFFF97B71FFA74DB7B2A6D127EEE9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 664D85C77511FBEB1896EFC975EA5903 /* Pods-QXLiveDev.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-QXLiveDev/Pods-QXLiveDev.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; D5509021A03F8CE073490724F5517FCD /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5720FDCF73B5A4904B9B4ABF945E0DAD /* SDWebImage.debug.xcconfig */; @@ -22072,8 +22072,8 @@ 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8DE5143C03248BB6CD542DE3963D6F3A /* Debug */, - 9E406C6AAF85E580207CD97B0044DEAB /* Release */, + 2B9E26EAE2CD392AD762421F663075A1 /* Debug */, + 63FAF33E1C55B71A5F5A8B3CC8749F99 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22099,8 +22099,8 @@ 4AFFB3B5C8C4B63399FDA0D94C458C9C /* Build configuration list for PBXNativeTarget "Pods-QXLiveDev" */ = { isa = XCConfigurationList; buildConfigurations = ( - AE5B9408AEBED055D8FDC0F4CCD1D8AB /* Debug */, - 6B7F2AB559996C8A0B9341184F129E3B /* Release */, + 5213021CF20BDCABA382E1179D519679 /* Debug */, + D18BFFF97B71FFA74DB7B2A6D127EEE9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -22414,8 +22414,8 @@ CD8AA74457F1D4508B7EF5833C2A632E /* Build configuration list for PBXNativeTarget "Pods-QXLive" */ = { isa = XCConfigurationList; buildConfigurations = ( - 672B9BBB9EEB1657AB5AEC80118BE380 /* Debug */, - 39F4CE657F6AF6D2D9CD4FDE01848476 /* Release */, + C7FDB5526F7C17CD2177564B0FEF8D23 /* Debug */, + 0B44C51E2EAEBA3D97D9EAB1758DE448 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/QXLive.xcworkspace/xcuserdata/qixing.xcuserdatad/UserInterfaceState.xcuserstate b/QXLive.xcworkspace/xcuserdata/qixing.xcuserdatad/UserInterfaceState.xcuserstate index 2486b56..c3d4322 100644 Binary files a/QXLive.xcworkspace/xcuserdata/qixing.xcuserdatad/UserInterfaceState.xcuserstate and b/QXLive.xcworkspace/xcuserdata/qixing.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/QXLive/Config/QXManagerMqtt.m b/QXLive/Config/QXManagerMqtt.m index 7e0f0b2..391d958 100755 --- a/QXLive/Config/QXManagerMqtt.m +++ b/QXLive/Config/QXManagerMqtt.m @@ -26,6 +26,7 @@ static QXManagerMqtt *sharedManager; dispatch_once(&onceToken, ^{ sharedManager = [[QXManagerMqtt alloc] init]; + [MQTTLog setLogLevel:(DDLogLevelError)]; }); return sharedManager; } diff --git a/QXLive/Config/QXRoomMessageManager.m b/QXLive/Config/QXRoomMessageManager.m index 76dcf05..a704aaa 100644 --- a/QXLive/Config/QXRoomMessageManager.m +++ b/QXLive/Config/QXRoomMessageManager.m @@ -96,9 +96,9 @@ model.messageType = QXRoomChatMessageTypeSystem; NSString *jia_jia = [NSString stringWithFormat:@"%@",msg.Text[@"jia_jia"]]; if (([jia_jia hasPrefix:@"http"] || [jia_jia hasPrefix:@"https"]) && ([jia_jia hasSuffix:@"svga"] || [jia_jia hasSuffix:@"mp4"])) { - QXGiftModel *md = [[QXGiftModel alloc] init]; - md.play_image = jia_jia; - [[QXGiftPlayerManager shareManager] displayChatEffectView:md]; +// QXGiftModel *md = [[QXGiftModel alloc] init]; +// md.play_image = jia_jia; + [[QXGiftPlayerManager shareManager] displayChatEffectView:jia_jia]; } if (self.delegate && [self.delegate respondsToSelector:@selector(didInsertMessge:)]) { [self.delegate didInsertMessge:model]; @@ -122,7 +122,7 @@ /// 收到礼物 QXRoomChatListModel *model = [QXRoomChatListModel yy_modelWithJSON:msg.Text]; model.messageType = QXRoomChatMessageTypeGift; - [[QXGiftPlayerManager shareManager] displayFullEffectView:model.GiftInfo]; + [[QXGiftPlayerManager shareManager] displayFullEffectView:model.GiftInfo.play_image]; if (self.delegate && [self.delegate respondsToSelector:@selector(didRecieveGiftWithWithUserInfo:)]) { [self.delegate didRecieveGiftWithWithUserInfo:model.ToUserInfo]; } diff --git a/QXLive/Dynamic(语圈)/View/QXSendGiftView.h b/QXLive/Dynamic(语圈)/View/QXSendGiftView.h index 71d8b5d..57e961f 100644 --- a/QXLive/Dynamic(语圈)/View/QXSendGiftView.h +++ b/QXLive/Dynamic(语圈)/View/QXSendGiftView.h @@ -50,7 +50,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,copy)void(^sendSuccessBlock)(NSString*dynamicId); -@property (nonatomic,copy)void(^roomSendSuccessBlock)(QXSendGiftViewType sendType, QXGiftModel*giftModel,NSString*userId, NSString*optionId); +@property (nonatomic,copy)void(^roomSendSuccessBlock)(QXSendGiftViewType sendType, QXGiftModel*giftModel,NSString*giftCount,NSString*userId, NSString*optionId); -(void)reloadData; -(void)showInView:(UIView *)view; @@ -123,6 +123,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,strong)NSString *auctionId; @property (nonatomic,strong)NSString *heartId; @property (nonatomic,strong)NSString *roomId; +@property (nonatomic,strong)NSString *giftCount; @property (nonatomic,strong)CABasicAnimation *animation; @property (nonatomic,copy)void(^dissMissBlock)(QXGiftModel *gift); diff --git a/QXLive/Dynamic(语圈)/View/QXSendGiftView.m b/QXLive/Dynamic(语圈)/View/QXSendGiftView.m index 0985ba4..83df74a 100644 --- a/QXLive/Dynamic(语圈)/View/QXSendGiftView.m +++ b/QXLive/Dynamic(语圈)/View/QXSendGiftView.m @@ -56,6 +56,8 @@ @implementation QXSendGiftView -(void)showInView:(UIView *)view{ + self.giftCount = @"1"; + [self.countBtn setTitle:@"X1" forState:(UIControlStateNormal)]; self.bgView.y = SCREEN_HEIGHT; [view addSubview:self]; [UIView animateWithDuration:0.3 animations:^{ @@ -322,7 +324,7 @@ -(void)selectedCount:(UIButton*)sender{ QXMenuPopView *popView = [[QXMenuPopView alloc] initWithPoint:CGPointMake(SCREEN_WIDTH-16-60-30, SCREEN_HEIGHT-kSafeAreaBottom-50-225) width:88 height:225]; popView.type = QXMenuPopViewTypeArrowBottom; - popView.dataArray = @[@"X99",@"X66",@"X30",@"10",@"5",@"3",@"1"]; + popView.dataArray = @[@"X20",@"X15",@"X10",@"X5",@"X1"]; popView.delegate = self; [popView showInView:KEYWINDOW]; } @@ -378,7 +380,7 @@ [QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:self.giftCount to_uid:userId heart_id:self.heartId type:type pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) { if (type.intValue == 1) { if (weakSelf.roomSendSuccessBlock) { - weakSelf.roomSendSuccessBlock(self.type,weakSelf.giftModel,userId,@""); + weakSelf.roomSendSuccessBlock(self.type,weakSelf.giftModel,weakSelf.giftCount,userId,@""); } [weakSelf hide]; }else{ @@ -398,7 +400,7 @@ if (type.intValue == 1) { [weakSelf hide]; if (weakSelf.roomSendSuccessBlock) { - weakSelf.roomSendSuccessBlock(weakSelf.type,weakSelf.giftModel,[QXGlobal shareGlobal].loginModel.user_id,weakSelf.auctionId); + weakSelf.roomSendSuccessBlock(weakSelf.type,weakSelf.giftModel,weakSelf.giftCount,[QXGlobal shareGlobal].loginModel.user_id,weakSelf.auctionId); } }else{ [weakSelf.bagGiftView reloadData]; @@ -419,7 +421,7 @@ if (type.intValue == 1) { [weakSelf hide]; if (weakSelf.roomSendSuccessBlock) { - weakSelf.roomSendSuccessBlock(self.type,weakSelf.giftModel,userId,weakSelf.heartId); + weakSelf.roomSendSuccessBlock(self.type,weakSelf.giftModel,weakSelf.giftCount,userId,weakSelf.heartId); } }else{ [weakSelf.bagGiftView reloadData]; @@ -1195,21 +1197,21 @@ [[QXGlobal shareGlobal] vibrationFeedback]; switch (self.sendType) { case QXSendGiftViewTypeRoom: - [QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:@"1" to_uid:self.userId heart_id:self.heartId type:@"1" pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) { + [QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:self.giftCount to_uid:self.userId heart_id:self.heartId type:@"1" pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) { } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { showToast(msg) }]; break; case QXSendGiftViewTypeAuction: - [QXMineNetwork roomAuctionJoinWithAuctionId:self.auctionId user_id:self.userId gift_id:self.giftModel.gift_id num:@"1" type:@"1" successBlock:^(NSDictionary * _Nonnull dict) { + [QXMineNetwork roomAuctionJoinWithAuctionId:self.auctionId user_id:self.userId gift_id:self.giftModel.gift_id num:self.giftCount type:@"1" successBlock:^(NSDictionary * _Nonnull dict) { } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { showToast(msg) }]; break; case QXSendGiftViewTypeFriend: - [QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:@"1" to_uid:self.userId heart_id:self.heartId type:@"1" pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) { + [QXMineNetwork roomSendGiftWithRoomId:self.roomId gift_id:self.giftModel.gift_id gift_num:self.giftCount to_uid:self.userId heart_id:self.heartId type:@"1" pit_number:@"" successBlock:^(NSDictionary * _Nonnull dict) { } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { showToast(msg) diff --git a/QXLive/HomePage(声播)/Controlller/QXRankHomeVC.m b/QXLive/HomePage(声播)/Controlller/QXRankHomeVC.m index d895aba..b71b55f 100644 --- a/QXLive/HomePage(声播)/Controlller/QXRankHomeVC.m +++ b/QXLive/HomePage(声播)/Controlller/QXRankHomeVC.m @@ -29,7 +29,8 @@ } -(void)initSubViews{ self.view.backgroundColor = [UIColor whiteColor]; - self.titles = @[@"房间榜", @"财富榜", @"魅力榜",@"公会榜",@"真爱榜"]; +// self.titles = @[@"房间榜", @"财富榜", @"魅力榜",@"公会榜",@"真爱榜"]; + self.titles = @[@"房间榜", @"财富榜", @"魅力榜",@"真爱榜"]; self.listVCArray = [NSMutableArray array]; self.categoryView = [[JXCategoryTitleView alloc] init]; self.categoryView.frame = CGRectMake(0, 0, SCREEN_WIDTH-100, 44); @@ -39,10 +40,10 @@ self.categoryView.titleColor = [UIColor colorWithHexString:@"#999999"]; JXCategoryIndicatorImageView *indicatorImageView = [[JXCategoryIndicatorImageView alloc] init]; indicatorImageView.indicatorImageView.image = [UIImage imageNamed:@"home_slider"]; - indicatorImageView.indicatorWidth = (SCREEN_WIDTH-100)/5.0; + indicatorImageView.indicatorWidth = (SCREEN_WIDTH-100)/self.titles.count; indicatorImageView.indicatorHeight = 5; self.categoryView.indicators = @[indicatorImageView]; - self.categoryView.cellWidth = (SCREEN_WIDTH-100)/5.0; + self.categoryView.cellWidth = (SCREEN_WIDTH-100)/self.titles.count; self.categoryView.contentEdgeInsetLeft = 0; self.categoryView.cellSpacing = 0; self.categoryView.titleLabelZoomScale = 1.1; @@ -61,7 +62,11 @@ } -(id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index{ QXRankHomeSubVC *vc = [[QXRankHomeSubVC alloc] init]; - vc.rankType = index; + if (index == 3) { + vc.rankType = 4; + }else{ + vc.rankType = index; + } return vc; } - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { diff --git a/QXLive/HomePage(声播)/Controlller/房间/QXRoomViewController.m b/QXLive/HomePage(声播)/Controlller/房间/QXRoomViewController.m index 42968ef..14eebef 100644 --- a/QXLive/HomePage(声播)/Controlller/房间/QXRoomViewController.m +++ b/QXLive/HomePage(声播)/Controlller/房间/QXRoomViewController.m @@ -541,6 +541,8 @@ QXRoomUserInfoViewDelegate if (self.roomModel.room_info.type_id.intValue == 1 || self.roomModel.room_info.type_id.intValue == 3 || self.roomModel.room_info.type_id.intValue == 4){ hasSong = YES; } + /// 暂时不要pk + hasPK = NO; /// 普通麦位 if (self.seatContentView.myPitNumber <= 0) { self.bottomView.status = 1; @@ -1234,6 +1236,9 @@ QXRoomUserInfoViewDelegate } if (md.pit_number.intValue == 9) { compereModel = md; + if (md.user_id.longValue > 0 && ![md.user_id isEqualToString:[QXGlobal shareGlobal].loginModel.user_id]) { + [pitArr insertObject:md atIndex:0]; + } continue; }else if (md.pit_number.intValue == 10) { guestModel = md; @@ -1243,6 +1248,7 @@ QXRoomUserInfoViewDelegate [pitArr addObject:md]; } } + } // k歌麦位 @@ -1604,13 +1610,14 @@ QXRoomUserInfoViewDelegate _sendGiftView.roomId = self.roomId; // [_sendGiftView reloadData]; MJWeakSelf - _sendGiftView.roomSendSuccessBlock = ^(QXSendGiftViewType sendType, QXGiftModel * _Nonnull giftModel, NSString * _Nonnull userId, NSString * _Nonnull optionId) { + _sendGiftView.roomSendSuccessBlock = ^(QXSendGiftViewType sendType, QXGiftModel * _Nonnull giftModel, NSString * _Nonnull giftCount, NSString * _Nonnull userId, NSString * _Nonnull optionId) { // if (self->_continuousView == nil) { [weakSelf.view addSubview:weakSelf.continuousView]; // } weakSelf.continuousView.giftModel = giftModel; weakSelf.continuousView.sendType = sendType; weakSelf.continuousView.userId = userId; + weakSelf.continuousView.giftCount = giftCount; switch (sendType) { case QXSendGiftViewTypeFriend:{ weakSelf.continuousView.heartId = optionId; diff --git a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatContentView.h b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatContentView.h index fbb844e..ace2970 100644 --- a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatContentView.h +++ b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatContentView.h @@ -41,6 +41,8 @@ NS_ASSUME_NONNULL_BEGIN //@property (nonatomic,strong)QXRoomOwnerModel *userModel ; +-(void)updateUserCharm:(NSString*)charm; + - (void)startAudioAnimation ; /// 暂停麦位动画 - (void)stopAudioAnimation ; diff --git a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatContentView.m b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatContentView.m index 9cbecfe..a6a727e 100644 --- a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatContentView.m +++ b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatContentView.m @@ -79,10 +79,10 @@ make.height.equalTo(self.noUserImageView.mas_width); }]; - [self addSubview:self.micSvgaView]; + [self insertSubview:self.micSvgaView belowSubview:self.headerView]; [self.micSvgaView mas_remakeConstraints:^(MASConstraintMaker *make) { - make.left.top.equalTo(self.headerView).offset(-8); - make.right.bottom.equalTo(self.headerView).offset(8); + make.left.top.equalTo(self.headerView).offset(-10); + make.right.bottom.equalTo(self.headerView).offset(10); }]; [self addSubview:self.micMp4View]; @@ -225,6 +225,9 @@ } } } + if (self.pitModel.user_id.longLongValue <= 0) { + [self stopAudioAnimation]; + } } -(void)setIsPK:(BOOL)isPK{ _isPK = isPK; @@ -388,6 +391,10 @@ self.charmBgView.hidden = YES; } } +-(void)updateUserCharm:(NSString *)charm{ + self.pitModel.charm = charm; + self.charmLabel.text = [NSString qx_showHotCountNum:self.pitModel.charm.longLongValue]; +} -(void)hideCharm{ self.charmBgView.hidden = YES; } diff --git a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeFrientView.m b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeFrientView.m index 3a52e18..423d2fb 100644 --- a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeFrientView.m +++ b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeFrientView.m @@ -1108,8 +1108,9 @@ QXRoomSeatContentView *contentView = (QXRoomSeatContentView *)object; QXRoomPitModel *md = contentView.pitModel; if ([model.user_id isEqualToString:md.user_id]) { - md.charm = model.charm; - contentView.pitModel = md; +// md.charm = model.charm; +// contentView.pitModel = md; + [contentView updateUserCharm:model.charm]; break; } } @@ -1334,6 +1335,16 @@ [contentView destroyViews]; } } + [self.heartTopLinePlayer stopAnimation]; + _heartTopLinePlayer = nil; + [self.heartCenterLinePlayer stopAnimation]; + _heartCenterLinePlayer = nil; + [self.heartBottomLinePlayer stopAnimation]; + _heartBottomLinePlayer = nil; + + _heartTopLineParser = nil; + _heartCenterLineParser = nil; + _heartBottomLineParser = nil; } @end diff --git a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeNormalView.m b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeNormalView.m index a67a358..25cebe4 100644 --- a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeNormalView.m +++ b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeNormalView.m @@ -187,7 +187,7 @@ static NSInteger maxSeat = 8; } } --(void)didUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number{ +-(void) didUpDownSeatWithUser:(QXUserHomeModel *)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number{ if (pit_number > 10) { return; } @@ -345,8 +345,9 @@ static NSInteger maxSeat = 8; for (QXRoomSeatContentView *seatView in self.seatArray) { QXRoomPitModel *md = seatView.pitModel; if ([model.user_id isEqualToString:md.user_id]) { - md.charm = model.charm; - seatView.pitModel = md; +// md.charm = model.charm; +// seatView.pitModel = md; + [seatView updateUserCharm:model.charm]; // if (self.isPKMyRoom || self.isPKOtherRoom) { // [seatView hideCharm]; // } diff --git a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeSongView.m b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeSongView.m index 523461d..e309e74 100644 --- a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeSongView.m +++ b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatTypeSongView.m @@ -532,19 +532,22 @@ QXRoomSeatDelegate -(void)setSeatCharmWithUser:(QXUserHomeModel *)model{ QXRoomPitModel *singerModel = self.singerSeatView.pitModel; if ([singerModel.user_id isEqualToString:model.user_id]) { - singerModel.charm = model.charm; - self.singerSeatView.pitModel = singerModel; +// singerModel.charm = model.charm; +// self.singerSeatView.pitModel = singerModel; + [self.singerSeatView updateUserCharm:model.charm]; } QXRoomPitModel *compereModel = self.compereView.pitModel; if ([compereModel.user_id isEqualToString:model.user_id]) { - compereModel.charm = model.charm; - self.compereView.pitModel = compereModel; +// compereModel.charm = model.charm; +// self.compereView.pitModel = compereModel; + [self.compereView updateUserCharm:model.charm]; return; } QXRoomPitModel *guestModel = self.guestView.pitModel; if ([guestModel.user_id isEqualToString:model.user_id]) { - guestModel.charm = model.charm; - self.guestView.pitModel = guestModel; +// guestModel.charm = model.charm; +// self.guestView.pitModel = guestModel; + [self.guestView updateUserCharm:model.charm]; return; } diff --git a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatView.m b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatView.m index 1abea69..b77da0a 100644 --- a/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatView.m +++ b/QXLive/HomePage(声播)/View/房间/麦位视图/QXRoomSeatView.m @@ -17,6 +17,7 @@ @interface QXRoomSeatView() @property (nonatomic,strong)QXRoomSeatTypeNormalView *normalSeatView; + @property (nonatomic,strong)QXRoomSeatTypeSongView *songView; @property (nonatomic,strong)QXRoomSeatTypeAuctionView *auctionView; diff --git a/QXLive/HomePage(声播)/View/礼物/QXEffectSvgaView.m b/QXLive/HomePage(声播)/View/礼物/QXEffectSvgaView.m index 36ac38a..03f90da 100755 --- a/QXLive/HomePage(声播)/View/礼物/QXEffectSvgaView.m +++ b/QXLive/HomePage(声播)/View/礼物/QXEffectSvgaView.m @@ -152,6 +152,7 @@ #pragma mark - SVGAPlayerDelegate - (void)svgaPlayerDidFinishedAnimation:(SVGAPlayer *)player { + [self.player stopAnimation]; if (self.didFinishedDisplay) { self.didFinishedDisplay(self); } diff --git a/QXLive/HomePage(声播)/View/礼物/QXGiftPlayerManager.h b/QXLive/HomePage(声播)/View/礼物/QXGiftPlayerManager.h index fa1296f..87d7d42 100644 --- a/QXLive/HomePage(声播)/View/礼物/QXGiftPlayerManager.h +++ b/QXLive/HomePage(声播)/View/礼物/QXGiftPlayerManager.h @@ -19,10 +19,10 @@ NS_ASSUME_NONNULL_BEGIN - (QXEffectContentView *)defaultChatEffectView; /// 礼物、坐骑【全屏位置】特效 加载 -- (void)displayFullEffectView:(QXGiftModel *)gift; +- (void)displayFullEffectView:(NSString *)gift; /// 坐骑【公屏信息流位置】特效 加载 -- (void)displayChatEffectView:(QXGiftModel *)gift; +- (void)displayChatEffectView:(NSString *)gift; /// 关闭打开动效 - (void)openOrCloseEffectViewWith:(BOOL)isShow; @@ -37,7 +37,7 @@ NS_ASSUME_NONNULL_BEGIN @interface QXEffectContentView : UIView @property (nonatomic,strong) VAPView *playerMp4View; @property (nonatomic, strong) dispatch_queue_t queue; -- (void)displayEffectView:(QXGiftModel *)gift; +- (void)displayEffectView:(NSString *)play_image; - (void)openOrCloseEffectViewWith:(BOOL)isShow; @property (nonatomic,assign) BOOL isShow; - (void)destroyEffectView; diff --git a/QXLive/HomePage(声播)/View/礼物/QXGiftPlayerManager.m b/QXLive/HomePage(声播)/View/礼物/QXGiftPlayerManager.m index 612c5f6..00b5baa 100644 --- a/QXLive/HomePage(声播)/View/礼物/QXGiftPlayerManager.m +++ b/QXLive/HomePage(声播)/View/礼物/QXGiftPlayerManager.m @@ -8,7 +8,12 @@ #import "QXGiftPlayerManager.h" #import "QXEffectSvgaView.h" #import "QXFileManager.h" +#import "FMDB.h" +static NSString *TABLENAME = @"qxGitfPlayTable"; +static NSString *ID = @"id"; +static NSString *PLAY_IMAGE = @"play_image"; @interface QXGiftPlayerManager() +@property (nonatomic,strong) FMDatabase *fmdb; @property (nonatomic,strong) UIView *bgEffectView; // 礼物、坐骑【全屏位置】特效 @property (nonatomic,strong) QXEffectContentView *fullEffectView; @@ -24,9 +29,88 @@ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ manager = [[QXGiftPlayerManager alloc] init]; +// [manager creatDatabase]; }); return manager; } +//获得存放数据库文件的沙盒地址 +//- (NSString *)databaseFilePath +//{ +// NSArray *filePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); +// NSString *documentPath = [filePath objectAtIndex:0]; +// NSString *dbFilePath = [documentPath stringByAppendingPathComponent:@"qx_gift.db"]; +// return dbFilePath; +//} +// +////创建数据库 +//- (void)creatDatabase +//{ +// _fmdb = [FMDatabase databaseWithPath:[self databaseFilePath]]; +// //为数据库设置缓存,提高查询效率 +// [_fmdb setShouldCacheStatements:YES]; +// [_fmdb open]; +// NSString *sqlCreateTable = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' INTEGER PRIMARY KEY AUTOINCREMENT, '%@' TEXT)",TABLENAME,ID,PLAY_IMAGE]; +// BOOL res = [_fmdb executeUpdate:sqlCreateTable]; +// NSLog(@"%@",res?@"数据库创建成功":@"数据库创建失败"); +// [_fmdb close]; +//} +// +//-(void)insertGiftWithPlayImage:(NSString*)giftImage{ +// if ([_fmdb open]) { +// NSString *insertSql1= [NSString stringWithFormat: +// @"INSERT INTO '%@' ('%@') VALUES ('%@');", +// TABLENAME, PLAY_IMAGE, giftImage]; +// BOOL res = [_fmdb executeUpdate:insertSql1]; +// NSLog(@"%@",res?@"礼物添加成功":@"礼物添加失败"); +// [_fmdb close]; +// } +//} +//- (BOOL)deleteRecordWithId:(NSInteger)recordId { +// if ([_fmdb open]) { +// NSString *deleteSQL = [NSString stringWithFormat: +// @"DELETE FROM %@ WHERE id = ('%ld');", +// TABLENAME, recordId]; +// BOOL success = [_fmdb executeUpdate:deleteSQL]; +// if (!success) { +// NSLog(@"删除失败: %@", [_fmdb lastErrorMessage]); +// }else{ +// NSLog(@"删除成功"); +// } +// [_fmdb close]; +// return success; +// } +// return NO; +//} +// +//-(BOOL)deleFirstImage{ +// if ([_fmdb open]) { +// NSString *querySQL= [NSString stringWithFormat: +// @"SELECT id FROM '%@' ORDER BY id ASC LIMIT 1", +// TABLENAME]; +// FMResultSet *resultSet = [_fmdb executeQuery:querySQL]; +// [_fmdb close]; +// if ([resultSet next]) { +// NSInteger recordId = [resultSet intForColumn:@"id"]; +// return [self deleteRecordWithId:recordId]; +// } +// } +// return NO; +//} +// +//-(NSString*)readFirstImage{ +// if ([_fmdb open]) { +// NSString *querySQL= [NSString stringWithFormat: +// @"SELECT id FROM '%@' ORDER BY id ASC LIMIT 1", +// TABLENAME]; +// FMResultSet *resultSet = [_fmdb executeQuery:querySQL]; +// [_fmdb close]; +// if ([resultSet next]) { +// NSString *playImage = [resultSet stringForColumn:PLAY_IMAGE]; +// return playImage; +// } +// } +// return nil; +//} - (UIView *)defaultBgEffectView { return self.bgEffectView; @@ -42,13 +126,14 @@ return self.chatEffectView; } -- (void)displayFullEffectView:(QXGiftModel *)gift { +- (void)displayFullEffectView:(NSString *)gift { +// [self insertGiftWithPlayImage:gift]; [self.fullEffectView displayEffectView:gift]; } -- (void)displayChatEffectView:(QXGiftModel *)gift { +- (void)displayChatEffectView:(NSString *)gift { [self.chatEffectView displayEffectView:gift]; } /// 关闭打开动效 @@ -126,10 +211,10 @@ if (self) { self.userInteractionEnabled = NO; self.isLoadEffect = NO; - [self addSubview:self.effectView]; + [self addSubview:self.svagView]; [self addSubview:self.playerMp4View]; - [self.effectView mas_makeConstraints:^(MASConstraintMaker *make) { + [self.svagView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self); }]; [self.playerMp4View mas_makeConstraints:^(MASConstraintMaker *make) { @@ -138,19 +223,30 @@ } return self; } -- (void)displayEffectView:(QXGiftModel *)gift { +/// 礼物特效进来 gift为礼物实体类 +- (void)displayEffectView:(NSString *)play_image { dispatch_async(self.queue, ^{ - if (![gift.play_image isExist]) { + /// 如果play_image不存在return + if (![play_image isExist]) { return; } - NSString *pathExtension = [gift.play_image pathExtension].lowercaseString; + /// 将play_image链接转为小写 + NSString *pathExtension = [play_image pathExtension].lowercaseString; + /// 判定礼物的后缀是否为svga或者mp4如果非这两种 则return if (!([pathExtension isEqualToString:@"svga"] || [pathExtension isEqualToString:@"mp4"])) { return; } + /// 锁住list [self.lock lock]; - [self.giftArray addObject:gift]; + /// 添加礼物进list + [self.giftArray addObject:play_image]; + NSLog(@"当前礼物有---%ld个",self.giftArray.count); + /// 解锁 [self.lock unlock]; + + /// 如果没有在加载则开始加载 if (self.isLoadEffect == NO) { + /// 更改加载状态标记 self.isLoadEffect = YES; [self loadStartSVGAPlayer]; } @@ -160,7 +256,7 @@ _isShow = isShow; [self removeSvgaQueueData]; - [self.effectView stopEffectSvgaPlay]; + [self.svagView stopEffectSvgaPlay]; // [self.playerView stop]; [self.playerMp4View stopHWDMP4]; // [self.alphaVideoView stop]; @@ -170,7 +266,7 @@ -(void)stopPlay{ [self removeSvgaQueueData]; - [self.effectView stopEffectSvgaPlay]; + [self.svagView stopEffectSvgaPlay]; // [self.playerView stop]; [self.playerMp4View stopHWDMP4]; // [self.alphaVideoView stop]; @@ -180,39 +276,54 @@ dispatch_async(dispatch_get_main_queue(), ^{ self.playerMp4View.hidden = YES; }); - [self loadStartSVGAPlayer]; + dispatch_async(dispatch_get_main_queue(), ^{ + [self loadStartSVGAPlayer]; + }); } - (void)loadStartSVGAPlayer { if (!_isShow) { + /// isshow 为是否开启特效 如果未开启则return return; } - QXGiftModel *giftModel = nil; + NSString *play_image = nil; + /// list加锁 [self.lock lock]; + /// 如果list长度大于0 if (self.giftArray.count > 0) { - giftModel = self.giftArray.firstObject; + /// gift的实体类则赋值,取list中的第一个数据 + play_image = self.giftArray.firstObject; + /// 移除list的第一条数据 [self.giftArray removeObjectAtIndex:0]; self.isLoadEffect = YES; }else { self.isLoadEffect = NO; } + /// 解锁 [self.lock unlock]; - if (self.isLoadEffect && [giftModel.play_image isExist]) { + if (self.isLoadEffect && [play_image isExist]) { dispatch_async(dispatch_get_main_queue(), ^{ - if ([giftModel.play_image hasSuffix:@"mp4"]) { + if ([play_image hasSuffix:@"mp4"]) { __weak typeof(self)weakSelf = self; - [[QXRequset shareInstance] downloadVideoPlayerWithUrl:giftModel.play_image completion:^(BOOL result, NSString * _Nonnull fileName) { + /// mp4格式下载播放 + [[QXRequset shareInstance] downloadVideoPlayerWithUrl:play_image completion:^(BOOL result, NSString * _Nonnull fileName) { NSString *videoPath = [QXFileManager getGiftVideoPath:fileName]; - weakSelf.playerMp4View.hidden = NO; - weakSelf.effectView.hidden = YES; + dispatch_async(dispatch_get_main_queue(), ^{ + weakSelf.playerMp4View.hidden = NO; + weakSelf.svagView.hidden = YES; + }); + [weakSelf.playerMp4View playHWDMP4:videoPath delegate:self]; }]; - }else if ([giftModel.play_image hasSuffix:@"svg"] || [giftModel.play_image hasSuffix:@"svga"]) { + }else if ([play_image hasSuffix:@"svg"] || [play_image hasSuffix:@"svga"]) { __weak typeof(self)weakSelf = self; - [[QXRequset shareInstance] downloadVideoPlayerWithUrl:giftModel.play_image completion:^(BOOL result, NSString * _Nonnull fileName) { - weakSelf.playerMp4View.hidden = YES; - weakSelf.effectView.hidden = NO; + /// svga下载播放 + [[QXRequset shareInstance] downloadVideoPlayerWithUrl:play_image completion:^(BOOL result, NSString * _Nonnull fileName) { + dispatch_async(dispatch_get_main_queue(), ^{ + weakSelf.playerMp4View.hidden = YES; + weakSelf.svagView.hidden = NO; + }); NSString *filePath = [QXFileManager getGiftVideoPath:fileName]; - [weakSelf.effectView loadSVGAPlayerWith:filePath]; + [weakSelf.svagView loadSVGAPlayerWith:filePath]; }]; }else { [self.lock lock]; @@ -235,7 +346,7 @@ // [self.playerView destroyPlayer]; [self.playerMp4View stopHWDMP4]; - [self.effectView removeFromSuperview]; + [self.svagView removeFromSuperview]; [self.playerMp4View removeFromSuperview]; _svagView = nil; @@ -257,7 +368,7 @@ return _giftArray; } -- (QXEffectSvgaView *)effectView { +- (QXEffectSvgaView *)svagView { if (!_svagView) { _svagView = [[QXEffectSvgaView alloc] initWithFrame:CGRectZero isAutoPlay:YES]; __weak typeof(self)weakSelf = self; diff --git a/QXLive/Mine(音域)/Controller/个性装扮/QXDressViewController.m b/QXLive/Mine(音域)/Controller/个性装扮/QXDressViewController.m index 307c65b..a01f93a 100644 --- a/QXLive/Mine(音域)/Controller/个性装扮/QXDressViewController.m +++ b/QXLive/Mine(音域)/Controller/个性装扮/QXDressViewController.m @@ -9,6 +9,7 @@ #import "JXCategoryView.h" #import "QXDressSubViewController.h" #import "QXMineNetwork.h" +#import "QXPropShopViewController.h" @interface QXDressViewController () @property (nonatomic,strong)JXCategoryTitleView *categoryView; @@ -30,6 +31,17 @@ -(void)setNavgationItems{ [super setNavgationItems]; self.navigationItem.title = QXText(@"个性装扮"); + UIButton*recordBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)]; + [recordBtn setTitle:QXText(@"道具商城") forState:(UIControlStateNormal)]; + [recordBtn setTitleColor:RGB16(0xFF8ACC) forState:(UIControlStateNormal)]; + recordBtn.titleLabel.font = [UIFont systemFontOfSize:16]; + [recordBtn addTarget:self action:@selector(recordAction) forControlEvents:(UIControlEventTouchUpInside)]; + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:recordBtn]; +} + +-(void)recordAction{ + QXPropShopViewController *vc = [[QXPropShopViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; } - (void)initSubViews{ diff --git a/QXLive/Mine(音域)/View/个性装扮/QXDressCell.m b/QXLive/Mine(音域)/View/个性装扮/QXDressCell.m index 531e83c..889ef98 100644 --- a/QXLive/Mine(音域)/View/个性装扮/QXDressCell.m +++ b/QXLive/Mine(音域)/View/个性装扮/QXDressCell.m @@ -13,7 +13,7 @@ [super awakeFromNib]; // Initialization code [self.selecteBtn setBackgroundImage:[UIImage imageWithColor:RGB16(0xEFF2F8)] forState:(UIControlStateNormal)]; - [self.selecteBtn setBackgroundImage:[UIImage imageNamed:@"mine_dress_bg"] forState:(UIControlStateSelected)]; + [self.selecteBtn setBackgroundImage:[UIImage imageNamed:@"room_sound_sel"] forState:(UIControlStateSelected)]; } -(void)setModel:(QXUserDressModel *)model{ _model = model; diff --git a/QXLive/Mine(音域)/View/个性装扮/QXDressCell.xib b/QXLive/Mine(音域)/View/个性装扮/QXDressCell.xib index 740244b..c946303 100644 --- a/QXLive/Mine(音域)/View/个性装扮/QXDressCell.xib +++ b/QXLive/Mine(音域)/View/个性装扮/QXDressCell.xib @@ -66,7 +66,7 @@ @@ -107,6 +107,6 @@ - + diff --git a/QXLive/Other/QXApi.h b/QXLive/Other/QXApi.h index 2b1f500..74f0a34 100644 --- a/QXLive/Other/QXApi.h +++ b/QXLive/Other/QXApi.h @@ -20,7 +20,7 @@ static NSString* ServerUrl = @"https://tmd.xscmmidi.site/"; static NSString* H5ServerUrl = @"https://tmdh.xscmmidi.site/"; #else static NSString* ServerUrl = @"https://md.xscmmidi.site/"; -static NSString* H5ServerUrl = @"https://mdh.xscmmidi.site/"; +static NSString* H5ServerUrl = @"https://md.xscmmidi.site/h5/"; #endif #pragma mark - 引导页 /// 引导页 diff --git a/QXLive/Other/heart_line.webp b/QXLive/Other/heart_line.webp new file mode 100644 index 0000000..8bf7a7e Binary files /dev/null and b/QXLive/Other/heart_line.webp differ diff --git a/QXLive/QXLive.entitlements b/QXLive/QXLive.entitlements index 8bc11eb..dbdedb2 100644 --- a/QXLive/QXLive.entitlements +++ b/QXLive/QXLive.entitlements @@ -10,8 +10,8 @@ com.apple.developer.associated-domains - webcredentials:chat.qxmier.com - applinks:chat.qxmier.com + webcredentials:mdh.xscmmidi.site + applinks:mdh.xscmmidi.site diff --git a/QXLive/活动/天空之境/QXSkyPraizeView.m b/QXLive/活动/天空之境/QXSkyPraizeView.m index e379d84..c6e292c 100644 --- a/QXLive/活动/天空之境/QXSkyPraizeView.m +++ b/QXLive/活动/天空之境/QXSkyPraizeView.m @@ -107,6 +107,11 @@ static NSInteger toSlowCount = 4; self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(663))]; [self.bgView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)]; [self addSubview:self.bgView]; + // 添加拖拽手势 + UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] + initWithTarget:self + action:@selector(handlePanGesture:)]; + [self.bgView addGestureRecognizer:panGesture]; self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"active_sky_raize_bg"]]; self.bgImageView.frame = CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(663)); @@ -266,7 +271,43 @@ static NSInteger toSlowCount = 4; self.centerView.activityType = QXActivityTypeSky; [self.bgView addSubview:self.centerView]; } - +- (void)handlePanGesture:(UIPanGestureRecognizer *)gesture { + static CGPoint originalCenter; + + if (gesture.state == UIGestureRecognizerStateBegan) { + // 记录原始中心点 + originalCenter = gesture.view.center; + }else if (gesture.state == UIGestureRecognizerStateChanged) { + // 获取拖拽位移 + CGPoint translation = [gesture translationInView:self]; + + // 只允许向下拖拽 + if (translation.y > 0) { + gesture.view.center = CGPointMake(originalCenter.x, originalCenter.y + translation.y); + +// // 根据拖拽距离调整透明度 +// CGFloat progress = translation.y / (self.view.bounds.size.height / 2); +// gesture.view.alpha = 1.0 - MIN(progress, 0.8); + } + } + else if (gesture.state == UIGestureRecognizerStateEnded || + gesture.state == UIGestureRecognizerStateCancelled) { + + CGPoint translation = [gesture translationInView:self]; + CGPoint velocity = [gesture velocityInView:self]; + // 判断是否应该消失:拖拽超过一半高度或速度足够快 + BOOL shouldDismiss = translation.y > self.bgView.height/2.0 || velocity.y > 1000; + + if (shouldDismiss) { + [self hide]; + } else { + // 恢复原位置 + [UIView animateWithDuration:0.3 animations:^{ + self.bgView.y = SCREEN_HEIGHT-ScaleWidth(663); + }]; + } + } +} -(void)getMyWallet{ MJWeakSelf [[QXRequset shareInstance] getWithUrl:QXWallet parameters:@{@"token":[QXGlobal shareGlobal].loginModel.token?[QXGlobal shareGlobal].loginModel.token:@""} needCache:NO success:^(id responseObject) { diff --git a/QXLive/活动/岁月之城/QXAgePraizeView.m b/QXLive/活动/岁月之城/QXAgePraizeView.m index 77c84e1..3d28824 100644 --- a/QXLive/活动/岁月之城/QXAgePraizeView.m +++ b/QXLive/活动/岁月之城/QXAgePraizeView.m @@ -108,6 +108,11 @@ static NSInteger toSlowCount = 4; self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(663))]; [self.bgView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)]; [self addSubview:self.bgView]; + // 添加拖拽手势 + UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] + initWithTarget:self + action:@selector(handlePanGesture:)]; + [self.bgView addGestureRecognizer:panGesture]; self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"active_age_castle_bg"]]; self.bgImageView.frame = CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(663)); @@ -299,7 +304,43 @@ static NSInteger toSlowCount = 4; [self.bgView addSubview:self.centerView]; } - +- (void)handlePanGesture:(UIPanGestureRecognizer *)gesture { + static CGPoint originalCenter; + + if (gesture.state == UIGestureRecognizerStateBegan) { + // 记录原始中心点 + originalCenter = gesture.view.center; + }else if (gesture.state == UIGestureRecognizerStateChanged) { + // 获取拖拽位移 + CGPoint translation = [gesture translationInView:self]; + + // 只允许向下拖拽 + if (translation.y > 0) { + gesture.view.center = CGPointMake(originalCenter.x, originalCenter.y + translation.y); + +// // 根据拖拽距离调整透明度 +// CGFloat progress = translation.y / (self.view.bounds.size.height / 2); +// gesture.view.alpha = 1.0 - MIN(progress, 0.8); + } + } + else if (gesture.state == UIGestureRecognizerStateEnded || + gesture.state == UIGestureRecognizerStateCancelled) { + + CGPoint translation = [gesture translationInView:self]; + CGPoint velocity = [gesture velocityInView:self]; + // 判断是否应该消失:拖拽超过一半高度或速度足够快 + BOOL shouldDismiss = translation.y > self.bgView.height/2.0 || velocity.y > 1000; + + if (shouldDismiss) { + [self hide]; + } else { + // 恢复原位置 + [UIView animateWithDuration:0.3 animations:^{ + self.bgView.y = SCREEN_HEIGHT-ScaleWidth(663); + }]; + } + } +} -(void)getMyWallet{ MJWeakSelf [[QXRequset shareInstance] getWithUrl:QXWallet parameters:@{@"token":[QXGlobal shareGlobal].loginModel.token?[QXGlobal shareGlobal].loginModel.token:@""} needCache:NO success:^(id responseObject) { diff --git a/QXLive/活动/巡乐会/QXMeetActivityView.h b/QXLive/活动/巡乐会/QXMeetActivityView.h index e883742..919f7c1 100644 --- a/QXLive/活动/巡乐会/QXMeetActivityView.h +++ b/QXLive/活动/巡乐会/QXMeetActivityView.h @@ -9,7 +9,14 @@ #import "QXTimer.h" #import "GKCycleScrollView.h" NS_ASSUME_NONNULL_BEGIN - +typedef NS_ENUM(NSInteger) { + /// 抽一次 + QXMeetDrawBtnTypeOne = 1, + /// 抽10次 + QXMeetDrawBtnTypeTen = 10, + /// 抽100次 + QXMeetDrawBtnTypeHundred = 100, +}QXMeetDrawBtnType; @interface QXMeetActivityView : UIView -(void)showInView:(UIView *)view; @property (nonatomic,strong)NSString *roomId; @@ -43,7 +50,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,strong)UILabel *titleLabel; @property (nonatomic,strong)UIButton *giftCoin; @property (nonatomic,assign)BOOL isDisable; -@property (nonatomic,assign)QXSkyDrawBtnType btnType; +@property (nonatomic,assign)QXMeetDrawBtnType btnType; @end diff --git a/QXLive/活动/巡乐会/QXMeetActivityView.m b/QXLive/活动/巡乐会/QXMeetActivityView.m index 2849d0c..111b347 100644 --- a/QXLive/活动/巡乐会/QXMeetActivityView.m +++ b/QXLive/活动/巡乐会/QXMeetActivityView.m @@ -101,7 +101,11 @@ self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(663))]; [self.bgView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)]; [self addSubview:self.bgView]; - + // 添加拖拽手势 + UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] + initWithTarget:self + action:@selector(handlePanGesture:)]; + [self.bgView addGestureRecognizer:panGesture]; // NSString *path = [[NSBundle mainBundle] pathForResource:@"ac_meet_big_bg@2x" ofType:@"png"]; // UIImage *bgImage = [UIImage imageWithContentsOfFile:path]; self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ac_meet_big_bg"]]; @@ -223,21 +227,21 @@ CGFloat btnWidth = ScaleWidth(109); CGFloat btnMargin = (SCREEN_WIDTH- ScaleWidth(109)*3)/4; QXMeetDrawBtn *oneBtn = [[QXMeetDrawBtn alloc] initWithFrame:CGRectMake(btnMargin, self.bgView.height-ScaleWidth(34)-20, btnWidth, ScaleWidth(34))]; - oneBtn.btnType = QXSkyDrawBtnTypeOne; + oneBtn.btnType = QXMeetDrawBtnTypeOne; self.oneBtn = oneBtn; self.oneBtn.hidden = YES; [oneBtn addTarget:self action:@selector(startAction:) forControlEvents:(UIControlEventTouchUpInside)]; [self.bgView addSubview:oneBtn]; QXMeetDrawBtn *tenBtn = [[QXMeetDrawBtn alloc] initWithFrame:CGRectMake(self.oneBtn.right+btnMargin, self.oneBtn.top, btnWidth, ScaleWidth(34))]; - tenBtn.btnType = QXSkyDrawBtnTypeTen; + tenBtn.btnType = QXMeetDrawBtnTypeTen; self.tenBtn = tenBtn; self.tenBtn.hidden = YES; [tenBtn addTarget:self action:@selector(startAction:) forControlEvents:(UIControlEventTouchUpInside)]; [self.bgView addSubview:tenBtn]; QXMeetDrawBtn *hundredBtn = [[QXMeetDrawBtn alloc] initWithFrame:CGRectMake(tenBtn.right+btnMargin, self.oneBtn.top, btnWidth, ScaleWidth(34))]; - hundredBtn.btnType = QXSkyDrawBtnTypeHundred; + hundredBtn.btnType = QXMeetDrawBtnTypeHundred; self.hundredBtn = hundredBtn; self.hundredBtn.hidden = YES; [hundredBtn addTarget:self action:@selector(startAction:) forControlEvents:(UIControlEventTouchUpInside)]; @@ -284,6 +288,43 @@ self.drawGiftCenterBgImageView.frame = CGRectMake((self.bgView.width-ScaleWidth(105))/2, self.cycleScrollView.top+25, ScaleWidth(105), ScaleWidth(105)); [self.bgView addSubview:self.drawGiftCenterBgImageView]; } +- (void)handlePanGesture:(UIPanGestureRecognizer *)gesture { + static CGPoint originalCenter; + + if (gesture.state == UIGestureRecognizerStateBegan) { + // 记录原始中心点 + originalCenter = gesture.view.center; + }else if (gesture.state == UIGestureRecognizerStateChanged) { + // 获取拖拽位移 + CGPoint translation = [gesture translationInView:self]; + + // 只允许向下拖拽 + if (translation.y > 0) { + gesture.view.center = CGPointMake(originalCenter.x, originalCenter.y + translation.y); + +// // 根据拖拽距离调整透明度 +// CGFloat progress = translation.y / (self.view.bounds.size.height / 2); +// gesture.view.alpha = 1.0 - MIN(progress, 0.8); + } + } + else if (gesture.state == UIGestureRecognizerStateEnded || + gesture.state == UIGestureRecognizerStateCancelled) { + + CGPoint translation = [gesture translationInView:self]; + CGPoint velocity = [gesture velocityInView:self]; + // 判断是否应该消失:拖拽超过一半高度或速度足够快 + BOOL shouldDismiss = translation.y > self.bgView.height/2.0 || velocity.y > 1000; + + if (shouldDismiss) { + [self hide]; + } else { + // 恢复原位置 + [UIView animateWithDuration:0.3 animations:^{ + self.bgView.y = SCREEN_HEIGHT-ScaleWidth(663); + }]; + } + } +} -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ return touch.view == self; } @@ -730,7 +771,7 @@ _isDisable = isDisable; self.bgImageView.image = [UIImage imageNamed:isDisable?@"meet_touch_dis_bg":@"meet_touch_bg"]; } --(void)setBtnType:(QXSkyDrawBtnType)btnType{ +-(void)setBtnType:(QXMeetDrawBtnType)btnType{ // /// 抽一次 // QXSkyDrawBtnTypeOne = 0, // /// 抽10次 @@ -739,19 +780,19 @@ // QXSkyDrawBtnTypeHundred , _btnType = btnType; switch (btnType) { - case QXSkyDrawBtnTypeOne: + case QXMeetDrawBtnTypeOne: { self.titleLabel.text = @"抽一次"; [self.giftCoin setTitle:@"10币一次" forState:(UIControlStateNormal)]; } break; - case QXSkyDrawBtnTypeTen: + case QXMeetDrawBtnTypeTen: { self.titleLabel.text = @"抽十次"; [self.giftCoin setTitle:@"100币一次" forState:(UIControlStateNormal)]; } break; - case QXSkyDrawBtnTypeHundred: + case QXMeetDrawBtnTypeHundred: { self.titleLabel.text = @"抽百次"; [self.giftCoin setTitle:@"1000币一次" forState:(UIControlStateNormal)]; diff --git a/QXLive/活动/时空之巅/QXTimePraizeView.m b/QXLive/活动/时空之巅/QXTimePraizeView.m index 6f54538..31dcd24 100644 --- a/QXLive/活动/时空之巅/QXTimePraizeView.m +++ b/QXLive/活动/时空之巅/QXTimePraizeView.m @@ -114,6 +114,12 @@ static NSInteger toSlowCount = 4; self.bgImageView.contentMode = UIViewContentModeScaleToFill; [self.bgView addSubview:self.bgImageView]; + // 添加拖拽手势 + UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] + initWithTarget:self + action:@selector(handlePanGesture:)]; + [self.bgView addGestureRecognizer:panGesture]; + self.poolBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, ScaleWidth(48), ScaleWidth(48), ScaleWidth(24))]; [self.poolBtn setBackgroundImage:[UIImage imageNamed:@"time_right_bg"] forState:(UIControlStateNormal)]; [self.poolBtn setTitle:@"奖池" forState:(UIControlStateNormal)]; @@ -299,7 +305,43 @@ static NSInteger toSlowCount = 4; [self.bgView addSubview:self.centerView]; } - +- (void)handlePanGesture:(UIPanGestureRecognizer *)gesture { + static CGPoint originalCenter; + + if (gesture.state == UIGestureRecognizerStateBegan) { + // 记录原始中心点 + originalCenter = gesture.view.center; + }else if (gesture.state == UIGestureRecognizerStateChanged) { + // 获取拖拽位移 + CGPoint translation = [gesture translationInView:self]; + + // 只允许向下拖拽 + if (translation.y > 0) { + gesture.view.center = CGPointMake(originalCenter.x, originalCenter.y + translation.y); + +// // 根据拖拽距离调整透明度 +// CGFloat progress = translation.y / (self.view.bounds.size.height / 2); +// gesture.view.alpha = 1.0 - MIN(progress, 0.8); + } + } + else if (gesture.state == UIGestureRecognizerStateEnded || + gesture.state == UIGestureRecognizerStateCancelled) { + + CGPoint translation = [gesture translationInView:self]; + CGPoint velocity = [gesture velocityInView:self]; + // 判断是否应该消失:拖拽超过一半高度或速度足够快 + BOOL shouldDismiss = translation.y > self.bgView.height/2.0 || velocity.y > 1000; + + if (shouldDismiss) { + [self hide]; + } else { + // 恢复原位置 + [UIView animateWithDuration:0.3 animations:^{ + self.bgView.y = SCREEN_HEIGHT-ScaleWidth(663); + }]; + } + } +} -(void)getMyWallet{ MJWeakSelf [[QXRequset shareInstance] getWithUrl:QXWallet parameters:@{@"token":[QXGlobal shareGlobal].loginModel.token?[QXGlobal shareGlobal].loginModel.token:@""} needCache:NO success:^(id responseObject) {