Browse Source

【代码修改】1、健康界面计步界面修改成半圆形展示;2、设备界面功能列表增加图片展示;3、运动界面选择时间样式修改;4、部分二级界面修改。

master
公司电脑 1 year ago
parent
commit
76566a3fc9
  1. 30
      FireBoltt.xcodeproj/project.pbxproj
  2. 2
      FireBoltt.xcodeproj/xcshareddata/xcschemes/FireBoltt.xcscheme
  3. BIN
      FireBoltt.xcworkspace/xcuserdata/ecell.xcuserdatad/UserInterfaceState.xcuserstate
  4. 147
      FireBoltt.xcworkspace/xcuserdata/ecell.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  5. 26
      FireBoltt/Const/Enum.swift
  6. 16
      FireBoltt/FB_Common/CommonTableViewCell.xib
  7. 6
      FireBoltt/FB_Common/DateSwitchHeaderView.swift
  8. 32
      FireBoltt/FB_Modules/FB_Device/Controller/DeviceViewControllers.swift
  9. 7
      FireBoltt/FB_Modules/FB_Device/Controller/NoticeViewConrtollers.swift
  10. 25
      FireBoltt/FB_Modules/FB_Device/Controller/PaymentCodeViewControllers.swift
  11. 22
      FireBoltt/FB_Modules/FB_Device/Controller/WeChatSportViewControllers.swift
  12. 13
      FireBoltt/FB_Modules/FB_Device/Controller/businessCardViewControllers.swift
  13. 58
      FireBoltt/FB_Modules/FB_Device/View/DeviceFooterView.swift
  14. 40
      FireBoltt/FB_Modules/FB_Device/View/DeviceHeaderView.swift
  15. 7
      FireBoltt/FB_Modules/FB_Device/ViewModel/DeviceViewModels.swift
  16. 3
      FireBoltt/FB_Modules/FB_Health/Controller/HealthHomeViewControllers.swift
  17. 30
      FireBoltt/FB_Modules/FB_Health/ProgressBar/UIColor+Extension.h
  18. 66
      FireBoltt/FB_Modules/FB_Health/ProgressBar/UIColor+Extension.m
  19. 33
      FireBoltt/FB_Modules/FB_Health/ProgressBar/XFGradientProgressView.h
  20. 167
      FireBoltt/FB_Modules/FB_Health/ProgressBar/XFGradientProgressView.m
  21. 265
      FireBoltt/FB_Modules/FB_Health/View/HealthStepItemCell.swift
  22. 11
      FireBoltt/FB_Modules/FB_My/Controller/MineViewController.swift
  23. 7
      FireBoltt/FB_Modules/FB_My/Controller/TargetVC.swift
  24. 7
      FireBoltt/FB_Modules/FB_My/Controller/UnitSetVC.swift
  25. 18
      FireBoltt/FB_Modules/FB_My/MineHeaderView.swift
  26. 13
      FireBoltt/FB_Modules/FB_Sport/Controller/SportViewControllers.swift
  27. 2
      FireBoltt/FB_Modules/FB_Sport/View/SportDetailHeaderView.swift
  28. 11
      FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.swift
  29. 159
      FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.xib
  30. 2
      FireBoltt/FB_Modules/FB_Sport/View/SportHistoryCategoryView.swift
  31. 4
      FireBoltt/FB_Modules/FB_Sport/View/SportTrackView.swift
  32. 0
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/Contents.json
  33. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/button_unbind.imageset/Contents.json
  34. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/button_unbind.imageset/button_unbind@2x.png
  35. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/button_unbind.imageset/button_unbind@3x.png
  36. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_DND.imageset/Contents.json
  37. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_DND.imageset/icon_DND@2x.png
  38. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_DND.imageset/icon_DND@3x.png
  39. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_app_notification.imageset/Contents.json
  40. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_app_notification.imageset/icon_app_notification@2x.png
  41. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_app_notification.imageset/icon_app_notification@3x.png
  42. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_bright_screen.imageset/Contents.json
  43. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_bright_screen.imageset/icon_bright_screen@2x.png
  44. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_bright_screen.imageset/icon_bright_screen@3x.png
  45. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_call_notification.imageset/Contents.json
  46. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_call_notification.imageset/icon_call_notification@2x.png
  47. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_call_notification.imageset/icon_call_notification@3x.png
  48. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_camera.imageset/Contents.json
  49. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_camera.imageset/icon_camera@2x.png
  50. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_camera.imageset/icon_camera@3x.png
  51. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_card.imageset/Contents.json
  52. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_card.imageset/icon_card@2x.png
  53. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_card.imageset/icon_card@3x.png
  54. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_devide_dial.imageset/Contents.json
  55. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_devide_dial.imageset/icon_devide_dial@2x.png
  56. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_devide_dial.imageset/icon_devide_dial@3x.png
  57. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_drink.imageset/Contents.json
  58. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_drink.imageset/icon_drink@2x.png
  59. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_drink.imageset/icon_drink@3x.png
  60. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_find.imageset/Contents.json
  61. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_find.imageset/icon_find@2x.png
  62. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_find.imageset/icon_find@3x.png
  63. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_hr.imageset/Contents.json
  64. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_hr.imageset/icon_hr@2x.png
  65. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_hr.imageset/icon_hr@3x.png
  66. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_message_notification.imageset/Contents.json
  67. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_message_notification.imageset/icon_message_notification@2x.png
  68. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_message_notification.imageset/icon_message_notification@3x.png
  69. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_music.imageset/Contents.json
  70. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_music.imageset/icon_music@2x.png
  71. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_music.imageset/icon_music@3x.png
  72. 0
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_phonebook.imageset/Contents.json
  73. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_phonebook.imageset/icon_phonebook@2x.png
  74. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_phonebook.imageset/icon_phonebook@3x.png
  75. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_remind.imageset/Contents.json
  76. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_remind.imageset/icon_remind@2x.png
  77. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_remind.imageset/icon_remind@3x.png
  78. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_sedentary.imageset/Contents.json
  79. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_sedentary.imageset/icon_sedentary@2x.png
  80. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_sedentary.imageset/icon_sedentary@3x.png
  81. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_temperature.imageset/Contents.json
  82. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_temperature.imageset/icon_temperature@2x.png
  83. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_temperature.imageset/icon_temperature@3x.png
  84. 4
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_version.imageset/Contents.json
  85. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_version.imageset/icon_version@2x.png
  86. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_version.imageset/icon_version@3x.png
  87. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_wallet.imageset/Contents.json
  88. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_wallet.imageset/icon_wallet@2x.png
  89. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_wallet.imageset/icon_wallet@3x.png
  90. 22
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/picture_bg.imageset/Contents.json
  91. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/picture_bg.imageset/picture_bg@2x.png
  92. BIN
      FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/picture_bg.imageset/picture_bg@3x.png
  93. 22
      FireBoltt/Resource/Assets.xcassets/HealthImg/icon_calories.imageset/Contents.json
  94. BIN
      FireBoltt/Resource/Assets.xcassets/HealthImg/icon_calories.imageset/icon_calories@2x.png
  95. BIN
      FireBoltt/Resource/Assets.xcassets/HealthImg/icon_calories.imageset/icon_calories@3x.png
  96. 22
      FireBoltt/Resource/Assets.xcassets/HealthImg/icon_distance.imageset/Contents.json
  97. BIN
      FireBoltt/Resource/Assets.xcassets/HealthImg/icon_distance.imageset/icon_distance@2x.png
  98. BIN
      FireBoltt/Resource/Assets.xcassets/HealthImg/icon_distance.imageset/icon_distance@3x.png
  99. 0
      FireBoltt/Resource/Assets.xcassets/HealthImg/icon_step.imageset/Contents.json
  100. BIN
      FireBoltt/Resource/Assets.xcassets/HealthImg/icon_step.imageset/icon_step@2x.png
  101. Some files were not shown because too many files have changed in this diff Show More

30
FireBoltt.xcodeproj/project.pbxproj

@ -184,6 +184,9 @@ @@ -184,6 +184,9 @@
61DF3C482AAF2F4B00E69AE9 /* BViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61DF3C452AAF2F4B00E69AE9 /* BViewController.swift */; };
61DF3C4D2AAF2F5300E69AE9 /* MagicTabbarTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61DF3C4A2AAF2F5300E69AE9 /* MagicTabbarTransition.swift */; };
61DF3C4E2AAF2F5300E69AE9 /* OtherViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61DF3C4B2AAF2F5300E69AE9 /* OtherViewController.swift */; };
61DF3C542AB1460400E69AE9 /* UIColor+Extension.m in Sources */ = {isa = PBXBuildFile; fileRef = 61DF3C522AB1460300E69AE9 /* UIColor+Extension.m */; };
61DF3C552AB1460400E69AE9 /* XFGradientProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61DF3C532AB1460300E69AE9 /* XFGradientProgressView.m */; };
61DF3C572AB1A5EA00E69AE9 /* DeviceFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61DF3C562AB1A5EA00E69AE9 /* DeviceFooterView.swift */; };
716B2AAA2AA8D265006F17EB /* BlueToothItemFireBoltt.m in Sources */ = {isa = PBXBuildFile; fileRef = 716B2A992AA8D264006F17EB /* BlueToothItemFireBoltt.m */; };
716B2AAB2AA8D265006F17EB /* BluetoothToolFireBoltt.m in Sources */ = {isa = PBXBuildFile; fileRef = 716B2A9B2AA8D264006F17EB /* BluetoothToolFireBoltt.m */; };
716B2AAC2AA8D265006F17EB /* L2DataParseFireBoltt.m in Sources */ = {isa = PBXBuildFile; fileRef = 716B2A9C2AA8D264006F17EB /* L2DataParseFireBoltt.m */; };
@ -670,6 +673,11 @@ @@ -670,6 +673,11 @@
61DF3C452AAF2F4B00E69AE9 /* BViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BViewController.swift; sourceTree = "<group>"; };
61DF3C4A2AAF2F5300E69AE9 /* MagicTabbarTransition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MagicTabbarTransition.swift; sourceTree = "<group>"; };
61DF3C4B2AAF2F5300E69AE9 /* OtherViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OtherViewController.swift; sourceTree = "<group>"; };
61DF3C502AB1460300E69AE9 /* UIColor+Extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+Extension.h"; sourceTree = "<group>"; };
61DF3C512AB1460300E69AE9 /* XFGradientProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XFGradientProgressView.h; sourceTree = "<group>"; };
61DF3C522AB1460300E69AE9 /* UIColor+Extension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+Extension.m"; sourceTree = "<group>"; };
61DF3C532AB1460300E69AE9 /* XFGradientProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XFGradientProgressView.m; sourceTree = "<group>"; };
61DF3C562AB1A5EA00E69AE9 /* DeviceFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceFooterView.swift; sourceTree = "<group>"; };
716B2A812AA8CA41006F17EB /* FireBoltt-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FireBoltt-Bridging-Header.h"; sourceTree = "<group>"; };
716B2A992AA8D264006F17EB /* BlueToothItemFireBoltt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BlueToothItemFireBoltt.m; sourceTree = "<group>"; };
716B2A9A2AA8D264006F17EB /* BluetoothToolFireBoltt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BluetoothToolFireBoltt.h; sourceTree = "<group>"; };
@ -1258,6 +1266,17 @@ @@ -1258,6 +1266,17 @@
path = tv;
sourceTree = "<group>";
};
61DF3C4F2AB1460300E69AE9 /* ProgressBar */ = {
isa = PBXGroup;
children = (
61DF3C502AB1460300E69AE9 /* UIColor+Extension.h */,
61DF3C522AB1460300E69AE9 /* UIColor+Extension.m */,
61DF3C512AB1460300E69AE9 /* XFGradientProgressView.h */,
61DF3C532AB1460300E69AE9 /* XFGradientProgressView.m */,
);
path = ProgressBar;
sourceTree = "<group>";
};
CC560CDD2425FDAF00578115 /* FB_Bluetooth */ = {
isa = PBXGroup;
children = (
@ -1360,6 +1379,7 @@ @@ -1360,6 +1379,7 @@
CCA7A2FB245BF6E20068F1BB /* DialPushCell.swift */,
CCA7A2FC245BF6E30068F1BB /* DialPushCell.xib */,
CC560D1B2427A58900578115 /* DeviceHeaderView.swift */,
61DF3C562AB1A5EA00E69AE9 /* DeviceFooterView.swift */,
CC560D3024306CA000578115 /* DoubleTimePickerCell.swift */,
CC560D2F24306CA000578115 /* SinglePickerCell.swift */,
);
@ -1782,10 +1802,11 @@ @@ -1782,10 +1802,11 @@
CCE8FFDD241352CC00E5E23D /* FB_Health */ = {
isa = PBXGroup;
children = (
CC6B306E244B4C8A00E4927E /* HealthSection.swift */,
CCDD65D1243B07BA00263642 /* Controller */,
CCDD65D5243B088F00263642 /* View */,
CCDD65D2243B07C400263642 /* ViewModel */,
61DF3C4F2AB1460300E69AE9 /* ProgressBar */,
CC6B306E244B4C8A00E4927E /* HealthSection.swift */,
);
path = FB_Health;
sourceTree = "<group>";
@ -2058,6 +2079,7 @@ @@ -2058,6 +2079,7 @@
CC5C7AB926CEAD1D00B2F1F2 /* FRIBinFileCheck.m in Sources */,
6110118D29C048BE00F4DFDF /* MusicModel.m in Sources */,
CCE8FFDB2413520000E5E23D /* HomeTabBarController.swift in Sources */,
61DF3C572AB1A5EA00E69AE9 /* DeviceFooterView.swift in Sources */,
CC560D6A243656EF00578115 /* AboutVC.swift in Sources */,
CCE8FFD22413511500E5E23D /* String+GetSize.swift in Sources */,
CCE8FFB224132DD400E5E23D /* Application.swift in Sources */,
@ -2216,6 +2238,7 @@ @@ -2216,6 +2238,7 @@
CC560D3424306DAC00578115 /* MultipleSectionModel.swift in Sources */,
CC560D4A2430E99F00578115 /* Tool.swift in Sources */,
CCDD65F52443136900263642 /* NoDataChartView.swift in Sources */,
61DF3C542AB1460400E69AE9 /* UIColor+Extension.m in Sources */,
CCE8FFB42413344D00E5E23D /* Navigator.swift in Sources */,
617D2ECE2AA1CE53003C2D03 /* tvyourActionXfnjse.m in Sources */,
CC560D5A2432490900578115 /* NewAlarmListViewModel.swift in Sources */,
@ -2297,6 +2320,7 @@ @@ -2297,6 +2320,7 @@
CCDF4DED241E4EC0000AFA5E /* UIImagePickerController+RxCreate.swift in Sources */,
61DF3C352AAF27C300E69AE9 /* CollectionReusableFooterView.swift in Sources */,
61DF3C1A2AAF23E600E69AE9 /* LTEmitterView.swift in Sources */,
61DF3C552AB1460400E69AE9 /* XFGradientProgressView.m in Sources */,
CC560D2A243061A300578115 /* NoticeViewModels.swift in Sources */,
617D2EE02AA1CE53003C2D03 /* qMSB_Class_Bevtyx.m in Sources */,
CCD86EFB254423D400E64954 /* RealTimeModel.swift in Sources */,
@ -2531,7 +2555,7 @@ @@ -2531,7 +2555,7 @@
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = "$(inherited)";
MARKETING_VERSION = 1.1.0;
MARKETING_VERSION = 1.1.1;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.ecell.www.fireboltts;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -2575,7 +2599,7 @@ @@ -2575,7 +2599,7 @@
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = "$(inherited)";
MARKETING_VERSION = 1.1.0;
MARKETING_VERSION = 1.1.1;
ONLY_ACTIVE_ARCH = NO;
PRODUCT_BUNDLE_IDENTIFIER = com.ecell.www.fireboltts;
PRODUCT_NAME = "$(TARGET_NAME)";

2
FireBoltt.xcodeproj/xcshareddata/xcschemes/FireBoltt.xcscheme

@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"

BIN
FireBoltt.xcworkspace/xcuserdata/ecell.xcuserdatad/UserInterfaceState.xcuserstate generated

Binary file not shown.

147
FireBoltt.xcworkspace/xcuserdata/ecell.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@ -0,0 +1,147 @@ @@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
uuid = "FB9FE57D-A05C-4F25-A025-8FAD3B37C2C9"
type = "0"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "2606C474-3C07-44B7-9566-F88837835AE5"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "FireBoltt/FB_Modules/FB_Health/View/HealthStepCell.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
landmarkName = "fb_titleLabel"
landmarkType = "24">
<Locations>
<Location
uuid = "2606C474-3C07-44B7-9566-F88837835AE5 - 505b34cd7c13c27a"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "FireBoltt.HealthStepCell.fb_titleLabel.getter : __C.UILabel"
moduleName = "FireBoltt"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/FireBoltt_ios/FireBoltt/FB_Modules/FB_Health/View/HealthStepCell.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
offsetFromSymbolStart = "156">
</Location>
<Location
uuid = "2606C474-3C07-44B7-9566-F88837835AE5 - 8a693b7dabf4100e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 () -&gt; __C.UILabel in FireBoltt.HealthStepCell.fb_titleLabel.getter : __C.UILabel"
moduleName = "FireBoltt"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/FireBoltt_ios/FireBoltt/FB_Modules/FB_Health/View/HealthStepCell.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "14"
endingLineNumber = "14"
offsetFromSymbolStart = "24">
</Location>
<Location
uuid = "2606C474-3C07-44B7-9566-F88837835AE5 - 423a503f08182e4e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "FireBoltt.HealthStepCell.fb_titleLabel.setter : __C.UILabel"
moduleName = "FireBoltt"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/FireBoltt_ios/FireBoltt/FB_Modules/FB_Health/View/HealthStepCell.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
offsetFromSymbolStart = "108">
</Location>
<Location
uuid = "2606C474-3C07-44B7-9566-F88837835AE5 - a757aa22d42d1b7d"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "FireBoltt.HealthStepCell.fb_titleLabel.modify : __C.UILabel"
moduleName = "FireBoltt"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/FireBoltt_ios/FireBoltt/FB_Modules/FB_Health/View/HealthStepCell.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
offsetFromSymbolStart = "0">
</Location>
<Location
uuid = "2606C474-3C07-44B7-9566-F88837835AE5 - 3373665130b7f94e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "FireBoltt.HealthStepCell.fb_titleLabel.modify : __C.UILabel with unmangled suffix &quot;.resume.0&quot;"
moduleName = "FireBoltt"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/FireBoltt_ios/FireBoltt/FB_Modules/FB_Health/View/HealthStepCell.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
offsetFromSymbolStart = "20">
</Location>
<Location
uuid = "2606C474-3C07-44B7-9566-F88837835AE5 - 57ddc4614a5b5a49"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "FireBoltt.HealthStepCell.init(style: __C.UITableViewCellStyle, reuseIdentifier: Swift.Optional&lt;Swift.String&gt;) -&gt; FireBoltt.HealthStepCell"
moduleName = "FireBoltt"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/FireBoltt_ios/FireBoltt/FB_Modules/FB_Health/View/HealthStepCell.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
offsetFromSymbolStart = "168">
</Location>
<Location
uuid = "2606C474-3C07-44B7-9566-F88837835AE5 - 8b601723f0524b57"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "FireBoltt.HealthStepCell.init(coder: __C.NSCoder) -&gt; Swift.Optional&lt;FireBoltt.HealthStepCell&gt;"
moduleName = "FireBoltt"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/FireBoltt_ios/FireBoltt/FB_Modules/FB_Health/View/HealthStepCell.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "13"
endingLineNumber = "13"
offsetFromSymbolStart = "144">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "0F0451D5-6F0D-4617-8E19-BA98338D2957"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "FireBoltt/FB_Modules/FB_My/Controller/MineViewController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "54"
endingLineNumber = "54"
landmarkName = "makeUI()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

26
FireBoltt/Const/Enum.swift

@ -38,6 +38,32 @@ enum FunctionTypeFireBoltt { @@ -38,6 +38,32 @@ enum FunctionTypeFireBoltt {
}
}
func imgName() -> String {
switch self {
case .findPhone: return "icon_find" ///
case .handUp: return "icon_bright_screen" ///
case .callRemind: return "icon_call_notification" ///
case .messageRemind: return "icon_message_notification" ///
case .remoteCamera: return "icon_camera" ///
case .notice: return "icon_app_notification" ///
case .heartCheck: return "icon_hr" ///
case .dialPush: return "icon_devide_dial" ///
case .firmwareUpgrade: return "icon_version" ///
//case .unBinding: return "" ///
case .notDisturb: return "icon_DND" ///
case .alarmClock: return "icon_remind" ///
case .sedentary: return "icon_sedentary" ///
case .drinkRemind: return "icon_drink" ///
case .tempeartureCheck: return "icon_temperature" ///
case .wechatSport: return "fb_icon_wechat" ///
case .telephoneBook: return "icon_phonebook" ///
case .businessCard: return "icon_card" ///
case .theWallet: return "icon_wallet" ///
case .music: return "icon_music" ///
default: return ""
}
}
func isSwitch() -> Bool {
switch self {
case .handUp, .callRemind, .messageRemind:

16
FireBoltt/FB_Common/CommonTableViewCell.xib

@ -1,13 +1,15 @@ @@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="107" id="KGk-i7-Jjw" customClass="CommonTableViewCell" customModule="Lookfit" customModuleProvider="target">
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="107" id="KGk-i7-Jjw" customClass="CommonTableViewCell" customModule="FireBoltt" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
@ -21,10 +23,10 @@ @@ -21,10 +23,10 @@
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="zBZ-FD-FFu">
<rect key="frame" x="15" y="10" width="30" height="30"/>
<rect key="frame" x="15" y="12" width="26" height="26"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="Mt4-Dz-o04"/>
<constraint firstAttribute="width" constant="30" id="pxk-Tb-H1a"/>
<constraint firstAttribute="height" constant="26" id="Mt4-Dz-o04"/>
<constraint firstAttribute="width" constant="26" id="pxk-Tb-H1a"/>
</constraints>
</imageView>
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fJY-Ot-bc9">
@ -69,7 +71,7 @@ @@ -69,7 +71,7 @@
<constraint firstItem="zBZ-FD-FFu" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="10A-Iz-6Zc"/>
<constraint firstAttribute="trailing" secondItem="fJY-Ot-bc9" secondAttribute="trailing" constant="20" id="1Kz-qf-M51"/>
<constraint firstAttribute="trailing" secondItem="Obd-IW-3Oc" secondAttribute="trailing" constant="20" id="4T3-N5-aqb"/>
<constraint firstItem="bT6-ih-Veu" firstAttribute="leading" secondItem="zBZ-FD-FFu" secondAttribute="trailing" constant="15" id="5AC-Cm-Jjz"/>
<constraint firstItem="bT6-ih-Veu" firstAttribute="leading" secondItem="zBZ-FD-FFu" secondAttribute="trailing" constant="19" id="5AC-Cm-Jjz"/>
<constraint firstItem="mkC-Vv-FCc" firstAttribute="top" secondItem="tM0-FZ-c3Q" secondAttribute="top" constant="3" id="8Ed-YJ-vHh"/>
<constraint firstItem="fJY-Ot-bc9" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="8P4-kO-m6V"/>
<constraint firstItem="mkC-Vv-FCc" firstAttribute="leading" secondItem="tM0-FZ-c3Q" secondAttribute="trailing" id="DSK-Ns-9jl"/>
@ -101,7 +103,7 @@ @@ -101,7 +103,7 @@
</tableViewCell>
</objects>
<resources>
<image name="fb_icon_tick" width="128" height="128"/>
<image name="redPotint" width="24" height="24"/>
<image name="fb_icon_tick" width="18" height="15"/>
<image name="redPotint" width="21.333333969116211" height="21.333333969116211"/>
</resources>
</document>

6
FireBoltt/FB_Common/DateSwitchHeaderView.swift

@ -29,11 +29,11 @@ class DateSwitchHeaderView: UIView { @@ -29,11 +29,11 @@ class DateSwitchHeaderView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
let segBackView = UIView(frame: CGRect(x: 0, y: 0, width: self.width, height: kScaleHeight(45.0)))
let segBackView = UIView(frame: CGRect(x: 0, y: 0, width: self.width, height: kScaleHeight(50.0)))
segBackView.backgroundColor = UIColor.white
self.addSubview(segBackView)
//segment
segControl = DateSegmentView(frame: CGRect.init(x: 0, y: kScaleHeight(15), width: kScaleWidth(258), height: kScaleWidth(30)))
segControl = DateSegmentView(frame: CGRect.init(x: 0, y: 15, width: kScaleWidth(258), height: kScaleWidth(30)))
segControl.centerX = segBackView.center.x
segControl.titles = ["".localized, "".localized, "".localized];
segControl.selectedClosure = { [weak self] index in
@ -43,7 +43,7 @@ class DateSwitchHeaderView: UIView { @@ -43,7 +43,7 @@ class DateSwitchHeaderView: UIView {
segBackView.addSubview(segControl)
//
dateSelectedView = DateSelectView(frame: CGRect(x: 0, y: segBackView.height, width: self.width, height: self.height - segBackView.height))
dateSelectedView = DateSelectView(frame: CGRect(x: 0, y: segBackView.bottom, width: self.width, height: self.height - segBackView.height))
dateSelectedView.backgroundColor = UIColor.white
dateSelectedView.dateStr = DateClass.todayString().pregReplace(pattern: "-", with: "/")
dateSelectedView.dateSelectClosure = { [weak self] (dateStr, isforward) in

32
FireBoltt/FB_Modules/FB_Device/Controller/DeviceViewControllers.swift

@ -19,6 +19,12 @@ class DeviceViewControllers: TableViewController { @@ -19,6 +19,12 @@ class DeviceViewControllers: TableViewController {
var isCamera: Bool = false
var isOpenCamera: Bool = false
lazy var footerView: DeviceFooterView = {
let view = DeviceFooterView(frame: CGRect(x: 0, y: 0, width: kScreenW, height: kScaleWidth(80)))
view.unBindingBtn.addTarget(self, action: #selector(unBindingTouch), for: .touchUpInside)
return view
}()
lazy var noDeviceImg: UIImageView = {
return UIImageView(image: R.image.fb_default_device_icon())
}()
@ -37,7 +43,7 @@ class DeviceViewControllers: TableViewController { @@ -37,7 +43,7 @@ class DeviceViewControllers: TableViewController {
lazy var fbbindingBtn: UIButton = {
let btn = UIButton()
btn.gradient(colors: [kHexColor(0x59AAFF), kHexColor(0x2B75FF)], startPoint: CGPoint(x: 0, y: 0.5), endPoint: CGPoint(x: 1, y: 0.5), locations: [0, 1], autoLaoutFrame: CGRect(x: 0, y: 0, width: kScaleWidth(190), height: kScaleWidth(45)))
btn.layer.cornerRadius = 22.5
btn.layer.cornerRadius = kScaleWidth(22.5)
btn.layer.masksToBounds = true
btn.setTitle(MultiLanguageKey_FB.bindingDeviceFB.localized, for: .normal)
btn.titleLabel?.font = SystemRegularFont(18)
@ -62,8 +68,13 @@ class DeviceViewControllers: TableViewController { @@ -62,8 +68,13 @@ class DeviceViewControllers: TableViewController {
super.makeUI()
isTitleCenter = true
navigationTitle = MultiLanguageKey_FB.mineDeviceFB.localized
tableViewStyle = .grouped
if #available(iOS 13.0, *) {
tableViewStyle = .insetGrouped
} else {
tableViewStyle = .grouped
}
tableView.backgroundColor = kHexColor(0xFAFAFA)
tableView.rowHeight = kScaleWidth(52)
view.addSubview(noDeviceImg)
view.addSubview(fbbindingTipLabel)
view.addSubview(fbbindingBtn)
@ -71,6 +82,10 @@ class DeviceViewControllers: TableViewController { @@ -71,6 +82,10 @@ class DeviceViewControllers: TableViewController {
//
fbheaderView.backgroundColor = .white
tableView.tableHeaderView = fbheaderView
footerView.backgroundColor = .clear
tableView.tableFooterView = footerView
layoutUI()
}
@ -95,7 +110,7 @@ class DeviceViewControllers: TableViewController { @@ -95,7 +110,7 @@ class DeviceViewControllers: TableViewController {
}
fbheaderView.snp.makeConstraints { (make) in
make.width.equalTo(kScreenW)
make.height.equalTo(kScaleWidth(85) + 10)
make.height.equalTo(kScaleWidth(150) + 10)
}
}
@ -357,6 +372,17 @@ class DeviceViewControllers: TableViewController { @@ -357,6 +372,17 @@ class DeviceViewControllers: TableViewController {
}
@objc func unBindingTouch(){
print("解绑")
showAlert(self, MultiLanguageKey_FB.unbindingTipFB.localized, cancelText: MultiLanguageKey_FB.cancelFB.localized, confirmText: MultiLanguageKey_FB.confirmFB.localized) { (result) in
if result {
UserDefaultsManagerFrieBoltt.deleteDeviceInfo()
BluetoothFireBoltt.shareInstance()?.disConnectedCurrenDevice(true)
kNotificationCenter.post(name: NSNotification.Name(UnBindingDeviceFireBoltt), object: nil)
}
}
}
}
// MARK: -

7
FireBoltt/FB_Modules/FB_Device/Controller/NoticeViewConrtollers.swift

@ -21,7 +21,12 @@ class NoticeViewConrtollers: TableViewController { @@ -21,7 +21,12 @@ class NoticeViewConrtollers: TableViewController {
override func makeUI() {
super.makeUI()
tableViewStyle = .grouped
if #available(iOS 13.0, *) {
tableViewStyle = .insetGrouped
} else {
// Fallback on earlier versions
tableViewStyle = .grouped
}
tableView.backgroundColor = kHexColor(0xFAFAFA)
view.addSubview(tableView)
layoutUI()

25
FireBoltt/FB_Modules/FB_Device/Controller/PaymentCodeViewControllers.swift

@ -32,14 +32,18 @@ class PaymentCodeViewControllers: ViewController { @@ -32,14 +32,18 @@ class PaymentCodeViewControllers: ViewController {
override func viewDidLoad() {
super.viewDidLoad()
let label:UILabel = UILabel(frame: CGRect(x: 25, y: 15, width: view.frame.size.width, height: 18))
label.textColor = kHexColor(0x2A2A2A)
label.font = SystemSemiboldFont(16)
label.text = "收款".localized
self.view.addSubview(label);
// let label:UILabel = UILabel(frame: CGRect(x: 25, y: 15, width: view.frame.size.width, height: 18))
// label.textColor = kHexColor(0x2A2A2A)
// label.font = SystemSemiboldFont(16)
// label.text = ":".localized
// self.view.addSubview(label);
//
self.tableView = UITableView(frame: CGRect(x: 0, y: 48, width: Int(view.frame.size.width), height: 50*payArr.count), style:UITableView.Style.plain)
if #available(iOS 13.0, *) {
self.tableView = UITableView(frame: CGRect(x: 0, y: 0, width: Int(view.frame.size.width), height: Int(kScreenH)), style:UITableView.Style.insetGrouped)
} else {
// Fallback on earlier versions
}
self.tableView!.delegate = self
self.tableView!.dataSource = self
self.tableView!.rowHeight = 50
@ -89,7 +93,16 @@ extension PaymentCodeViewControllers: UITableViewDataSource { @@ -89,7 +93,16 @@ extension PaymentCodeViewControllers: UITableViewDataSource {
cell.accessoryType = UITableViewCell.AccessoryType.disclosureIndicator
return cell
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 40
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return nil
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return "收款:"
}
}

22
FireBoltt/FB_Modules/FB_Device/Controller/WeChatSportViewControllers.swift

@ -37,6 +37,8 @@ class WeChatSportViewControllerss: ViewController { @@ -37,6 +37,8 @@ class WeChatSportViewControllerss: ViewController {
return view
}()
var button = UIView()
override func viewDidLoad() {
super.viewDidLoad()
}
@ -55,6 +57,9 @@ class WeChatSportViewControllerss: ViewController { @@ -55,6 +57,9 @@ class WeChatSportViewControllerss: ViewController {
let images = [R.image.wechatSportStep1(), R.image.wechatSportStep2(), R.image.wechatSportStep3(), R.image.wechatSportStep4()]
for (index, title) in titles.enumerated() {
let btn = stepBtn(image: images[index], title: title)
if index == titles.count-1 {
button = btn
}
view.addSubview(btn)
btn.snp.makeConstraints { (make) in
make.top.equalTo(fbtitleLabel.snp.bottom).offset(30 + (index * (60 + 10)))
@ -63,21 +68,22 @@ class WeChatSportViewControllerss: ViewController { @@ -63,21 +68,22 @@ class WeChatSportViewControllerss: ViewController {
make.right.equalTo(-30)
}
}
//
view.addSubview(fbqrCodeImage)
fbqrCodeImage.snp.makeConstraints { (make) in
make.centerX.equalToSuperview()
make.top.equalTo(button.snp.bottom).offset(30)
make.width.height.equalTo(kScaleWidth(120))
}
//
view.addSubview(fbsaveBtn)
fbsaveBtn.snp.makeConstraints { (make) in
make.centerX.equalToSuperview()
make.bottom.equalTo(-20)
make.top.equalTo(fbqrCodeImage.snp_bottom).offset(20)
make.height.equalTo(40)
make.width.equalTo(120)
}
//
view.addSubview(fbqrCodeImage)
fbqrCodeImage.snp.makeConstraints { (make) in
make.centerX.equalToSuperview()
make.bottom.equalTo(fbsaveBtn.snp.top).offset(-30)
make.width.height.equalTo(kScaleWidth(120))
}
}
private func stepBtn(image: UIImage?, title: String) -> UIView {

13
FireBoltt/FB_Modules/FB_Device/Controller/businessCardViewControllers.swift

@ -38,7 +38,11 @@ class businessCardViewControllers: ViewController { @@ -38,7 +38,11 @@ class businessCardViewControllers: ViewController {
super.viewDidLoad()
//
self.tableView = UITableView(frame: CGRect(x: 0, y: 10, width: Int(view.frame.size.width), height: 50*payArr.count), style:UITableView.Style.plain)
if #available(iOS 13.0, *) {
self.tableView = UITableView(frame: CGRect(x: 0, y: 0, width: Int(view.frame.size.width), height: Int(kScreenH)), style:UITableView.Style.insetGrouped)
} else {
// Fallback on earlier versions
}
self.tableView!.delegate = self
self.tableView!.dataSource = self
self.tableView?.rowHeight = 50
@ -89,4 +93,11 @@ extension businessCardViewControllers: UITableViewDataSource { @@ -89,4 +93,11 @@ extension businessCardViewControllers: UITableViewDataSource {
return cell
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 10
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return nil
}
}

58
FireBoltt/FB_Modules/FB_Device/View/DeviceFooterView.swift

@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
//
// DeviceFooterView.swift
// FireBoltt
//
// Created by ecell on 2023/9/13.
// Copyright © 2023 Sheldon. All rights reserved.
//
import UIKit
class DeviceFooterView: UIView {
lazy var unBindingBtn: UIButton = {
let btn = UIButton(type: .custom).then {
$0.setTitle(MultiLanguageKey_FB.unBindingFB.localized, for: .normal)
$0.setTitleColor(.white, for: .normal)
$0.titleLabel?.font = SystemRegularFont(18)
}
btn.gradient(colors: [kHexColor(0x59AAFF), kHexColor(0x2B75FF)], startPoint: CGPoint(x: 0, y: 0.5), endPoint: CGPoint(x: 1, y: 0.5), locations: [0, 1], autoLaoutFrame: CGRect(x: 0, y: 0, width: self.frame.size.width-40, height: kScaleWidth(50)))
btn.layer.cornerRadius = kScaleWidth(25)
btn.layer.masksToBounds = true
return btn
}()
override init(frame: CGRect) {
super.init(frame: frame)
self.addSubview(unBindingBtn)
setUpUI()
}
func setUpUI() {
unBindingBtn.snp.makeConstraints { make in
make.left.right.equalTo(self).inset(20)
make.centerY.equalTo(self)
make.height.equalTo(kScaleWidth(50));
}
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
}

40
FireBoltt/FB_Modules/FB_Device/View/DeviceHeaderView.swift

@ -18,6 +18,13 @@ fileprivate struct Metric { @@ -18,6 +18,13 @@ fileprivate struct Metric {
class DeviceHeaderView: UIView {
lazy var commIcon: UIImageView = {
let imageView = UIImageView(image: UIImage(named: "picture_bg")).then {
addSubview($0)
}
return imageView
}()
lazy var fbdeviceNameLabel: UILabel = {
let label = UILabel().then {
$0.textColor = ThemeManagerFrieBoltt.commonTextColor
@ -82,26 +89,35 @@ class DeviceHeaderView: UIView { @@ -82,26 +89,35 @@ class DeviceHeaderView: UIView {
}
func setUpUI() {
fbdeviceIcon.snp.makeConstraints { (make) in
commIcon.snp.makeConstraints { make in
make.left.equalTo(kNavBarItemMargin)
make.top.equalTo(15)
make.width.height.equalTo(kScaleWidth(30))
}
fbdeviceNameLabel.snp.makeConstraints { (make) in
make.centerY.equalTo(fbdeviceIcon.snp.centerY)
make.left.equalTo(fbdeviceIcon.snp.right).offset(kScaleWidth(10))
make.centerY.equalTo(self)
make.size.equalTo(CGSize(width: kScaleWidth(110), height: kScaleWidth(110)))
}
fbstatusBtn.snp.makeConstraints { (make) in
make.left.equalTo(fbdeviceNameLabel.snp.left)
make.top.equalTo(fbdeviceNameLabel.snp.bottom).offset(kScaleWidth(10))
make.left.equalTo(commIcon.snp_right).offset(50)
make.centerY.equalTo(self.snp_centerY)
}
fbpowerBtn.snp.makeConstraints { (make) in
make.left.equalTo(fbstatusBtn.snp.right).offset(kScaleWidth(13))
make.top.equalTo(fbdeviceNameLabel.snp.bottom).offset(kScaleWidth(10))
make.centerY.equalTo(fbstatusBtn.snp_centerY)
}
fbsyncBtn.snp.makeConstraints { (make) in
fbdeviceIcon.snp.makeConstraints { (make) in
make.left.equalTo(fbstatusBtn.snp_left)
make.bottom.equalTo(fbstatusBtn.snp_top).inset(-20)
make.width.height.equalTo(kScaleWidth(30))
}
fbdeviceNameLabel.snp.makeConstraints { (make) in
make.centerY.equalTo(fbdeviceIcon.snp.centerY)
make.right.equalTo(-kNavBarItemMargin)
make.left.equalTo(fbdeviceIcon.snp.right).offset(kScaleWidth(10))
}
fbsyncBtn.snp.makeConstraints { (make) in
make.top.equalTo(fbstatusBtn.snp.bottom).offset(20)
make.left.equalTo(fbdeviceIcon.snp_left)
make.width.equalTo(kScaleWidth(65))
make.height.equalTo(kScaleWidth(30))
}

7
FireBoltt/FB_Modules/FB_Device/ViewModel/DeviceViewModels.swift

@ -164,7 +164,8 @@ extension DeviceViewModels { @@ -164,7 +164,8 @@ extension DeviceViewModels {
//
let section1: [FunctionTypeFireBoltt] = [.findPhone, .remoteCamera]
var section2: [FunctionTypeFireBoltt] = [.callRemind, .messageRemind, .notice]
var section3: [FunctionTypeFireBoltt] = [.unBinding]
// var section3: [FunctionTypeFireBoltt] = [.unBinding]
var section3: [FunctionTypeFireBoltt] = []
//
if let adapterInfo = UserDefaultsManagerFrieBoltt.getDeviceInfo()?.adapterInfo {
// Section2
@ -175,7 +176,7 @@ extension DeviceViewModels { @@ -175,7 +176,7 @@ extension DeviceViewModels {
if adapterInfo.alarmRemind { section2.append(.alarmClock) }
if adapterInfo.drinkRemind { section2.append(.drinkRemind) }
if adapterInfo.sedentaryRemind { section2.append(.sedentary) }
if adapterInfo.telephoneBook { section2.append(.telephoneBook) }
if adapterInfo.telephoneBook { section2.append(.telephoneBook) }
if adapterInfo.businessCard { section2.append(.businessCard) }
if adapterInfo.theWallet { section2.append(.theWallet) }
if adapterInfo.music { section2.append(.music) }
@ -195,7 +196,7 @@ extension DeviceViewModels { @@ -195,7 +196,7 @@ extension DeviceViewModels {
if type == .firmwareUpgrade, let firmwareVersion = GlobalDeviceProfileModel.shareInstance.firwareModel?.firmwareVersion {
description = "V" + firmwareVersion
}
let cellModel = TableViewCellModel(title: type.title(), isSwitch: type.isSwitch(), description: description, isArrows: !type.isSwitch(), isOn: isON, image: nil, isBottomLine: isBottomLine, functionType: type)
let cellModel = TableViewCellModel(title: type.title(), isSwitch: type.isSwitch(), description: description, isArrows: !type.isSwitch(), isOn: isON, image: UIImage(named: type.imgName()), isBottomLine: isBottomLine, functionType: type)
if type == .firmwareUpgrade {
cellModel.redPoint.accept(isNewFirmware)
}

3
FireBoltt/FB_Modules/FB_Health/Controller/HealthHomeViewControllers.swift

@ -35,6 +35,7 @@ class HealthHomeViewControllers: CollectionController { @@ -35,6 +35,7 @@ class HealthHomeViewControllers: CollectionController {
override func viewDidLoad() {
super.viewDidLoad()
// view.backgroundColor = kRGBA(233, 247, 255, 0.5)
//
guard let _ = UserDefaultsManagerFrieBoltt.getUserInfo() else {
//
@ -52,7 +53,7 @@ class HealthHomeViewControllers: CollectionController { @@ -52,7 +53,7 @@ class HealthHomeViewControllers: CollectionController {
flowLayout.minimumLineSpacing = 0
collectionViewFlowLayout = flowLayout
//
collectionView.backgroundColor = .white
collectionView.backgroundColor = kRGBA(233, 247, 255, 0.5)
collectionView.register(Resuable.stepCell)
collectionView.register(Resuable.helathCell)
collectionView.register(Resuable.blankCell)

30
FireBoltt/FB_Modules/FB_Health/ProgressBar/UIColor+Extension.h

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
//
// UIColor+Extension.h
// XFGradientProgressView
//
// Created by XFCoding on 2020/5/12.
// Copyright © 2020 XFCoding. All rights reserved.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface UIColor (Extension)
/**
*
* beginColor
* endColor
* position 0~1
*/
+ (UIColor *)transitionColorWithStartColor:(UIColor *)startColor endColor:(UIColor *)endColor position:(CGFloat )position;
/**
*
* startColorHex
* endColorHex
* position 0~1
*/
+ (UIColor *)transitionColorWithStartColorHex:(unsigned int)startColorHex endColorHex:(unsigned int)endColorHex position:(CGFloat )position;
@end
NS_ASSUME_NONNULL_END

66
FireBoltt/FB_Modules/FB_Health/ProgressBar/UIColor+Extension.m

@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
//
// UIColor+Extension.m
// XFGradientProgressView
//
// Created by XFCoding on 2020/5/12.
// Copyright © 2020 XFCoding. All rights reserved.
//
#import "UIColor+Extension.h"
@implementation UIColor (Extension)
+ (UIColor *)colorWithHexColor:(unsigned int)hexColor {
return [UIColor colorWithRed:((hexColor>>16)&0xFF)/255.0 green:((hexColor>>8)&0xFF)/255.0 blue:(hexColor&0xFF)/255.0 alpha:1.0];
}
/**
* 两个颜色之间的过渡颜色
* beginColor 开始颜色
* endColor 结束颜色
* position 过渡的比例 (0~1
*/
+ (UIColor *)transitionColorWithStartColor:(UIColor *)startColor endColor:(UIColor *)endColor position:(CGFloat )position {
UIColor *desColor = nil;
// 获取开始位置颜色的 RGBA值
CGFloat startR = 0;
CGFloat startG = 0;
CGFloat startB = 0;
CGFloat startA = 0;
[startColor getRed:&startR green:&startG blue:&startB alpha:&startA];
// 获取结束位置颜色的 RGBA值
CGFloat endR = 0;
CGFloat endG = 0;
CGFloat endB = 0;
CGFloat endA = 0;
[endColor getRed:&endR green:&endG blue:&endB alpha:&endA];
CGFloat R = (endR - startR)*position + startR;
CGFloat G = (endG - startG)*position + startG;
CGFloat B = (endB - startB)*position + startB;
CGFloat A = (endA - startA)*position + startA;
//根据当前位置获取当前应该要展示的颜色值
desColor = [UIColor colorWithRed:R green:G blue:B alpha:A];
return desColor;
}
/**
* 取两个颜色的过渡颜色
* startColorHex 开始颜色的 十六进制值
* endColorHex 结束颜色的 十六进制值
* position 过渡比例 (0~1
*/
+ (UIColor *)transitionColorWithStartColorHex:(unsigned int)startColorHex endColorHex:(unsigned int)endColorHex position:(CGFloat )position {
return [self transitionColorWithStartColor:[self colorWithHexColor:startColorHex] endColor:[self colorWithHexColor:endColorHex] position:position];
}
@end

33
FireBoltt/FB_Modules/FB_Health/ProgressBar/XFGradientProgressView.h

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
//
// XFGradientProgressView.h
// XFGradientProgressView
//
// Created by XFCoding on 2020/5/12.
// Copyright © 2020 XFCoding. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface XFGradientProgressView : UIView
/// 初始化进度条
/// @param frame ~
/// @param startColor 起始颜色
/// @param endColor 结束颜色
/// @param backProgressColor 进度条背景颜色
- (instancetype)initWithFrame:(CGRect)frame startColor:(UIColor *)startColor endColor:(UIColor *)endColor backProgressColor:(UIColor *)backProgressColor;
//设置最终进度(0.0~1.0)和动画时间,动画时间默认1.0s
- (void)StartAnimationToProgress:(CGFloat)progress durationTime:(CGFloat)durationTime sImgName:(NSString *)sImgName;
@end

167
FireBoltt/FB_Modules/FB_Health/ProgressBar/XFGradientProgressView.m

@ -0,0 +1,167 @@ @@ -0,0 +1,167 @@
//
// XFGradientProgressView.m
// XFGradientProgressView
//
// Created by XFCoding on 2020/5/12.
// Copyright © 2020 XFCoding. All rights reserved.
//
#import "XFGradientProgressView.h"
#import "UIColor+Extension.h"
#define COLOR_HEX(c) [UIColor colorWithRed:((c>>16)&0xFF)/255.0 green:((c>>8)&0xFF)/255.0 blue:(c&0xFF)/255.0 alpha:1.0]
#define COLOR_RGB(r,g,b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
#define kArcWidth (10.0f)
#define kArcCenter (CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2 + kArcWidth))
#define kArcRadius (self.bounds.size.width/2.0)
#define kStartAngle (3*M_PI_4)
#define kEndAngle (M_PI_4)
@interface XFGradientProgressView ()
@property (nonatomic, strong) CAShapeLayer *progressLayer;
@property (nonatomic, strong) CAShapeLayer *progressBackLayer;
//渐变的起始颜色和结束颜色
@property (nonatomic, copy) UIColor *startColor;
@property (nonatomic, copy) UIColor *endColor;
//进度条背景颜色
@property (nonatomic, copy) UIColor *backProgressColor;
@property (nonatomic ,strong) UIImageView *scheduleImg;
@end
@implementation XFGradientProgressView
- (instancetype)initWithFrame:(CGRect)frame startColor:(UIColor *)startColor endColor:(UIColor *)endColor backProgressColor:(UIColor *)backProgressColor{
if (self = [super initWithFrame:frame]) {
self.startColor = startColor;
self.endColor = endColor;
self.backProgressColor = backProgressColor;
[self createProgressBar];
}
return self;
}
/**
生成贝塞尔曲线并设置为shapeLayer的路径
*/
- (void)createProgressBar {
[self.layer addSublayer:self.progressBackLayer];
[self.layer addSublayer:self.progressLayer];
UIBezierPath *bPath = [UIBezierPath bezierPathWithArcCenter:kArcCenter radius:kArcRadius startAngle:kStartAngle endAngle:kEndAngle clockwise:YES];
self.progressLayer.path = bPath.CGPath;
self.progressBackLayer.path = bPath.CGPath;
[self createGradientLayer];
[self addSubview:self.scheduleImg];
}
/**
设置色彩渐变图层
*/
- (void)createGradientLayer {
CALayer *layer = [CALayer layer];
layer.frame = self.bounds;
if (!self.startColor || !self.endColor) {
self.startColor = COLOR_HEX(0xfb6400);
self.endColor = COLOR_HEX(0xfc9c00);
}
UIColor *mediumColor = [UIColor transitionColorWithStartColor:self.startColor endColor:self.endColor position:0.5];
CAGradientLayer *leftLayer = [CAGradientLayer layer];
leftLayer.frame = CGRectMake(-kArcWidth/2, -kArcWidth/2, self.bounds.size.width/2+kArcWidth/2, self.bounds.size.height+kArcWidth/2);
leftLayer.colors = @[ (id)_startColor.CGColor,(id)mediumColor.CGColor];
leftLayer.locations = @[@0,@1];
leftLayer.startPoint = CGPointMake(0, 1);
leftLayer.endPoint = CGPointMake(1, 0);
CAGradientLayer *rightLayer = [CAGradientLayer layer];
rightLayer.frame = CGRectMake(self.bounds.size.width/2, -kArcWidth/2, self.bounds.size.width/2+kArcWidth/2, self.bounds.size.height+kArcWidth/2);
rightLayer.colors = @[ (id)mediumColor.CGColor,(id)_endColor.CGColor];
rightLayer.locations = @[@0,@1];
rightLayer.startPoint = CGPointMake(0, 0);
rightLayer.endPoint = CGPointMake(1, 1);
//设置蒙层
layer.mask = self.progressLayer;
[layer addSublayer:leftLayer];
[layer addSublayer:rightLayer];
[self.layer addSublayer:layer];
}
- (void)StartAnimationToProgress:(CGFloat)progress durationTime:(CGFloat)durationTime sImgName:(NSString *)sImgName
{
CGFloat endAngle = kStartAngle + progress*M_PI*3/2;
UIBezierPath *bPath = [UIBezierPath bezierPathWithArcCenter:kArcCenter radius:kArcRadius startAngle:kStartAngle endAngle:endAngle clockwise:YES];
self.progressLayer.path = bPath.CGPath;
self.scheduleImg.image = [UIImage imageNamed:sImgName];
self.scheduleImg.frame = CGRectMake(bPath.currentPoint.x-5, bPath.currentPoint.y-5, 10, 10);
self.scheduleImg.center = bPath.currentPoint;
NSLog(@"%f--%f",bPath.currentPoint.x,bPath.currentPoint.y);
CAKeyframeAnimation *keyAnimation = [CAKeyframeAnimation animationWithKeyPath:@"strokeEnd"];
keyAnimation.values = @[@0.0,@1.0];
keyAnimation.duration = durationTime;
[self.progressLayer addAnimation:keyAnimation forKey:nil];
}
- (CAShapeLayer *)progressLayer {
if (!_progressLayer) {
_progressLayer = [CAShapeLayer layer];
_progressLayer.fillColor = [UIColor clearColor].CGColor;
_progressLayer.strokeColor = [UIColor whiteColor].CGColor;
_progressLayer.lineWidth = kArcWidth;
_progressLayer.lineCap = kCALineCapRound;
}
return _progressLayer;
}
- (CAShapeLayer *)progressBackLayer {
if (!_progressBackLayer) {
_progressBackLayer = [CAShapeLayer layer];
_progressBackLayer.fillColor = [UIColor clearColor].CGColor;
_progressBackLayer.lineWidth = kArcWidth;
_progressBackLayer.lineCap = kCALineCapRound;
_progressBackLayer.strokeColor = _backProgressColor?_backProgressColor.CGColor : [UIColor grayColor].CGColor;
}
return _progressBackLayer;
}
- (UIImageView *)scheduleImg
{
if (!_scheduleImg)
{
_scheduleImg = [UIImageView new];
// _scheduleImg.layer.cornerRadius = 5;
// _scheduleImg.layer.masksToBounds = YES;
// _scheduleImg.backgroundColor = UIColor.redColor;
}
return _scheduleImg;
}
@end

265
FireBoltt/FB_Modules/FB_Health/View/HealthStepItemCell.swift

@ -26,62 +26,157 @@ class HealthStepItemCell: CollectionViewCell { @@ -26,62 +26,157 @@ class HealthStepItemCell: CollectionViewCell {
}()
lazy var fb_bgView: UIView = {
let view = UIView()
view.gradient(colors: [kHexColor(0x59AAFF), kHexColor(0x2B75FF)], locations: nil, autoLaoutFrame: CGRect(x: 0, y: 0, width: kScaleWidth(335), height: kScaleWidth(160)))
// view.gradient(colors: [kHexColor(0x59AAFF), kHexColor(0x2B75FF)], locations: nil, autoLaoutFrame: CGRect(x: 0, y: 0, width: kScaleWidth(335), height: kScaleWidth(160)))
view.gradient(colors: [.white, .white], locations: nil, autoLaoutFrame: CGRect(x: 0, y: 0, width: kScaleWidth(335), height: kScaleWidth(160)))
view.layer.cornerRadius = 10
view.layer.masksToBounds = true
return view
}()
lazy var fb_stepCircleView: CircleView = {
let view = CircleView(lineWidth: 8, bottomColor: kHexColor(0xFFFFFF, 0.3), progressColor: kHexColor(0xFFFFFF), type: .doubleLine)
return view
///
lazy var stepProgress:XFGradientProgressView = {
let view = XFGradientProgressView(frame: CGRect(x: 18, y: 30, width: 115, height: 115), start: kRGBA(35, 128, 255, 1), end: kRGBA(35, 128, 255, 1), backProgressColor: kRGBA(35, 128, 255, 0.4))
view!.startAnimation(toProgress: 0, durationTime: 0, sImgName: "icon_step")
return view!
}()
///
lazy var distanceProgress:XFGradientProgressView = {
let view = XFGradientProgressView(frame: CGRect(x: stepProgress.left+12.5, y: stepProgress.top+10, width: stepProgress.width-25, height: stepProgress.height-20), start: kRGBA(253, 161, 40, 1), end: kRGBA(253, 161, 40, 1), backProgressColor: kRGBA(253, 161, 40, 0.4))
view!.startAnimation(toProgress: 0, durationTime: 0, sImgName: "icon_distance")
return view!
}()
///
lazy var calorieProgress:XFGradientProgressView = {
let view = XFGradientProgressView(frame: CGRect(x: distanceProgress.left+12.5, y: distanceProgress.top+10, width: distanceProgress.width-25, height: distanceProgress.height-19), start: kRGBA(255, 0, 96, 1), end: kRGBA(255, 0, 96, 1), backProgressColor: kRGBA(255, 0, 96, 0.4))
view!.startAnimation(toProgress: 0, durationTime: 0, sImgName: "icon_calories")
return view!
}()
// lazy var fb_stepCircleView: CircleView = {
// let view = CircleView(lineWidth: 8, bottomColor: kHexColor(0xFFFFFF, 0.3), progressColor: kHexColor(0xFFFFFF), type: .doubleLine)
// return view
// }()
///
lazy var fb_stepValue: UILabel = {
let label = UILabel()
label.font = DigitalFont(32)
label.textColor = kHexColor(0xffffff)
label.font = DigitalFont(25)
label.textColor = kRGBA(42, 42, 42, 1)
label.text = "0"
return label
}()
///
lazy var fb_stepUnit: UILabel = {
let label = UILabel()
label.font = SystemRegularFont(12)
label.textColor = kHexColor(0xffffff)
label.textColor = kRGBA(133, 133, 133, 1)
label.text = MultiLanguageKey_FB.stepTipFB.localized
return label
}()
lazy var fb_dataCircleView: CircleView = {
let view = CircleView(lineWidth: 2, bottomColor: kHexColor(0xfffff, 0.3), type: .dottedLine)
return view
}()
// lazy var fb_dataCircleView: CircleView = {
// let view = CircleView(lineWidth: 2, bottomColor: kHexColor(0xfffff, 0.3), type: .dottedLine)
// return view
// }()
///
lazy var fb_stepCaloriesValue: UILabel = {
let label = UILabel()
label.font = SystemMediumFont(21)
label.textColor = kHexColor(0xffffff)
label.font = DigitalFont(25)
label.textColor = kRGBA(42, 42, 42, 1)
label.text = "0"
return label
}()
///
lazy var fb_stepDistanceValue: UILabel = {
let label = UILabel()
label.font = SystemMediumFont(21)
label.textColor = kHexColor(0xffffff)
label.font = DigitalFont(25)
label.textColor = kRGBA(42, 42, 42, 1)
label.text = "0"
return label
}()
///
lazy var fb_stepCalories: UILabel = {
let label = UILabel()
label.font = SystemRegularFont(12)
label.textColor = kHexColor(0x004EFF)
label.textColor = kRGBA(133, 133, 133, 1)
label.text = MultiLanguageKey_FB.kcalFB.localized
return label
}()
///
lazy var fb_stepDistance: UILabel = {
let label = UILabel()
label.font = SystemRegularFont(12)
label.textColor = kHexColor(0x004EFF)
label.textColor = kRGBA(133, 133, 133, 1)
label.text = MultiLanguageKey_FB.kmFB.localized
return label
}()
/// 线
lazy var line: UILabel = {
let label = UILabel()
label.backgroundColor = kRGBA(235, 235, 235, 1)
return label
}()
lazy var line1: UILabel = {
let label = UILabel()
label.backgroundColor = kRGBA(235, 235, 235, 1)
return label
}()
///
lazy var point: UILabel = {
let label = UILabel()
label.backgroundColor = kRGBA(88, 157, 245, 1)
label.layer.cornerRadius = 2.5
label.layer.masksToBounds = true
return label
}()
lazy var point1: UILabel = {
let label = UILabel()
label.backgroundColor = kRGBA(255, 0, 96, 1)
label.layer.cornerRadius = 2.5
label.layer.masksToBounds = true
return label
}()
lazy var point2: UILabel = {
let label = UILabel()
label.backgroundColor = kRGBA(253, 161, 40, 1)
label.layer.cornerRadius = 2.5
label.layer.masksToBounds = true
return label
}()
///
lazy var tlabel: UILabel = {
let label = UILabel()
label.font = SystemRegularFont(13)
label.textColor = kRGBA(42, 42, 42, 1)
label.text = MultiLanguageKey_FB.stepNumberFB.localized
return label
}()
lazy var tlabel1: UILabel = {
let label = UILabel()
label.font = SystemRegularFont(13)
label.textColor = kRGBA(42, 42, 42, 1)
label.text = MultiLanguageKey_FB.heatFB.localized
return label
}()
lazy var tlabel2: UILabel = {
let label = UILabel()
label.font = SystemRegularFont(13)
label.textColor = kRGBA(42, 42, 42, 1)
label.text = MultiLanguageKey_FB.totalDistanceFB.localized
return label
}()
// override init(frame: CGRect) {
// super.init(frame: frame)
// selectionStyle = .none
@ -108,14 +203,27 @@ class HealthStepItemCell: CollectionViewCell { @@ -108,14 +203,27 @@ class HealthStepItemCell: CollectionViewCell {
containerView.addSubview(fb_titleLabel)
containerView.addSubview(fb_dateLabel)
containerView.addSubview(fb_bgView)
fb_bgView.addSubview(fb_stepCircleView)
fb_bgView.addSubview(fb_dataCircleView)
fb_stepCircleView.addSubview(fb_stepValue)
fb_stepCircleView.addSubview(fb_stepUnit)
fb_dataCircleView.addSubview(fb_stepCaloriesValue)
fb_dataCircleView.addSubview(fb_stepDistanceValue)
fb_dataCircleView.addSubview(fb_stepCalories)
fb_dataCircleView.addSubview(fb_stepDistance)
// fb_bgView.addSubview(fb_stepCircleView)
// fb_bgView.addSubview(fb_dataCircleView)
fb_bgView.addSubview(stepProgress)
fb_bgView.addSubview(distanceProgress)
fb_bgView.addSubview(calorieProgress)
fb_bgView.addSubview(fb_stepValue)
fb_bgView.addSubview(fb_stepUnit)
fb_bgView.addSubview(fb_stepCaloriesValue)
fb_bgView.addSubview(fb_stepDistanceValue)
fb_bgView.addSubview(fb_stepCalories)
fb_bgView.addSubview(fb_stepDistance)
fb_bgView.addSubview(line)
fb_bgView.addSubview(line1)
fb_bgView.addSubview(point)
fb_bgView.addSubview(point1)
fb_bgView.addSubview(point2)
fb_bgView.addSubview(tlabel)
fb_bgView.addSubview(tlabel1)
fb_bgView.addSubview(tlabel2)
}
override func layoutUI() {
@ -133,40 +241,94 @@ class HealthStepItemCell: CollectionViewCell { @@ -133,40 +241,94 @@ class HealthStepItemCell: CollectionViewCell {
make.right.equalTo(-20)
make.height.equalTo(kScaleWidth(160))
}
fb_stepCircleView.snp.makeConstraints { (make) in
make.centerY.equalToSuperview()
make.width.height.equalTo(kScaleWidth(130))
make.left.equalTo(kScaleWidth(28))
// fb_stepCircleView.snp.makeConstraints { (make) in
// make.centerY.equalToSuperview()
// make.width.height.equalTo(kScaleWidth(130))
// make.left.equalTo(kScaleWidth(28))
// }
fb_stepUnit.snp.makeConstraints { (make) in
make.top.equalTo(fb_bgView)
make.right.equalTo(fb_bgView.snp_right).inset(18.5)
make.height.equalTo(kScaleWidth(160)/3)
}
fb_stepValue.snp.makeConstraints { (make) in
make.top.equalTo(kScaleWidth(39))
make.centerX.equalToSuperview()
}
fb_stepUnit.snp.makeConstraints { (make) in
make.top.equalTo(fb_stepValue.snp.bottom)
make.centerX.equalToSuperview()
make.centerY.equalTo(fb_stepUnit)
make.right.equalTo(fb_bgView.snp_right).inset(52.5)
}
fb_dataCircleView.snp.makeConstraints { (make) in
make.centerY.equalToSuperview()
make.width.height.equalTo(kScaleWidth(130))
make.right.equalTo(-kScaleWidth(28))
// fb_dataCircleView.snp.makeConstraints { (make) in
// make.centerY.equalToSuperview()
// make.width.height.equalTo(kScaleWidth(130))
// make.right.equalTo(-kScaleWidth(28))
// }
fb_stepCalories.snp.makeConstraints { (make) in
make.right.equalTo(fb_bgView.snp_right).inset(18.5)
make.height.equalTo(kScaleWidth(160)/3)
make.top.equalTo(fb_stepUnit.snp_bottom)
}
fb_stepCaloriesValue.snp.makeConstraints { (make) in
make.top.equalTo(kScaleWidth(34))
make.centerX.equalToSuperview()
make.centerY.equalTo(fb_stepCalories)
make.right.equalTo(fb_bgView.snp_right).inset(52.5)
}
fb_stepDistance.snp.makeConstraints { (make) in
make.right.equalTo(fb_bgView.snp_right).inset(18.5)
make.height.equalTo(kScaleWidth(160)/3)
make.top.equalTo(fb_stepCalories.snp_bottom)
}
fb_stepDistanceValue.snp.makeConstraints { (make) in
make.top.equalTo(fb_stepCaloriesValue.snp.bottom).offset(kScaleWidth(4))
make.centerX.equalToSuperview()
make.centerY.equalTo(fb_stepDistance)
make.right.equalTo(fb_bgView.snp_right).inset(52.5)
}
fb_stepCalories.snp.makeConstraints { (make) in
make.lastBaseline.equalTo(fb_stepCaloriesValue.snp.lastBaseline)
make.left.equalTo(fb_stepCaloriesValue.snp.right).offset(5)
line.snp.makeConstraints { make in
make.right.equalTo(fb_bgView.snp_right).inset(12)
make.left.equalTo(fb_bgView).offset(160)
make.top.equalTo(fb_stepUnit.snp_bottom)
make.height.equalTo(0.5)
}
fb_stepDistance.snp.makeConstraints { (make) in
make.lastBaseline.equalTo(fb_stepDistanceValue.snp.lastBaseline)
make.left.equalTo(fb_stepDistanceValue.snp.right).offset(5)
line1.snp.makeConstraints { make in
make.right.equalTo(fb_bgView.snp_right).inset(12)
make.left.equalTo(fb_bgView).offset(160)
make.top.equalTo(fb_stepCalories.snp_bottom)
make.height.equalTo(0.5)
}
point.snp.makeConstraints { make in
make.left.equalTo(line.snp_left);
make.centerY.equalTo(fb_stepUnit);
make.size.equalTo(CGSize(width: 5, height: 5))
}
point1.snp.makeConstraints { make in
make.left.equalTo(line.snp_left);
make.centerY.equalTo(fb_stepCalories);
make.size.equalTo(CGSize(width: 5, height: 5))
}
point2.snp.makeConstraints { make in
make.left.equalTo(line.snp_left);
make.centerY.equalTo(fb_stepDistance);
make.size.equalTo(CGSize(width: 5, height: 5))
}
tlabel.snp.makeConstraints { make in
make.left.equalTo(point.snp_right).offset(10)
make.centerY.equalTo(point);
}
tlabel1.snp.makeConstraints { make in
make.left.equalTo(point1.snp_right).offset(10)
make.centerY.equalTo(point1);
}
tlabel2.snp.makeConstraints { make in
make.left.equalTo(point2.snp_right).offset(10)
make.centerY.equalTo(point2);
}
}
override func bind(model: ViewModel) {
@ -183,7 +345,10 @@ class HealthStepItemCell: CollectionViewCell { @@ -183,7 +345,10 @@ class HealthStepItemCell: CollectionViewCell {
.disposed(by: cellDisposeBag)
viewModel.progress
.subscribe(onNext: { [weak self] (progress) in
self?.fb_stepCircleView.updateProcess(process: Float(progress))
// self?.fb_stepCircleView.updateProcess(process: Float(progress))
self?.stepProgress .startAnimation(toProgress: CGFloat(Float(progress)), durationTime: 0, sImgName: "icon_step")
self?.distanceProgress .startAnimation(toProgress: CGFloat(Float(progress)), durationTime: 0, sImgName: "icon_distance")
self?.calorieProgress .startAnimation(toProgress: CGFloat(Float(progress)), durationTime: 0, sImgName: "icon_calories")
})
.disposed(by: cellDisposeBag)
viewModel.dateStr

11
FireBoltt/FB_Modules/FB_My/Controller/MineViewController.swift

@ -15,7 +15,7 @@ fileprivate enum Resuable { @@ -15,7 +15,7 @@ fileprivate enum Resuable {
class MineViewController: TableViewController {
lazy var headerView: MineHeaderView = {
let view = MineHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenW, height: kScaleWidth(180)))
let view = MineHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenW, height: kScaleWidth(180)+10))
return view
}()
@ -27,8 +27,15 @@ class MineViewController: TableViewController { @@ -27,8 +27,15 @@ class MineViewController: TableViewController {
super.makeUI()
isTitleCenter = true
navigationTitle = MultiLanguageKey_FB.mineFB.localized
tableViewStyle = .grouped
if #available(iOS 13.0, *) {
tableViewStyle = .insetGrouped
} else {
// Fallback on earlier versions
tableViewStyle = .grouped
}
tableView.backgroundColor = kHexColor(0xFAFAFA)
tableView.rowHeight = kScaleWidth(52)
tableView.separatorStyle = UITableViewCell.SeparatorStyle.singleLine
tableView.register(Resuable.tableViewCell)
var top = kBatteryH;

7
FireBoltt/FB_Modules/FB_My/Controller/TargetVC.swift

@ -74,7 +74,12 @@ class TargetVC: TableViewController { @@ -74,7 +74,12 @@ class TargetVC: TableViewController {
override func makeUI() {
super.makeUI()
// tableView
tableViewStyle = .grouped
if #available(iOS 13.0, *) {
tableViewStyle = .insetGrouped
} else {
// Fallback on earlier versions
// tableViewStyle = .grouped
}
tableView.register(Resuable.tableViewCell)
tableView.rx.setDelegate(self).disposed(by: rx.disposeBag)
tableView.backgroundColor = kHexColor(0xFAFAFA)

7
FireBoltt/FB_Modules/FB_My/Controller/UnitSetVC.swift

@ -32,7 +32,12 @@ class UnitSetVC: TableViewController { @@ -32,7 +32,12 @@ class UnitSetVC: TableViewController {
private func setupTableView() {
view.addSubview(tableView)
tableViewStyle = .grouped
if #available(iOS 13.0, *) {
tableViewStyle = .insetGrouped
} else {
// Fallback on earlier versions
// tableViewStyle = .grouped
}
tableView.register(Resuable.tableViewCell)
// tableView.sectionHeaderHeight = 0
tableView.snp.makeConstraints { (make) in

18
FireBoltt/FB_Modules/FB_My/MineHeaderView.swift

@ -35,24 +35,38 @@ class MineHeaderView: UIButton { @@ -35,24 +35,38 @@ class MineHeaderView: UIButton {
return img
}()
lazy var bgView: UIView = {
let view = UIView()
view.gradient(colors: [kHexColor(0x59AAFF), kHexColor(0x2B75FF)], locations: nil, autoLaoutFrame: CGRect(x: 0, y: 0, width: kScreenW, height: kScaleWidth(180)))
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
gradient(colors: [kHexColor(0x59AAFF), kHexColor(0x2B75FF)], startPoint: CGPoint(x: 0, y: 0.5), endPoint: CGPoint(x: 1, y: 0.5), locations: nil)
//gradient(colors: [kHexColor(0x59AAFF), kHexColor(0x2B75FF)], startPoint: CGPoint(x: 0, y: 0.5), endPoint: CGPoint(x: 1, y: 0.5), locations: nil)
self.backgroundColor = .clear
setUpUI()
initHeaderView()
}
private func setUpUI() {
addSubview(bgView)
addSubview(userIconImg)
addSubview(userNameLabel)
addSubview(rightArrow)
}
private func initHeaderView() {
bgView.snp.makeConstraints { make in
make.left.right.equalTo(self)
make.top.equalTo(self)
make.bottom.equalTo(self.snp_bottom).inset(10);
}
//
userIconImg.snp.makeConstraints { (make) in
make.left.equalTo(30)
make.bottom.equalTo(-20)
make.bottom.equalTo(-30)
make.width.height.equalTo(Metric.userIconWH)
}
//

13
FireBoltt/FB_Modules/FB_Sport/Controller/SportViewControllers.swift

@ -21,7 +21,7 @@ class SportViewControllers: TableViewController { @@ -21,7 +21,7 @@ class SportViewControllers: TableViewController {
let btn = UIButton().then {
$0.setTitleColor(kHexColor(0x2A2A2A), for: .normal)
$0.setTitle(MultiLanguageKey_FB.allSportFB.localized, for: .normal)
$0.setImage(R.image.fb_sport_history_up_icon(), for: .normal)
$0.setImage(R.image.fb_sport_history_up(), for: .normal)
$0.setImage(R.image.fb_sport_history_down(), for: .selected)
$0.titleLabel?.font = SystemMediumFont(20)
$0.changgeImageAndTitleEdgeInsets(type: 1, spacing: 5.0)
@ -36,7 +36,7 @@ class SportViewControllers: TableViewController { @@ -36,7 +36,7 @@ class SportViewControllers: TableViewController {
}()
///
private lazy var dateHeaderView: DateSwitchHeaderView = {
let view = DateSwitchHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenW, height: kScaleHeight(103)))
let view = DateSwitchHeaderView(frame: CGRect(x: 20, y: 15, width: kScreenW-40, height: kScaleHeight(103)))
view.segControlValueChangeClosure = { [weak self] (type) in
guard let `self` = self else { return }
guard let viewModel = self.viewModel as? SportViewModels else { return }
@ -121,12 +121,19 @@ class SportViewControllers: TableViewController { @@ -121,12 +121,19 @@ class SportViewControllers: TableViewController {
tableView.rowHeight = kScaleHeight(80)
tableView.backgroundColor = .white
dateHeaderView.layer.cornerRadius = 10
dateHeaderView.layer.shadowOffset = CGSize(width: 0, height: 1.5)
dateHeaderView.layer.shadowOpacity = 1
dateHeaderView.layer.shadowRadius = 7
dateHeaderView.layer.shadowColor = UIColor(red: 0.15, green: 0.54, blue: 0.82, alpha: 0.2).cgColor
layoutUI()
}
func layoutUI() {
tableView.snp.makeConstraints { (make) in
make.top.equalTo(dateHeaderView.snp.bottom)
make.top.equalTo(dateHeaderView.snp.bottom).offset(15)
make.left.right.bottom.equalToSuperview()
}
nodataView.snp.makeConstraints { (make) in

2
FireBoltt/FB_Modules/FB_Sport/View/SportDetailHeaderView.swift

@ -18,7 +18,7 @@ class SportDetailHeaderView: UIView { @@ -18,7 +18,7 @@ class SportDetailHeaderView: UIView {
///
lazy var sportUserView: SportUserView = {
let view = SportUserView()
view.backgroundColor = .orange
view.backgroundColor = kHexColor(0x2B75FF)
view.fbuserIconImg.image = R.image.user_Icon_header()
if let userInfo = UserDefaultsManagerFrieBoltt.getUserInfo() {
view.fbuserNameLabel.text = userInfo.nickname

11
FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.swift

@ -38,10 +38,11 @@ class SportHeaderView: UIView { @@ -38,10 +38,11 @@ class SportHeaderView: UIView {
dataBgView.layer.shadowOpacity = 1
dataBgView.layer.shadowRadius = 7
dataBgView.layer.shadowColor = UIColor(red: 0.15, green: 0.54, blue: 0.82, alpha: 0.2).cgColor
bgViewStyle(view: distanceBgView, color: kHexColor(0xFFCC9C))
bgViewStyle(view: countBgView, color: kHexColor(0x80D0FF))
bgViewStyle(view: durationBgView, color: kHexColor(0x9CAFFF))
bgViewStyle(view: caloriesBgView, color: kHexColor(0xFFCC9C))
bgViewStyle(view: distanceBgView, color: kHexColor(0x85C1FF))
bgViewStyle(view: countBgView, color: kHexColor(0x58CEC4))
bgViewStyle(view: durationBgView, color: kHexColor(0x9DBD60))
bgViewStyle(view: caloriesBgView, color: kHexColor(0xF56698))
distanceTipLabel.text = MultiLanguageKey_FB.totalDistanceFB.localized
countTipLabel.text = MultiLanguageKey_FB.totalCountFB.localized
durationTipLabel.text = MultiLanguageKey_FB.totalDurationFB.localized
@ -63,7 +64,7 @@ class SportHeaderView: UIView { @@ -63,7 +64,7 @@ class SportHeaderView: UIView {
let metric = UserDefaultsManagerFrieBoltt.getUserInfo()?.metricUnit ?? 0
let distanceStr = metric == 0 ? String(format: "%0.2lf",CGFloat(distance) / 1000.0) : String(format: "%0.2lf", CGFloat(distance) / 1000.0 * 0.62137)
distanceValueLabel.text = distanceStr
distanceUnitLabel.text = metric == 0 ? "km" : "miles"
distanceUnitLabel.text = metric == 0 ? "公里" : "miles"
caloriesValueLabel.text = String(calories)
durationValueLabel.text = String(format: "%.1lf", Double(duration) / 3600)
countValueLabel.text = String(sports.count)

159
FireBoltt/FB_Modules/FB_Sport/View/SportHeaderView.xib

@ -1,15 +1,16 @@ @@ -1,15 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15510"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="nMX-U9-qWW" customClass="SportHeaderView" customModule="Lookfit" customModuleProvider="target">
<view contentMode="scaleToFill" id="nMX-U9-qWW" customClass="SportHeaderView" customModule="FireBoltt" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="375" height="200"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
@ -19,141 +20,172 @@ @@ -19,141 +20,172 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="i4I-eS-dgn">
<rect key="frame" x="122.5" y="15" width="90" height="53"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="总次数" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ffs-AA-3Gt">
<rect key="frame" x="5" y="5" width="28" height="11"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="总次数" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ffs-AA-3Gt">
<rect key="frame" x="5" y="4" width="13" height="45"/>
<constraints>
<constraint firstAttribute="height" constant="45" id="QKP-U9-35A"/>
<constraint firstAttribute="width" constant="13" id="kC6-9k-5c6"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="9"/>
<color key="textColor" red="0.098039215686274508" green="0.34901960784313724" blue="0.58039215686274503" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.0" green="0.65490196078431373" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="6" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OUB-hC-yj2">
<rect key="frame" x="37.5" y="21" width="15.5" height="29"/>
<rect key="frame" x="37.5" y="12" width="15.5" height="29"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/>
<color key="textColor" red="0.098039215686274508" green="0.34901960784313724" blue="0.58039215686274503" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.0" green="0.65490196079999996" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.29999999999999999" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="次" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dRd-b3-kdm">
<rect key="frame" x="56" y="32.5" width="13" height="15"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="次" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dRd-b3-kdm">
<rect key="frame" x="70.5" y="35.5" width="13" height="15"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.50196078431372548" green="0.81568627450980391" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.34509803921568627" green="0.80784313725490198" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" constant="90" id="24k-JA-tlo"/>
<constraint firstItem="dRd-b3-kdm" firstAttribute="leading" secondItem="OUB-hC-yj2" secondAttribute="trailing" constant="3" id="4JS-1F-dH7"/>
<constraint firstItem="Ffs-AA-3Gt" firstAttribute="leading" secondItem="i4I-eS-dgn" secondAttribute="leading" constant="5" id="4Zc-Bi-M3q"/>
<constraint firstItem="OUB-hC-yj2" firstAttribute="centerX" secondItem="i4I-eS-dgn" secondAttribute="centerX" id="ZJ4-zM-AP8"/>
<constraint firstItem="Ffs-AA-3Gt" firstAttribute="centerY" secondItem="i4I-eS-dgn" secondAttribute="centerY" id="BNt-vq-dH2"/>
<constraint firstAttribute="height" constant="53" id="bU1-us-3a8"/>
<constraint firstItem="dRd-b3-kdm" firstAttribute="firstBaseline" secondItem="OUB-hC-yj2" secondAttribute="firstBaseline" id="di3-Um-U7B"/>
<constraint firstItem="OUB-hC-yj2" firstAttribute="top" secondItem="Ffs-AA-3Gt" secondAttribute="bottom" constant="5" id="lHF-Pm-Xmj"/>
<constraint firstItem="Ffs-AA-3Gt" firstAttribute="top" secondItem="i4I-eS-dgn" secondAttribute="top" constant="5" id="s8R-2A-Lrt"/>
<constraint firstAttribute="bottom" secondItem="dRd-b3-kdm" secondAttribute="bottom" constant="2.5" id="bfD-0F-Bf1"/>
<constraint firstItem="Ffs-AA-3Gt" firstAttribute="leading" secondItem="i4I-eS-dgn" secondAttribute="leading" constant="5" id="cCk-NL-psi"/>
<constraint firstItem="OUB-hC-yj2" firstAttribute="centerX" secondItem="i4I-eS-dgn" secondAttribute="centerX" id="chf-L5-FSG"/>
<constraint firstAttribute="trailing" secondItem="dRd-b3-kdm" secondAttribute="trailing" constant="6.5" id="dyL-8D-Xvp"/>
<constraint firstItem="OUB-hC-yj2" firstAttribute="centerY" secondItem="i4I-eS-dgn" secondAttribute="centerY" id="reE-xz-gvc"/>
<constraint firstItem="Ffs-AA-3Gt" firstAttribute="centerY" secondItem="i4I-eS-dgn" secondAttribute="centerY" id="yE4-bS-aX0"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cAm-b2-u2i">
<rect key="frame" x="17.5" y="15" width="90" height="53"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="总里程" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DJW-Cz-bES">
<rect key="frame" x="5" y="5" width="28" height="11"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="总里程" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DJW-Cz-bES">
<rect key="frame" x="5" y="10.5" width="9" height="32.5"/>
<constraints>
<constraint firstAttribute="width" constant="9" id="40E-01-vYz"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="9"/>
<color key="textColor" red="0.5607843137254902" green="0.25490196078431371" blue="0.10196078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.0" green="0.30588235294117649" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="14.5" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tVr-wQ-xbV">
<rect key="frame" x="21" y="21" width="48.5" height="29"/>
<rect key="frame" x="22" y="11" width="61" height="29"/>
<constraints>
<constraint firstAttribute="height" constant="29" id="TBl-VF-ZUP"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/>
<color key="textColor" red="0.56078431370000004" green="0.25490196079999999" blue="0.1019607843" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.0" green="0.30588235289999999" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.30000001192092896" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="km" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nec-Gi-kqS">
<rect key="frame" x="72.5" y="32.5" width="17" height="15"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="公里" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nec-Gi-kqS">
<rect key="frame" x="61.5" y="35.5" width="25" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="RGZ-tb-XYH"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="1" green="0.80000000000000004" blue="0.61176470588235299" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.52156862745098043" green="0.75686274509803919" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="Nec-Gi-kqS" firstAttribute="firstBaseline" secondItem="tVr-wQ-xbV" secondAttribute="firstBaseline" id="7ZQ-ft-ggm"/>
<constraint firstItem="tVr-wQ-xbV" firstAttribute="top" secondItem="DJW-Cz-bES" secondAttribute="bottom" constant="5" id="E7k-jP-R86"/>
<constraint firstItem="tVr-wQ-xbV" firstAttribute="centerY" secondItem="cAm-b2-u2i" secondAttribute="centerY" constant="-1" id="4PO-p4-Z9Q"/>
<constraint firstAttribute="width" constant="90" id="ShI-oc-rC3"/>
<constraint firstItem="Nec-Gi-kqS" firstAttribute="leading" secondItem="tVr-wQ-xbV" secondAttribute="trailing" constant="3" id="TiN-ty-WT8"/>
<constraint firstAttribute="trailing" secondItem="Nec-Gi-kqS" secondAttribute="trailing" constant="3.5" id="TEb-ie-zpL"/>
<constraint firstAttribute="height" constant="53" id="bKx-iu-m3E"/>
<constraint firstItem="DJW-Cz-bES" firstAttribute="leading" secondItem="cAm-b2-u2i" secondAttribute="leading" constant="5" id="fAC-HJ-3J6"/>
<constraint firstItem="DJW-Cz-bES" firstAttribute="top" secondItem="cAm-b2-u2i" secondAttribute="top" constant="5" id="fT4-aH-Z0g"/>
<constraint firstItem="tVr-wQ-xbV" firstAttribute="centerX" secondItem="cAm-b2-u2i" secondAttribute="centerX" id="j25-fF-rrP"/>
<constraint firstItem="DJW-Cz-bES" firstAttribute="centerY" secondItem="cAm-b2-u2i" secondAttribute="centerY" id="gfR-xW-A7S"/>
<constraint firstItem="DJW-Cz-bES" firstAttribute="leading" secondItem="cAm-b2-u2i" secondAttribute="leading" constant="5" id="hPS-Te-LCS"/>
<constraint firstAttribute="bottom" secondItem="Nec-Gi-kqS" secondAttribute="bottom" constant="2.5" id="mno-JN-gfc"/>
<constraint firstItem="tVr-wQ-xbV" firstAttribute="leading" secondItem="DJW-Cz-bES" secondAttribute="trailing" constant="8" id="oQ5-P2-hyR"/>
<constraint firstAttribute="trailing" secondItem="tVr-wQ-xbV" secondAttribute="trailing" constant="7" id="s0W-je-tiM"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SZh-WY-c9X">
<rect key="frame" x="117.5" y="83" width="100" height="53"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="总消耗" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="t14-by-pUR">
<rect key="frame" x="5" y="5" width="28" height="11"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="总消耗" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="t14-by-pUR">
<rect key="frame" x="7" y="6" width="13" height="41"/>
<constraints>
<constraint firstAttribute="width" constant="13" id="eoS-Pf-GOh"/>
<constraint firstAttribute="height" constant="41" id="swK-IO-ZmX"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="9"/>
<color key="textColor" red="0.84705882352941175" green="0.3411764705882353" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.86274509799999999" green="0.074509803920000006" blue="0.35294117650000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="6" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Uu5-Cg-7iz">
<rect key="frame" x="42.5" y="21" width="15.5" height="29"/>
<rect key="frame" x="42.5" y="12" width="15.5" height="29"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/>
<color key="textColor" red="0.84705882352941175" green="0.3411764705882353" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.86274509803921573" green="0.074509803921568626" blue="0.3529411764705882" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.30000001192092896" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="kCal" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WgE-LU-CGG">
<rect key="frame" x="61" y="32.5" width="25" height="15"/>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.30000001192092896" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="千卡" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WgE-LU-CGG">
<rect key="frame" x="70" y="34.5" width="25" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="c22-uj-w7d"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.84705882352941175" green="0.3411764705882353" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.96078431372549022" green="0.40000000000000002" blue="0.59607843137254901" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="WgE-LU-CGG" firstAttribute="firstBaseline" secondItem="Uu5-Cg-7iz" secondAttribute="firstBaseline" id="6tM-U2-Yso"/>
<constraint firstItem="t14-by-pUR" firstAttribute="top" secondItem="SZh-WY-c9X" secondAttribute="top" constant="5" id="9LK-K2-IdV"/>
<constraint firstItem="t14-by-pUR" firstAttribute="leading" secondItem="SZh-WY-c9X" secondAttribute="leading" constant="5" id="9MZ-Bn-wGF"/>
<constraint firstItem="Uu5-Cg-7iz" firstAttribute="centerY" secondItem="SZh-WY-c9X" secondAttribute="centerY" id="0dv-SH-DNZ"/>
<constraint firstAttribute="height" constant="53" id="AOa-B3-f1t"/>
<constraint firstItem="Uu5-Cg-7iz" firstAttribute="centerX" secondItem="SZh-WY-c9X" secondAttribute="centerX" id="Vfe-bV-yPz"/>
<constraint firstItem="WgE-LU-CGG" firstAttribute="leading" secondItem="Uu5-Cg-7iz" secondAttribute="trailing" constant="3" id="XMC-tx-nYs"/>
<constraint firstItem="t14-by-pUR" firstAttribute="leading" secondItem="SZh-WY-c9X" secondAttribute="leading" constant="7" id="Oeu-tN-JcJ"/>
<constraint firstAttribute="trailing" secondItem="WgE-LU-CGG" secondAttribute="trailing" constant="5" id="XhK-um-Qp9"/>
<constraint firstItem="Uu5-Cg-7iz" firstAttribute="centerX" secondItem="SZh-WY-c9X" secondAttribute="centerX" id="mt9-lv-Q7e"/>
<constraint firstItem="t14-by-pUR" firstAttribute="centerY" secondItem="SZh-WY-c9X" secondAttribute="centerY" id="nQ7-t5-USW"/>
<constraint firstAttribute="width" constant="100" id="oEh-cf-na4"/>
<constraint firstItem="Uu5-Cg-7iz" firstAttribute="top" secondItem="t14-by-pUR" secondAttribute="bottom" constant="5" id="yQ4-kA-ZMC"/>
<constraint firstAttribute="bottom" secondItem="WgE-LU-CGG" secondAttribute="bottom" constant="3.5" id="q22-dC-gyZ"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Wx9-7W-7NJ">
<rect key="frame" x="227.5" y="15" width="90" height="53"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="总时长" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4r2-iy-DQa">
<rect key="frame" x="5" y="5" width="28" height="11"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="总时长" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="4" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4r2-iy-DQa">
<rect key="frame" x="5" y="6" width="14" height="41"/>
<constraints>
<constraint firstAttribute="height" constant="41" id="UZL-e9-GHz"/>
<constraint firstAttribute="width" constant="14" id="xlw-gM-xUg"/>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="41" id="yi4-O5-CF5"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="9"/>
<color key="textColor" red="0.1803921568627451" green="0.16078431372549018" blue="0.72549019607843135" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.43137254899999999" green="0.62745098040000002" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="8.6" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jrM-Hy-9Pm">
<rect key="frame" x="26.5" y="21" width="37" height="29"/>
<rect key="frame" x="27" y="12" width="36" height="29"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/>
<color key="textColor" red="0.1803921568627451" green="0.16078431372549018" blue="0.72549019607843135" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.43137254901960786" green="0.62745098039215685" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.30000001192092896" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="h" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="geO-w8-Gdz">
<rect key="frame" x="66.5" y="32.5" width="7.5" height="15"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="小时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="geO-w8-Gdz">
<rect key="frame" x="61.5" y="34.5" width="25" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="0CL-uy-Btc"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.61176470588235299" green="0.68627450980392157" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="textColor" red="0.61568627450000002" green="0.74117647060000003" blue="0.37647058820000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" constant="90" id="0EW-0O-AUI"/>
<constraint firstItem="jrM-Hy-9Pm" firstAttribute="top" secondItem="4r2-iy-DQa" secondAttribute="bottom" constant="5" id="1j4-st-sm6"/>
<constraint firstItem="4r2-iy-DQa" firstAttribute="leading" secondItem="Wx9-7W-7NJ" secondAttribute="leading" constant="5" id="ITc-Ft-RHO"/>
<constraint firstItem="geO-w8-Gdz" firstAttribute="leading" secondItem="jrM-Hy-9Pm" secondAttribute="trailing" constant="3" id="Kba-Gr-vp6"/>
<constraint firstAttribute="bottom" secondItem="geO-w8-Gdz" secondAttribute="bottom" constant="3.5" id="FUT-n6-KWn"/>
<constraint firstItem="jrM-Hy-9Pm" firstAttribute="centerY" secondItem="Wx9-7W-7NJ" secondAttribute="centerY" id="M3W-c3-lUc"/>
<constraint firstAttribute="height" constant="53" id="UZL-ln-dLk"/>
<constraint firstItem="4r2-iy-DQa" firstAttribute="top" secondItem="Wx9-7W-7NJ" secondAttribute="top" constant="5" id="cLW-e5-PO8"/>
<constraint firstItem="jrM-Hy-9Pm" firstAttribute="centerX" secondItem="Wx9-7W-7NJ" secondAttribute="centerX" id="dGP-E2-qaV"/>
<constraint firstItem="geO-w8-Gdz" firstAttribute="firstBaseline" secondItem="jrM-Hy-9Pm" secondAttribute="firstBaseline" id="gwL-lz-fMC"/>
<constraint firstItem="4r2-iy-DQa" firstAttribute="leading" secondItem="Wx9-7W-7NJ" secondAttribute="leading" constant="5" id="fnL-bb-UQ4"/>
<constraint firstItem="4r2-iy-DQa" firstAttribute="leading" secondItem="Wx9-7W-7NJ" secondAttribute="leading" constant="5" id="gKG-J4-G2l"/>
<constraint firstAttribute="trailing" secondItem="geO-w8-Gdz" secondAttribute="trailing" constant="3.5" id="unU-i3-2YH"/>
<constraint firstItem="jrM-Hy-9Pm" firstAttribute="centerX" secondItem="Wx9-7W-7NJ" secondAttribute="centerX" id="ylU-OT-4QG"/>
<constraint firstItem="4r2-iy-DQa" firstAttribute="centerY" secondItem="Wx9-7W-7NJ" secondAttribute="centerY" id="ztp-pR-kbv"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="i4I-eS-dgn" firstAttribute="top" secondItem="14U-LH-ocR" secondAttribute="top" constant="15" id="0VZ-w8-QLL"/>
<constraint firstItem="SZh-WY-c9X" firstAttribute="centerX" secondItem="i4I-eS-dgn" secondAttribute="centerX" id="1Tg-2Y-9wy"/>
@ -200,7 +232,12 @@ @@ -200,7 +232,12 @@
<outlet property="durationValueLabel" destination="jrM-Hy-9Pm" id="a34-5q-HsE"/>
<outlet property="sportListLabel" destination="iRH-aY-YJs" id="QdO-RC-w4U"/>
</connections>
<point key="canvasLocation" x="-1053.6231884057972" y="-124.21875"/>
<point key="canvasLocation" x="-1054.3478260869565" y="-124.55357142857142"/>
</view>
</objects>
<resources>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>

2
FireBoltt/FB_Modules/FB_Sport/View/SportHistoryCategoryView.swift

@ -42,7 +42,7 @@ class SportHistoryCategoryView: UIView { @@ -42,7 +42,7 @@ class SportHistoryCategoryView: UIView {
$0.showsVerticalScrollIndicator = false
}
lazy var bottomImg: UIImageView = {
let img = UIImageView(image: R.image.fb_sport_history_up_icon())
let img = UIImageView(image: R.image.fb_sport_history_up())
img.frame = CGRect(x: 0, y: 0, width: kScaleWidth(105), height: 10)
img.contentMode = .scaleAspectFit
// img.backgroundColor = .white

4
FireBoltt/FB_Modules/FB_Sport/View/SportTrackView.swift

@ -26,12 +26,12 @@ class SportTrackView: UIView { @@ -26,12 +26,12 @@ class SportTrackView: UIView {
private var tempCoordinateRegion: MKCoordinateRegion?
lazy var scaleAdd: UIButton = {
let view = UIButton()
view.setImage(R.image.fb_sport_icon_add_icon(), for: .normal)
view.setImage(R.image.fb_sport_icon_add(), for: .normal)
return view
}()
lazy var fbscaleReduce: UIButton = {
let view = UIButton()
view.setImage(R.image.fb_sport_icon_reduce_icon(), for: .normal)
view.setImage(R.image.fb_sport_icon_reduce(), for: .normal)
return view
}()
var coordinateArr: [CLLocationCoordinate2D] = []

0
FireBoltt/Resource/Assets.xcassets/meunImg/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/Contents.json

4
FireBoltt/Resource/Assets.xcassets/meunImg/icon_homework.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/button_unbind.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "icon_homework@2x.png",
"filename" : "button_unbind@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon_homework@3x.png",
"filename" : "button_unbind@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/button_unbind.imageset/button_unbind@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/button_unbind.imageset/button_unbind@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

4
FireBoltt/Resource/Assets.xcassets/meunImg/icon_sos.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_DND.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "icon_sos@2x.png",
"filename" : "icon_DND@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon_sos@3x.png",
"filename" : "icon_DND@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_DND.imageset/icon_DND@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_DND.imageset/icon_DND@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_app_notification.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_app_notification.imageset/icon_app_notification@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_app_notification.imageset/icon_app_notification@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_bright_screen.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_bright_screen.imageset/icon_bright_screen@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_bright_screen.imageset/icon_bright_screen@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_call_notification.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_call_notification.imageset/icon_call_notification@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_call_notification.imageset/icon_call_notification@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

4
FireBoltt/Resource/Assets.xcassets/meunImg/icon_on_off.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_camera.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "icon_on_off@2x.png",
"filename" : "icon_camera@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon_on_off@3x.png",
"filename" : "icon_camera@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_camera.imageset/icon_camera@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_camera.imageset/icon_camera@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

4
FireBoltt/Resource/Assets.xcassets/meunImg/icon_alarm.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_card.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "icon_alarm@2x.png",
"filename" : "icon_card@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon_alarm@3x.png",
"filename" : "icon_card@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_card.imageset/icon_card@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_card.imageset/icon_card@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

4
FireBoltt/Resource/Assets.xcassets/SportImg/fb_sport_icon_start_icon.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_devide_dial.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "sport_icon_start@2x.png",
"filename" : "icon_devide_dial@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "sport_icon_start@3x.png",
"filename" : "icon_devide_dial@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_devide_dial.imageset/icon_devide_dial@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_devide_dial.imageset/icon_devide_dial@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

4
FireBoltt/Resource/Assets.xcassets/meunImg/icon_member.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_drink.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "icon_member@2x.png",
"filename" : "icon_drink@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon_member@3x.png",
"filename" : "icon_drink@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_drink.imageset/icon_drink@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_drink.imageset/icon_drink@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_find.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_find.imageset/icon_find@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_find.imageset/icon_find@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_hr.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_hr.imageset/icon_hr@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_hr.imageset/icon_hr@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_message_notification.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_message_notification.imageset/icon_message_notification@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_message_notification.imageset/icon_message_notification@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_music.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_music.imageset/icon_music@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_music.imageset/icon_music@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

0
FireBoltt/Resource/Assets.xcassets/meunImg/icon_phonebook.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_phonebook.imageset/Contents.json vendored

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_phonebook.imageset/icon_phonebook@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_phonebook.imageset/icon_phonebook@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

4
FireBoltt/Resource/Assets.xcassets/meunImg/icon_family.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_remind.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "icon_family@2x.png",
"filename" : "icon_remind@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon_family@3x.png",
"filename" : "icon_remind@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_remind.imageset/icon_remind@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_remind.imageset/icon_remind@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

4
FireBoltt/Resource/Assets.xcassets/meunImg/icon_anti_lost.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_sedentary.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "icon_anti_lost@2x.png",
"filename" : "icon_sedentary@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon_anti_lost@3x.png",
"filename" : "icon_sedentary@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_sedentary.imageset/icon_sedentary@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_sedentary.imageset/icon_sedentary@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

4
FireBoltt/Resource/Assets.xcassets/SportImg/fb_sport_icon_add_icon.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_temperature.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "sport_icon_add@2x.png",
"filename" : "icon_temperature@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "sport_icon_add@3x.png",
"filename" : "icon_temperature@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_temperature.imageset/icon_temperature@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_temperature.imageset/icon_temperature@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

4
FireBoltt/Resource/Assets.xcassets/meunImg/icon_call_up.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_version.imageset/Contents.json vendored

@ -5,12 +5,12 @@ @@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "icon_call_up@2x.png",
"filename" : "icon_version@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon_call_up@3x.png",
"filename" : "icon_version@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_version.imageset/icon_version@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_version.imageset/icon_version@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_wallet.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_wallet.imageset/icon_wallet@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/icon_wallet.imageset/icon_wallet@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

22
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/picture_bg.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/picture_bg.imageset/picture_bg@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
FireBoltt/Resource/Assets.xcassets/DeviceMenuIcon/picture_bg.imageset/picture_bg@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

22
FireBoltt/Resource/Assets.xcassets/HealthImg/icon_calories.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/HealthImg/icon_calories.imageset/icon_calories@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

BIN
FireBoltt/Resource/Assets.xcassets/HealthImg/icon_calories.imageset/icon_calories@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

22
FireBoltt/Resource/Assets.xcassets/HealthImg/icon_distance.imageset/Contents.json vendored

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

BIN
FireBoltt/Resource/Assets.xcassets/HealthImg/icon_distance.imageset/icon_distance@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

BIN
FireBoltt/Resource/Assets.xcassets/HealthImg/icon_distance.imageset/icon_distance@3x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

0
FireBoltt/Resource/Assets.xcassets/meunImg/icon_step.imageset/Contents.json → FireBoltt/Resource/Assets.xcassets/HealthImg/icon_step.imageset/Contents.json vendored

BIN
FireBoltt/Resource/Assets.xcassets/HealthImg/icon_step.imageset/icon_step@2x.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save