浏览代码

合并分支:因为默认bundle的变化,增加分支

huzhiqiang 3 年之前
父节点
当前提交
51d972c071
共有 73 个文件被更改,包括 660 次插入29 次删除
  1. 0 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/Contents.json
  2. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedClosed.imageset/Contents.json
  3. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedClosed.imageset/customSpeedClosed@2x.png
  4. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedClosed.imageset/customSpeedClosed@3x.png
  5. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedFast.imageset/Contents.json
  6. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedFast.imageset/customSpeedFast@2x.png
  7. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedFast.imageset/customSpeedFast@3x.png
  8. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedSlow.imageset/Contents.json
  9. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedSlow.imageset/customSpeedSlow@2x.png
  10. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedSlow.imageset/customSpeedSlow@3x.png
  11. 0 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_detail_back.imageset/Contents.json
  12. 0 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_detail_back.imageset/icon_detail_back@2x.png
  13. 0 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_detail_back.imageset/icon_detail_back@3x.png
  14. 21 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_search_delete.imageset/Contents.json
  15. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_search_delete.imageset/icon_search_delete@2x.png
  16. 21 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_search_s.imageset/Contents.json
  17. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_search_s.imageset/icon_search_s@2x.png
  18. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_h.imageset/Contents.json
  19. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_h.imageset/jumpPoint_h@2x.png
  20. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_h.imageset/jumpPoint_h@3x.png
  21. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_n.imageset/Contents.json
  22. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_n.imageset/jumpPoint_n@2x.png
  23. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_n.imageset/jumpPoint_n@3x.png
  24. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/loading.imageset/Contents.json
  25. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/loading.imageset/loading@2x.png
  26. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/loading.imageset/loading@3x.png
  27. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_h.imageset/Contents.json
  28. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_h.imageset/musicEditerBtn_h@2x.png
  29. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_h.imageset/musicEditerBtn_h@3x.png
  30. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_n.imageset/Contents.json
  31. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_n.imageset/musicEditerBtn_n@2x.png
  32. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_n.imageset/musicEditerBtn_n@3x.png
  33. 21 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicSearch.imageset/Contents.json
  34. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicSearch.imageset/musicSearch@2x.png
  35. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_h.imageset/Contents.json
  36. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_h.imageset/onlyMusic_h@2x.png
  37. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_h.imageset/onlyMusic_h@3x.png
  38. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_n.imageset/Contents.json
  39. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_n.imageset/onlyMusic_n@2x.png
  40. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_n.imageset/onlyMusic_n@3x.png
  41. 0 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/placehold_image.imageset/Contents.json
  42. 0 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/placehold_image.imageset/placehold_image@2x.png
  43. 0 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/placehold_image.imageset/placehold_image@3x.png
  44. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_h.imageset/Contents.json
  45. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_h.imageset/pointEditerBtn_h@2x.png
  46. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_h.imageset/pointEditerBtn_h@3x.png
  47. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_n.imageset/Contents.json
  48. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_n.imageset/pointEditerBtn_n@2x.png
  49. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_n.imageset/pointEditerBtn_n@3x.png
  50. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/sliderTHBPin.imageset/Contents.json
  51. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/sliderTHBPin.imageset/sliderTHBPin@2x.png
  52. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/sliderTHBPin.imageset/sliderTHBPin@3x.png
  53. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_h.imageset/Contents.json
  54. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_h.imageset/speedstuck_h@2x.png
  55. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_h.imageset/speedstuck_h@3x.png
  56. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_n.imageset/Contents.json
  57. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_n.imageset/speedstuck_n@2x.png
  58. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_n.imageset/speedstuck_n@3x.png
  59. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_pause.imageset/Contents.json
  60. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_pause.imageset/stuckPoint_music_pause@2x.png
  61. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_pause.imageset/stuckPoint_music_pause@3x.png
  62. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_selected.imageset/Contents.json
  63. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_selected.imageset/stuckPoint_music_selected@2x.png
  64. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_selected.imageset/stuckPoint_music_selected@3x.png
  65. 22 0
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/videomk_music_default.imageset/Contents.json
  66. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/videomk_music_default.imageset/videomk_music_default@2x.png
  67. 二进制
      BFCommonKit/Assets/Resources/BFCommonKit.xcassets/videomk_music_default.imageset/videomk_music_default@3x.png
  68. 2 2
      BFCommonKit/Classes/BFCategorys/BFBundle+Ext.swift
  69. 113 0
      BFCommonKit/Classes/BFCategorys/BFUIButton+ext.swift
  70. 58 11
      BFCommonKit/Classes/BFCategorys/BFUIImage+Ext.swift
  71. 0 16
      BFCommonKit/Classes/BFConfig/PQBFConfig.swift
  72. 26 0
      BFCommonKit/Classes/BFEnums/Enums.swift
  73. 2 0
      BFCommonKit/Classes/BFUtility/PQCommonMethodUtil.swift

+ 0 - 0
BFCommonKit/Assets/Resources/Material.xcassets/Contents.json → BFCommonKit/Assets/Resources/BFCommonKit.xcassets/Contents.json


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedClosed.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedClosed.imageset/customSpeedClosed@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedClosed.imageset/customSpeedClosed@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedFast.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedFast.imageset/customSpeedFast@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedFast.imageset/customSpeedFast@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedSlow.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedSlow.imageset/customSpeedSlow@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/customSpeedSlow.imageset/customSpeedSlow@3x.png


+ 0 - 0
BFCommonKit/Assets/Resources/Material.xcassets/icon_detail_back.imageset/Contents.json → BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_detail_back.imageset/Contents.json


+ 0 - 0
BFCommonKit/Assets/Resources/Material.xcassets/icon_detail_back.imageset/icon_detail_back@2x.png → BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_detail_back.imageset/icon_detail_back@2x.png


+ 0 - 0
BFCommonKit/Assets/Resources/Material.xcassets/icon_detail_back.imageset/icon_detail_back@3x.png → BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_detail_back.imageset/icon_detail_back@3x.png


+ 21 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_search_delete.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_search_delete.imageset/icon_search_delete@2x.png


+ 21 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_search_s.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/icon_search_s.imageset/icon_search_s@2x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_h.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_h.imageset/jumpPoint_h@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_h.imageset/jumpPoint_h@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_n.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_n.imageset/jumpPoint_n@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/jumpPoint_n.imageset/jumpPoint_n@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/loading.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/loading.imageset/loading@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/loading.imageset/loading@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_h.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_h.imageset/musicEditerBtn_h@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_h.imageset/musicEditerBtn_h@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_n.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_n.imageset/musicEditerBtn_n@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicEditerBtn_n.imageset/musicEditerBtn_n@3x.png


+ 21 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicSearch.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/musicSearch.imageset/musicSearch@2x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_h.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_h.imageset/onlyMusic_h@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_h.imageset/onlyMusic_h@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_n.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_n.imageset/onlyMusic_n@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/onlyMusic_n.imageset/onlyMusic_n@3x.png


+ 0 - 0
BFCommonKit/Assets/Resources/Material.xcassets/placehold_image.imageset/Contents.json → BFCommonKit/Assets/Resources/BFCommonKit.xcassets/placehold_image.imageset/Contents.json


+ 0 - 0
BFCommonKit/Assets/Resources/Material.xcassets/placehold_image.imageset/placehold_image@2x.png → BFCommonKit/Assets/Resources/BFCommonKit.xcassets/placehold_image.imageset/placehold_image@2x.png


+ 0 - 0
BFCommonKit/Assets/Resources/Material.xcassets/placehold_image.imageset/placehold_image@3x.png → BFCommonKit/Assets/Resources/BFCommonKit.xcassets/placehold_image.imageset/placehold_image@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_h.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_h.imageset/pointEditerBtn_h@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_h.imageset/pointEditerBtn_h@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_n.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_n.imageset/pointEditerBtn_n@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/pointEditerBtn_n.imageset/pointEditerBtn_n@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/sliderTHBPin.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/sliderTHBPin.imageset/sliderTHBPin@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/sliderTHBPin.imageset/sliderTHBPin@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_h.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_h.imageset/speedstuck_h@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_h.imageset/speedstuck_h@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_n.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_n.imageset/speedstuck_n@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/speedstuck_n.imageset/speedstuck_n@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_pause.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_pause.imageset/stuckPoint_music_pause@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_pause.imageset/stuckPoint_music_pause@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_selected.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_selected.imageset/stuckPoint_music_selected@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/stuckPoint_music_selected.imageset/stuckPoint_music_selected@3x.png


+ 22 - 0
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/videomk_music_default.imageset/Contents.json

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

二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/videomk_music_default.imageset/videomk_music_default@2x.png


二进制
BFCommonKit/Assets/Resources/BFCommonKit.xcassets/videomk_music_default.imageset/videomk_music_default@3x.png


+ 2 - 2
BFCommonKit/Classes/BFCategorys/BFBundle+Ext.swift

@@ -18,7 +18,7 @@ public extension Bundle {
         var bundleURL = Bundle.main.url(forResource: "Frameworks", withExtension: nil)
         bundleURL = bundleURL?.appendingPathComponent("BFCommonKit").appendingPathExtension("framework")
         let bundle: Bundle = Bundle(url: bundleURL!)!
-        return bundle.url(forResource: "BFCommon_Resources", withExtension: "bundle")!
+        return bundle.url(forResource: "BFCommonKit_Resources", withExtension: "bundle")!
     }
 
     // bf main bundle
@@ -36,7 +36,7 @@ public extension Bundle {
         }
     }
 
-    class func current(moduleName: String,isAssets: Bool = true) -> Bundle? {
+    public class func current(moduleName: String,isAssets: Bool = true) -> Bundle? {
         guard let url = bundleURL(moduleName: moduleName,isAssets: isAssets) else {
             return nil
         }

+ 113 - 0
BFCommonKit/Classes/BFCategorys/BFUIButton+ext.swift

@@ -61,3 +61,116 @@ public extension UIButton {
         self.imageEdgeInsets = imageEdgeInsets
     }
 }
+
+/*
+   e.g.
+ let button = UIButton(frame: CGRect(x: 0, y: 300, width: 100, height: 22))
+ button.setTitle("按钮", for: .normal)
+ button.setTitleColor(.black, for: .normal)
+ button.eventInterval = 2.0  //  按的时间间隔, 设置为0的时候就是可以反复点击
+ view.addSubview(button)
+ 
+ */
+// MARK: - 按钮的反复点击问题 交换方法
+extension UIButton {
+
+    /// 对外交换方法的方法 AppDelegate Launch中使用
+    public  static func methodExchange() {
+        DispatchQueue.once(token: "UIButton") {
+            let originalSelector = Selector.sysFunc
+            let swizzledSelector = Selector.myFunc
+            changeMethod(originalSelector, swizzledSelector, self)
+        }
+    }
+    
+    
+    /// Runtime方法交换
+    ///
+    /// - Parameters:
+    ///   - original: 原方法
+    ///   - swizzled: 交换方法
+    ///   - object: 对象
+    public static func changeMethod(_ original: Selector, _ swizzled: Selector, _ object: AnyClass) -> () {
+        
+        guard let originalMethod = class_getInstanceMethod(object, original),
+              let swizzledMethod = class_getInstanceMethod(object, swizzled) else {
+            return
+        }
+        
+        let didAddMethod = class_addMethod(object, original, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))
+        if didAddMethod {
+            class_replaceMethod(object, swizzled, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
+        } else {
+            method_exchangeImplementations(originalMethod, swizzledMethod)
+        }
+    }
+    
+    
+    /// 结构体静态key
+    public struct UIButtonKey {
+        static var isEventUnavailableKey = "isEventUnavailableKey"
+        static var eventIntervalKey = "eventIntervalKey"
+    }
+    
+    /// 触发事件的间隔
+    public var eventInterval: TimeInterval {
+        get {
+            return (objc_getAssociatedObject(self, &UIButtonKey.eventIntervalKey) as? TimeInterval) ?? 0
+        }
+        set {
+            objc_setAssociatedObject(self, &UIButtonKey.eventIntervalKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        }
+    }
+    
+    /// 是否可以触发事件
+    fileprivate var isEventUnavailable: Bool {
+        get {
+            return (objc_getAssociatedObject(self, &UIButtonKey.isEventUnavailableKey) as? Bool) ?? false
+        }
+        set {
+            objc_setAssociatedObject(self, &UIButtonKey.isEventUnavailableKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        }
+    }
+    
+    /// 手写的set方法
+    ///
+    /// - Parameter isEventUnavailable: 事件是否可用
+    @objc private func setIsEventUnavailable(_ isEventUnavailable: Bool) {
+        self.isEventUnavailable = isEventUnavailable
+    }
+    
+    /// mySendAction
+    @objc fileprivate func mySendAction(_ action: Selector, to target: Any?, for event: UIEvent?) {
+        print("交换了按钮事件的方法")
+        
+        if isEventUnavailable == false {
+            isEventUnavailable = true
+            mySendAction(action, to: target, for: event)
+            perform(#selector(setIsEventUnavailable(_: )), with: false, afterDelay: eventInterval)
+        }
+    }
+}
+
+fileprivate extension Selector {
+    static let sysFunc = #selector(UIButton.sendAction(_:to:for:))
+    static let myFunc = #selector(UIButton.mySendAction(_:to:for:))
+}
+
+extension DispatchQueue {
+    private static var onceTracker = [String]()
+    
+    open class func once(token: String, block:() -> ()) {
+        //注意defer作用域,调用顺序——即一个作用域结束,该作用域中的defer语句自下而上调用。
+        objc_sync_enter(self)
+        defer {
+            print("线程锁退出")
+            objc_sync_exit(self)
+        }
+        
+        if onceTracker.contains(token) {
+            return
+        }
+        onceTracker.append(token)
+        block()
+    }
+}

+ 58 - 11
BFCommonKit/Classes/BFCategorys/BFUIImage+Ext.swift

@@ -8,19 +8,44 @@
 
 import Foundation
 
-// MARK: - 刷新控件类型
-
-/// 刷新控件类型
-public enum moveDirection {
-    case moveDirectionNormal
-    case moveDirectionUp
-    case moveDirectionDown
-    case moveDirectionRight
-    case moveDirectionLeft
-}
-
 public extension UIImage {
     // 从BFframwork bundle 中取图片
+    static func mc_loadImage(_ imageName: String, from bundleName: String, in podName: String) -> UIImage? {
+            
+            var associateBundleURL = Bundle.main.url(forResource: "Frameworks", withExtension: nil)
+            associateBundleURL = associateBundleURL?.appendingPathComponent(podName)
+            associateBundleURL = associateBundleURL?.appendingPathExtension("framework")
+            
+            
+            if associateBundleURL == nil {
+                print("获取bundle失败")
+                return nil
+            }
+            
+            let associateBunle = Bundle.init(url: associateBundleURL!)
+            associateBundleURL = associateBunle?.url(forResource: bundleName, withExtension: "bundle")
+            
+            if associateBundleURL != nil {
+                let bundle = Bundle.init(url: associateBundleURL!)
+                let scale = Int(UIScreen.main.scale)
+                
+                // 适配2x还是3x图片
+                let name = imageName + "@" + String(scale) + "x"
+                let path = bundle?.path(forResource: name, ofType: "png")
+                
+                if path == nil {
+                    print("获取bundle失败")
+                    return nil
+                }
+                let image1 = UIImage.init(contentsOfFile: path!)
+                return image1
+
+            } else {
+                return nil
+            }
+        }
+    
+    
     func BF_Image(named: String) -> UIImage {
         let image: UIImage = UIImage(named: named, in: Bundle().BF_mainbundle(), compatibleWith: nil) ?? UIImage()
         return image
@@ -246,4 +271,26 @@ public extension UIImage {
         UIGraphicsEndImageContext()
         return tintedImage
     }
+    
+    /// 保存图片文件到指定目录, 如果目录已经存在会先删除老文件
+    /// - Parameters:
+    ///   - currentImage: 图片数据
+    ///   - persent: 质量
+    ///   - outFilePath: 输出目录
+    class func saveImage(currentImage: UIImage,outFilePath: String) {
+        // 文件存在先删除老文件
+        if FileManager.default.fileExists(atPath: outFilePath) {
+            do {
+                try FileManager.default.removeItem(at: NSURL.fileURL(withPath: outFilePath))
+            } catch {
+                BFLog(message: "删除文件出错 == \(error) \(outFilePath)")
+            }
+        }
+        
+        if let imageData = currentImage.pngData() {
+            try? imageData.write(to: URL(fileURLWithPath: outFilePath))
+            print("保存图片成功到:filePath=\(outFilePath)")
+        }
+    }
+
 }

+ 0 - 16
BFCommonKit/Classes/BFConfig/PQBFConfig.swift

@@ -7,22 +7,6 @@
 
 import UIKit
 
-// MARK: - 风格
-
-/// 风格
-public  enum  styleColor: String {
-    case nomal = "#F1034D"
-    case green = "#3DC1C1"
-    case red = "#EE0051"
-}
-
-// MARK: - statusBar
-
-/// statusBar
-public enum  statusBarStyle {
-    case light
-    case dark
-}
 public class PQBFConfig: NSObject {
     public static let shared = PQBFConfig()
     /**

+ 26 - 0
BFCommonKit/Classes/BFEnums/Enums.swift

@@ -621,6 +621,15 @@ public  enum  REFRESH_TYPE {
     case REFRESH_TYPE_AUTOFOOTER // 尾部
 }
 
+/// 滑动方向
+public  enum  moveDirection {
+    case moveDirectionNormal
+    case moveDirectionUp
+    case moveDirectionDown
+    case moveDirectionRight
+    case moveDirectionLeft
+}
+
 // MARK: - 关注跟粉丝cell类型
 
 /// 关注跟粉丝cell类型
@@ -901,3 +910,20 @@ public  enum  adPosition: String {
     case videoFlowAd // 票圈视频 App 视频流广告位
 }
 
+
+// MARK: - 风格
+
+/// 风格
+public  enum  styleColor: String {
+    case nomal = "#F1034D"
+    case green = "#3DC1C1"
+    case red = "#EE0051"
+}
+
+// MARK: - statusBar
+
+/// statusBar
+public enum  statusBarStyle {
+    case light
+    case dark
+}

+ 2 - 0
BFCommonKit/Classes/BFUtility/PQCommonMethodUtil.swift

@@ -14,6 +14,8 @@ import Kingfisher
 import KingfisherWebP
 import Photos
 import Toast_Swift
+import RealmSwift
+
 /// Home文件地址
 public let homeDirectory = NSHomeDirectory()
 /// docdocumens文件地址