Skip to content
Browse files

更新tabbar

  • Loading branch information...
1 parent f7e3c8c commit 11282775a5b756014b5da7f1eb775fa01b2a2b71 @wuge1513 committed May 21, 2012
Showing with 767 additions and 337 deletions.
  1. BIN .DS_Store
  2. +94 −85 ThumbHelper.xcodeproj/project.pbxproj
  3. BIN ThumbHelper.xcodeproj/project.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate
  4. BIN ThumbHelper/.DS_Store
  5. +5 −1 ThumbHelper/AppDelegate.h
  6. +24 −13 ThumbHelper/AppDelegate.m
  7. +0 −180 ThumbHelper/DetailViewController.xib
  8. +6 −2 ThumbHelper/GooglePlace/DetailViewController.h
  9. +57 −17 ThumbHelper/GooglePlace/DetailViewController.m
  10. +8 −3 ThumbHelper/GooglePlace/PlaceMainViewController.h
  11. +25 −36 ThumbHelper/GooglePlace/PlaceMainViewController.m
  12. BIN ThumbHelper/Lib/.DS_Store
  13. +30 −0 ThumbHelper/Lib/CustomTabBar/Ivan_UITabBar.h
  14. +200 −0 ThumbHelper/Lib/CustomTabBar/Ivan_UITabBar.m
  15. +52 −0 ThumbHelper/Lib/CustomTabBar/UIBadgeView.h
  16. +266 −0 ThumbHelper/Lib/CustomTabBar/UIBadgeView.m
  17. BIN ThumbHelper/Resource/.DS_Store
  18. BIN ThumbHelper/Resource/images/.DS_Store
  19. BIN ThumbHelper/Resource/images/001.png
  20. BIN ThumbHelper/Resource/images/002.png
  21. BIN ThumbHelper/Resource/images/003.png
  22. BIN ThumbHelper/Resource/images/Add.png
  23. BIN ThumbHelper/Resource/images/Bar.png
  24. BIN ThumbHelper/Resource/images/Delete.png
  25. BIN ThumbHelper/Resource/images/Done.png
  26. BIN ThumbHelper/Resource/images/Mode1.png
  27. BIN ThumbHelper/Resource/images/Music/end.png
  28. BIN ThumbHelper/Resource/images/Music/forward.png
  29. BIN ThumbHelper/Resource/images/Music/hight.png
  30. BIN ThumbHelper/Resource/images/Music/low.png
  31. BIN ThumbHelper/Resource/images/Music/rewind.png
  32. BIN ThumbHelper/Resource/images/Music/start.png
  33. BIN ThumbHelper/Resource/images/SetMode.png
  34. BIN ThumbHelper/Resource/images/SetMusic.png
  35. BIN ThumbHelper/Resource/images/SetScene.png
  36. BIN ThumbHelper/Resource/images/SetTime.png
  37. BIN ThumbHelper/Resource/images/banner.png
  38. BIN ThumbHelper/Resource/images/banner@2X.png
  39. BIN ThumbHelper/Resource/images/btn_place_atm.png
  40. BIN ThumbHelper/Resource/images/btn_place_more.png
  41. BIN ThumbHelper/Resource/images/care.png
  42. BIN ThumbHelper/Resource/images/care@2x.png
  43. BIN ThumbHelper/Resource/images/record.png
  44. BIN ThumbHelper/Resource/images/record@2x.png
  45. BIN ThumbHelper/Resource/images/slide.png
  46. BIN ThumbHelper/Resource/images/slide@2x.png
  47. BIN ThumbHelper/Resource/images/split.png
  48. BIN ThumbHelper/btn_place_atm.png
  49. BIN ThumbHelper/btn_place_more.png
View
BIN .DS_Store
Binary file not shown.
View
179 ThumbHelper.xcodeproj/project.pbxproj
@@ -7,6 +7,10 @@
objects = {
/* Begin PBXBuildFile section */
+ CE0785001568D9F400BD7A43 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE0784FF1568D9F400BD7A43 /* MobileCoreServices.framework */; };
+ CE0785021568DA0900BD7A43 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE0785011568DA0900BD7A43 /* CFNetwork.framework */; };
+ CE0785041568DA1B00BD7A43 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE0785031568DA1B00BD7A43 /* SystemConfiguration.framework */; };
+ CE0785061568DA2A00BD7A43 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE0785051568DA2A00BD7A43 /* Security.framework */; };
CE0A6C7B154319B800008231 /* AlarmClock.plist in Resources */ = {isa = PBXBuildFile; fileRef = CE0A6C7A154319B800008231 /* AlarmClock.plist */; };
CE1BC2F0153F1F8E000613C7 /* SetRepeatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1BC2EF153F1F8D000613C7 /* SetRepeatViewController.m */; };
CE53467D154AD896006D1D5F /* libUITab.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE53467C154AD896006D1D5F /* libUITab.a */; };
@@ -49,24 +53,6 @@
CEC66AA61535D9AC00C67344 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CEC66A981535D97100C67344 /* Localizable.strings */; };
CEC66AA81535D9B600C67344 /* ThumbHelper-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = CEC66A791535D94200C67344 /* ThumbHelper-Info.plist */; };
CEC66AB71535DBFE00C67344 /* AlarmViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC66AB21535DBFE00C67344 /* AlarmViewController.m */; };
- CEC66B091535E6BD00C67344 /* 001.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AED1535E6BD00C67344 /* 001.png */; };
- CEC66B0A1535E6BD00C67344 /* 002.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AEE1535E6BD00C67344 /* 002.png */; };
- CEC66B0B1535E6BD00C67344 /* 003.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AEF1535E6BD00C67344 /* 003.png */; };
- CEC66B0C1535E6BD00C67344 /* Add.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF01535E6BD00C67344 /* Add.png */; };
- CEC66B0D1535E6BD00C67344 /* Bar.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF11535E6BD00C67344 /* Bar.png */; };
- CEC66B0E1535E6BD00C67344 /* Delete.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF21535E6BD00C67344 /* Delete.png */; };
- CEC66B0F1535E6BD00C67344 /* Done.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF31535E6BD00C67344 /* Done.png */; };
- CEC66B101535E6BD00C67344 /* Mode1.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF41535E6BD00C67344 /* Mode1.png */; };
- CEC66B111535E6BD00C67344 /* end.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF61535E6BD00C67344 /* end.png */; };
- CEC66B121535E6BD00C67344 /* forward.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF71535E6BD00C67344 /* forward.png */; };
- CEC66B131535E6BD00C67344 /* hight.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF81535E6BD00C67344 /* hight.png */; };
- CEC66B141535E6BD00C67344 /* low.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AF91535E6BD00C67344 /* low.png */; };
- CEC66B151535E6BD00C67344 /* rewind.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AFA1535E6BD00C67344 /* rewind.png */; };
- CEC66B161535E6BD00C67344 /* start.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AFB1535E6BD00C67344 /* start.png */; };
- CEC66B171535E6BD00C67344 /* SetMode.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AFC1535E6BD00C67344 /* SetMode.png */; };
- CEC66B181535E6BD00C67344 /* SetMusic.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AFD1535E6BD00C67344 /* SetMusic.png */; };
- CEC66B191535E6BD00C67344 /* SetScene.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AFE1535E6BD00C67344 /* SetScene.png */; };
- CEC66B1A1535E6BD00C67344 /* SetTime.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66AFF1535E6BD00C67344 /* SetTime.png */; };
CEC66B1B1535E6BD00C67344 /* index0.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66B011535E6BD00C67344 /* index0.png */; };
CEC66B1C1535E6BD00C67344 /* index1.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66B021535E6BD00C67344 /* index1.png */; };
CEC66B1D1535E6BD00C67344 /* index2.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66B031535E6BD00C67344 /* index2.png */; };
@@ -75,11 +61,25 @@
CEC66B201535E6BD00C67344 /* index5.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66B061535E6BD00C67344 /* index5.png */; };
CEC66B211535E6BD00C67344 /* index6.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66B071535E6BD00C67344 /* index6.png */; };
CEC66B221535E6BD00C67344 /* index7.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC66B081535E6BD00C67344 /* index7.png */; };
+ CEC97D7A156948D50081C42B /* banner.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D6F156948D30081C42B /* banner.png */; };
+ CEC97D7B156948D50081C42B /* banner@2X.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D70156948D30081C42B /* banner@2X.png */; };
+ CEC97D7C156948D50081C42B /* btn_place_atm.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D71156948D30081C42B /* btn_place_atm.png */; };
+ CEC97D7D156948D50081C42B /* btn_place_more.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D72156948D40081C42B /* btn_place_more.png */; };
+ CEC97D7E156948D50081C42B /* care.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D73156948D40081C42B /* care.png */; };
+ CEC97D7F156948D50081C42B /* care@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D74156948D40081C42B /* care@2x.png */; };
+ CEC97D80156948D50081C42B /* record.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D75156948D40081C42B /* record.png */; };
+ CEC97D81156948D50081C42B /* record@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D76156948D40081C42B /* record@2x.png */; };
+ CEC97D82156948D50081C42B /* slide.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D77156948D50081C42B /* slide.png */; };
+ CEC97D83156948D50081C42B /* slide@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D78156948D50081C42B /* slide@2x.png */; };
+ CEC97D84156948D50081C42B /* split.png in Resources */ = {isa = PBXBuildFile; fileRef = CEC97D79156948D50081C42B /* split.png */; };
+ CEC97D8A15694B350081C42B /* Ivan_UITabBar.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC97D8715694B350081C42B /* Ivan_UITabBar.m */; };
+ CEC97D8B15694B350081C42B /* UIBadgeView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC97D8915694B350081C42B /* UIBadgeView.m */; };
CED8C5431540709900B78F12 /* SetMusicViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CED8C5421540709900B78F12 /* SetMusicViewController.m */; };
CED91CAA1536BA7D007BC76D /* AddClockViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CED91CA81536BA7D007BC76D /* AddClockViewController.m */; };
CEDE395E1545B507006763C3 /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDE395D1545B507006763C3 /* SettingsViewController.m */; };
CEDE39611545B610006763C3 /* TasksViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDE39601545B610006763C3 /* TasksViewController.m */; };
CEDE39641545B702006763C3 /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDE39631545B702006763C3 /* HomeViewController.m */; };
+ CEE432EB1569025D00C0E65D /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE432EA1569025D00C0E65D /* MBProgressHUD.m */; };
CEF0177915689A2E00AB5D9D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE839560156899CE00E758B0 /* Localizable.strings */; };
CEF0177C15689A3600AB5D9D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE839560156899CE00E758B0 /* Localizable.strings */; };
CEF0177E15689A3F00AB5D9D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE839560156899CE00E758B0 /* Localizable.strings */; };
@@ -102,10 +102,13 @@
CEF017B915689BE100AB5D9D /* DDAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF017B615689BE100AB5D9D /* DDAnnotation.m */; };
CEF017BA15689BE100AB5D9D /* DDAnnotationView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF017B815689BE100AB5D9D /* DDAnnotationView.m */; };
CEF017BC15689D7300AB5D9D /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEF017BB15689D7300AB5D9D /* MapKit.framework */; };
- CEF017BE15689F7500AB5D9D /* DetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF017BD15689F7500AB5D9D /* DetailViewController.xib */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
+ CE0784FF1568D9F400BD7A43 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
+ CE0785011568DA0900BD7A43 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
+ CE0785031568DA1B00BD7A43 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
+ CE0785051568DA2A00BD7A43 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
CE0A6C7A154319B800008231 /* AlarmClock.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = AlarmClock.plist; sourceTree = "<group>"; };
CE1BC2EE153F1F8D000613C7 /* SetRepeatViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SetRepeatViewController.h; path = AlarmClock/SetRepeatViewController.h; sourceTree = "<group>"; };
CE1BC2EF153F1F8D000613C7 /* SetRepeatViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SetRepeatViewController.m; path = AlarmClock/SetRepeatViewController.m; sourceTree = "<group>"; };
@@ -156,24 +159,6 @@
CEC66A811535D94200C67344 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
CEC66AB11535DBFE00C67344 /* AlarmViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AlarmViewController.h; path = ViewController/AlarmViewController.h; sourceTree = "<group>"; };
CEC66AB21535DBFE00C67344 /* AlarmViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AlarmViewController.m; path = ViewController/AlarmViewController.m; sourceTree = "<group>"; };
- CEC66AED1535E6BD00C67344 /* 001.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = 001.png; path = Resource/images/001.png; sourceTree = "<group>"; };
- CEC66AEE1535E6BD00C67344 /* 002.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = 002.png; path = Resource/images/002.png; sourceTree = "<group>"; };
- CEC66AEF1535E6BD00C67344 /* 003.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = 003.png; path = Resource/images/003.png; sourceTree = "<group>"; };
- CEC66AF01535E6BD00C67344 /* Add.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Add.png; path = Resource/images/Add.png; sourceTree = "<group>"; };
- CEC66AF11535E6BD00C67344 /* Bar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Bar.png; path = Resource/images/Bar.png; sourceTree = "<group>"; };
- CEC66AF21535E6BD00C67344 /* Delete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Delete.png; path = Resource/images/Delete.png; sourceTree = "<group>"; };
- CEC66AF31535E6BD00C67344 /* Done.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Done.png; path = Resource/images/Done.png; sourceTree = "<group>"; };
- CEC66AF41535E6BD00C67344 /* Mode1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Mode1.png; path = Resource/images/Mode1.png; sourceTree = "<group>"; };
- CEC66AF61535E6BD00C67344 /* end.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = end.png; sourceTree = "<group>"; };
- CEC66AF71535E6BD00C67344 /* forward.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = forward.png; sourceTree = "<group>"; };
- CEC66AF81535E6BD00C67344 /* hight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hight.png; sourceTree = "<group>"; };
- CEC66AF91535E6BD00C67344 /* low.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = low.png; sourceTree = "<group>"; };
- CEC66AFA1535E6BD00C67344 /* rewind.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = rewind.png; sourceTree = "<group>"; };
- CEC66AFB1535E6BD00C67344 /* start.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = start.png; sourceTree = "<group>"; };
- CEC66AFC1535E6BD00C67344 /* SetMode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = SetMode.png; path = Resource/images/SetMode.png; sourceTree = "<group>"; };
- CEC66AFD1535E6BD00C67344 /* SetMusic.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = SetMusic.png; path = Resource/images/SetMusic.png; sourceTree = "<group>"; };
- CEC66AFE1535E6BD00C67344 /* SetScene.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = SetScene.png; path = Resource/images/SetScene.png; sourceTree = "<group>"; };
- CEC66AFF1535E6BD00C67344 /* SetTime.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = SetTime.png; path = Resource/images/SetTime.png; sourceTree = "<group>"; };
CEC66B011535E6BD00C67344 /* index0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = index0.png; sourceTree = "<group>"; };
CEC66B021535E6BD00C67344 /* index1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = index1.png; sourceTree = "<group>"; };
CEC66B031535E6BD00C67344 /* index2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = index2.png; sourceTree = "<group>"; };
@@ -182,6 +167,21 @@
CEC66B061535E6BD00C67344 /* index5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = index5.png; sourceTree = "<group>"; };
CEC66B071535E6BD00C67344 /* index6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = index6.png; sourceTree = "<group>"; };
CEC66B081535E6BD00C67344 /* index7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = index7.png; sourceTree = "<group>"; };
+ CEC97D6F156948D30081C42B /* banner.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = banner.png; path = Resource/images/banner.png; sourceTree = "<group>"; };
+ CEC97D70156948D30081C42B /* banner@2X.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "banner@2X.png"; path = "Resource/images/banner@2X.png"; sourceTree = "<group>"; };
+ CEC97D71156948D30081C42B /* btn_place_atm.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = btn_place_atm.png; path = Resource/images/btn_place_atm.png; sourceTree = "<group>"; };
+ CEC97D72156948D40081C42B /* btn_place_more.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = btn_place_more.png; path = Resource/images/btn_place_more.png; sourceTree = "<group>"; };
+ CEC97D73156948D40081C42B /* care.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = care.png; path = Resource/images/care.png; sourceTree = "<group>"; };
+ CEC97D74156948D40081C42B /* care@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "care@2x.png"; path = "Resource/images/care@2x.png"; sourceTree = "<group>"; };
+ CEC97D75156948D40081C42B /* record.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = record.png; path = Resource/images/record.png; sourceTree = "<group>"; };
+ CEC97D76156948D40081C42B /* record@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "record@2x.png"; path = "Resource/images/record@2x.png"; sourceTree = "<group>"; };
+ CEC97D77156948D50081C42B /* slide.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = slide.png; path = Resource/images/slide.png; sourceTree = "<group>"; };
+ CEC97D78156948D50081C42B /* slide@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "slide@2x.png"; path = "Resource/images/slide@2x.png"; sourceTree = "<group>"; };
+ CEC97D79156948D50081C42B /* split.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = split.png; path = Resource/images/split.png; sourceTree = "<group>"; };
+ CEC97D8615694B350081C42B /* Ivan_UITabBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Ivan_UITabBar.h; path = Lib/CustomTabBar/Ivan_UITabBar.h; sourceTree = "<group>"; };
+ CEC97D8715694B350081C42B /* Ivan_UITabBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Ivan_UITabBar.m; path = Lib/CustomTabBar/Ivan_UITabBar.m; sourceTree = "<group>"; };
+ CEC97D8815694B350081C42B /* UIBadgeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UIBadgeView.h; path = Lib/CustomTabBar/UIBadgeView.h; sourceTree = "<group>"; };
+ CEC97D8915694B350081C42B /* UIBadgeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UIBadgeView.m; path = Lib/CustomTabBar/UIBadgeView.m; sourceTree = "<group>"; };
CED8C5411540709900B78F12 /* SetMusicViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SetMusicViewController.h; path = AlarmClock/SetMusicViewController.h; sourceTree = "<group>"; };
CED8C5421540709900B78F12 /* SetMusicViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SetMusicViewController.m; path = AlarmClock/SetMusicViewController.m; sourceTree = "<group>"; };
CED91CA71536BA7D007BC76D /* AddClockViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AddClockViewController.h; path = AlarmClock/AddClockViewController.h; sourceTree = "<group>"; };
@@ -192,6 +192,8 @@
CEDE39601545B610006763C3 /* TasksViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TasksViewController.m; path = ViewController/TasksViewController.m; sourceTree = "<group>"; };
CEDE39621545B702006763C3 /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HomeViewController.h; path = ViewController/HomeViewController.h; sourceTree = "<group>"; };
CEDE39631545B702006763C3 /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HomeViewController.m; path = ViewController/HomeViewController.m; sourceTree = "<group>"; };
+ CEE432E91569025D00C0E65D /* MBProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MBProgressHUD.h; path = Lib/MBProgressHUD/MBProgressHUD.h; sourceTree = "<group>"; };
+ CEE432EA1569025D00C0E65D /* MBProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MBProgressHUD.m; path = Lib/MBProgressHUD/MBProgressHUD.m; sourceTree = "<group>"; };
CEF0177815689A2E00AB5D9D /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = LocalLanguage/French.lproj/Localizable.strings; sourceTree = "<group>"; };
CEF0177B15689A3600AB5D9D /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = LocalLanguage/Japanese.lproj/Localizable.strings; sourceTree = "<group>"; };
CEF0177D15689A3F00AB5D9D /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = LocalLanguage/ko.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -229,14 +231,17 @@
CEF017B715689BE100AB5D9D /* DDAnnotationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDAnnotationView.h; path = Lib/MapAnimation/DDAnnotationView.h; sourceTree = "<group>"; };
CEF017B815689BE100AB5D9D /* DDAnnotationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDAnnotationView.m; path = Lib/MapAnimation/DDAnnotationView.m; sourceTree = "<group>"; };
CEF017BB15689D7300AB5D9D /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
- CEF017BD15689F7500AB5D9D /* DetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DetailViewController.xib; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
CEC66A6A1535D94200C67344 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ CE0785061568DA2A00BD7A43 /* Security.framework in Frameworks */,
+ CE0785041568DA1B00BD7A43 /* SystemConfiguration.framework in Frameworks */,
+ CE0785021568DA0900BD7A43 /* CFNetwork.framework in Frameworks */,
+ CE0785001568D9F400BD7A43 /* MobileCoreServices.framework in Frameworks */,
CEF017BC15689D7300AB5D9D /* MapKit.framework in Frameworks */,
CE97A421155187260070BE11 /* CoreLocation.framework in Frameworks */,
CE5600B61539FDF1005E2E36 /* QuartzCore.framework in Frameworks */,
@@ -325,7 +330,6 @@
children = (
CE83953C1568976F00E758B0 /* DetailViewController.h */,
CE83953D1568976F00E758B0 /* DetailViewController.m */,
- CEF017BD15689F7500AB5D9D /* DetailViewController.xib */,
CE5346D2154AF6D8006D1D5F /* DefaultPlaceViewController.h */,
CE5346D3154AF6D8006D1D5F /* DefaultPlaceViewController.m */,
CE5346D5154AF6F2006D1D5F /* CustomPlaceViewController.h */,
@@ -377,6 +381,10 @@
children = (
CE5600B31539FA9B005E2E36 /* libz.1.2.5.dylib */,
CE53467C154AD896006D1D5F /* libUITab.a */,
+ CE0785051568DA2A00BD7A43 /* Security.framework */,
+ CE0785031568DA1B00BD7A43 /* SystemConfiguration.framework */,
+ CE0785011568DA0900BD7A43 /* CFNetwork.framework */,
+ CE0784FF1568D9F400BD7A43 /* MobileCoreServices.framework */,
CEF017BB15689D7300AB5D9D /* MapKit.framework */,
CE97A420155187260070BE11 /* CoreLocation.framework */,
CE5600B51539FDF1005E2E36 /* QuartzCore.framework */,
@@ -459,38 +467,22 @@
CEC66AEC1535E63200C67344 /* images */ = {
isa = PBXGroup;
children = (
- CEC66AED1535E6BD00C67344 /* 001.png */,
- CEC66AEE1535E6BD00C67344 /* 002.png */,
- CEC66AEF1535E6BD00C67344 /* 003.png */,
- CEC66AF01535E6BD00C67344 /* Add.png */,
- CEC66AF11535E6BD00C67344 /* Bar.png */,
- CEC66AF21535E6BD00C67344 /* Delete.png */,
- CEC66AF31535E6BD00C67344 /* Done.png */,
- CEC66AF41535E6BD00C67344 /* Mode1.png */,
- CEC66AFC1535E6BD00C67344 /* SetMode.png */,
- CEC66AFD1535E6BD00C67344 /* SetMusic.png */,
- CEC66AFE1535E6BD00C67344 /* SetScene.png */,
- CEC66AFF1535E6BD00C67344 /* SetTime.png */,
- CEC66AF51535E6BD00C67344 /* Music */,
+ CEC97D6F156948D30081C42B /* banner.png */,
+ CEC97D70156948D30081C42B /* banner@2X.png */,
+ CEC97D71156948D30081C42B /* btn_place_atm.png */,
+ CEC97D72156948D40081C42B /* btn_place_more.png */,
+ CEC97D73156948D40081C42B /* care.png */,
+ CEC97D74156948D40081C42B /* care@2x.png */,
+ CEC97D75156948D40081C42B /* record.png */,
+ CEC97D76156948D40081C42B /* record@2x.png */,
+ CEC97D77156948D50081C42B /* slide.png */,
+ CEC97D78156948D50081C42B /* slide@2x.png */,
+ CEC97D79156948D50081C42B /* split.png */,
CEC66B001535E6BD00C67344 /* zhishu */,
);
name = images;
sourceTree = "<group>";
};
- CEC66AF51535E6BD00C67344 /* Music */ = {
- isa = PBXGroup;
- children = (
- CEC66AF61535E6BD00C67344 /* end.png */,
- CEC66AF71535E6BD00C67344 /* forward.png */,
- CEC66AF81535E6BD00C67344 /* hight.png */,
- CEC66AF91535E6BD00C67344 /* low.png */,
- CEC66AFA1535E6BD00C67344 /* rewind.png */,
- CEC66AFB1535E6BD00C67344 /* start.png */,
- );
- name = Music;
- path = Resource/images/Music;
- sourceTree = "<group>";
- };
CEC66B001535E6BD00C67344 /* zhishu */ = {
isa = PBXGroup;
children = (
@@ -507,9 +499,31 @@
path = Resource/images/zhishu;
sourceTree = "<group>";
};
+ CEC97D8515694B200081C42B /* CustomTabBar */ = {
+ isa = PBXGroup;
+ children = (
+ CEC97D8615694B350081C42B /* Ivan_UITabBar.h */,
+ CEC97D8715694B350081C42B /* Ivan_UITabBar.m */,
+ CEC97D8815694B350081C42B /* UIBadgeView.h */,
+ CEC97D8915694B350081C42B /* UIBadgeView.m */,
+ );
+ name = CustomTabBar;
+ sourceTree = "<group>";
+ };
+ CEE432E71569024B00C0E65D /* MBProgressHUD */ = {
+ isa = PBXGroup;
+ children = (
+ CEE432E91569025D00C0E65D /* MBProgressHUD.h */,
+ CEE432EA1569025D00C0E65D /* MBProgressHUD.m */,
+ );
+ name = MBProgressHUD;
+ sourceTree = "<group>";
+ };
CEF017B315689B7900AB5D9D /* Lib */ = {
isa = PBXGroup;
children = (
+ CEC97D8515694B200081C42B /* CustomTabBar */,
+ CEE432E71569024B00C0E65D /* MBProgressHUD */,
CE97A42C15518ED60070BE11 /* SBJson */,
CEF017B415689BD400AB5D9D /* MapAnimation */,
CE5346C2154AF628006D1D5F /* CustomTabView */,
@@ -596,24 +610,6 @@
CEC66AA41535D9A300C67344 /* Localizable.strings in Resources */,
CEC66AA61535D9AC00C67344 /* Localizable.strings in Resources */,
CEC66AA81535D9B600C67344 /* ThumbHelper-Info.plist in Resources */,
- CEC66B091535E6BD00C67344 /* 001.png in Resources */,
- CEC66B0A1535E6BD00C67344 /* 002.png in Resources */,
- CEC66B0B1535E6BD00C67344 /* 003.png in Resources */,
- CEC66B0C1535E6BD00C67344 /* Add.png in Resources */,
- CEC66B0D1535E6BD00C67344 /* Bar.png in Resources */,
- CEC66B0E1535E6BD00C67344 /* Delete.png in Resources */,
- CEC66B0F1535E6BD00C67344 /* Done.png in Resources */,
- CEC66B101535E6BD00C67344 /* Mode1.png in Resources */,
- CEC66B111535E6BD00C67344 /* end.png in Resources */,
- CEC66B121535E6BD00C67344 /* forward.png in Resources */,
- CEC66B131535E6BD00C67344 /* hight.png in Resources */,
- CEC66B141535E6BD00C67344 /* low.png in Resources */,
- CEC66B151535E6BD00C67344 /* rewind.png in Resources */,
- CEC66B161535E6BD00C67344 /* start.png in Resources */,
- CEC66B171535E6BD00C67344 /* SetMode.png in Resources */,
- CEC66B181535E6BD00C67344 /* SetMusic.png in Resources */,
- CEC66B191535E6BD00C67344 /* SetScene.png in Resources */,
- CEC66B1A1535E6BD00C67344 /* SetTime.png in Resources */,
CEC66B1B1535E6BD00C67344 /* index0.png in Resources */,
CEC66B1C1535E6BD00C67344 /* index1.png in Resources */,
CEC66B1D1535E6BD00C67344 /* index2.png in Resources */,
@@ -645,7 +641,17 @@
CEF0178215689A4F00AB5D9D /* Localizable.strings in Resources */,
CEF0178415689A5B00AB5D9D /* Localizable.strings in Resources */,
CEF0178615689A6700AB5D9D /* Localizable.strings in Resources */,
- CEF017BE15689F7500AB5D9D /* DetailViewController.xib in Resources */,
+ CEC97D7A156948D50081C42B /* banner.png in Resources */,
+ CEC97D7B156948D50081C42B /* banner@2X.png in Resources */,
+ CEC97D7C156948D50081C42B /* btn_place_atm.png in Resources */,
+ CEC97D7D156948D50081C42B /* btn_place_more.png in Resources */,
+ CEC97D7E156948D50081C42B /* care.png in Resources */,
+ CEC97D7F156948D50081C42B /* care@2x.png in Resources */,
+ CEC97D80156948D50081C42B /* record.png in Resources */,
+ CEC97D81156948D50081C42B /* record@2x.png in Resources */,
+ CEC97D82156948D50081C42B /* slide.png in Resources */,
+ CEC97D83156948D50081C42B /* slide@2x.png in Resources */,
+ CEC97D84156948D50081C42B /* split.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -686,6 +692,9 @@
CEF017AB15689B2100AB5D9D /* LLFileManage.m in Sources */,
CEF017B915689BE100AB5D9D /* DDAnnotation.m in Sources */,
CEF017BA15689BE100AB5D9D /* DDAnnotationView.m in Sources */,
+ CEE432EB1569025D00C0E65D /* MBProgressHUD.m in Sources */,
+ CEC97D8A15694B350081C42B /* Ivan_UITabBar.m in Sources */,
+ CEC97D8B15694B350081C42B /* UIBadgeView.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
View
BIN ....xcodeproj/project.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate
Binary file not shown.
View
BIN ThumbHelper/.DS_Store
Binary file not shown.
View
6 ThumbHelper/AppDelegate.h
@@ -14,13 +14,14 @@
#import "AlarmViewController.h"
#import "PlaceMainViewController.h"
#import "SettingsViewController.h"
+#import "Ivan_UITabBar.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
-@property (strong, nonatomic) UICustomTabController *rootTabBarConreoller;
+@property (strong, nonatomic) Ivan_UITabBar *rootTabBarConreoller;//UICustomTabController
@property (strong, nonatomic) HomeViewController *homeViewController;
@property (strong, nonatomic) TasksViewController *tasksViewController;
@@ -29,4 +30,7 @@
@property (strong, nonatomic) SettingsViewController *settingsViewController;
+- (void)hidesBottomBarWhenPushed;
+- (void)noHidesBottomBarWhenPushed;
+
@end
View
37 ThumbHelper/AppDelegate.m
@@ -19,6 +19,15 @@ @implementation AppDelegate
@synthesize alarmViewController = _alarmViewController;
@synthesize settingsViewController = _settingsViewController;
+/*!
+ * 方法类型:系统方法
+ * 方法功能:委托类方法
+ */
+
++(AppDelegate *)App{
+ return (AppDelegate *)[[UIApplication sharedApplication]delegate];
+}
+
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
@@ -40,7 +49,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
self.homeViewController];
HomeView.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tools_bar_bg.png"]];
HomeView.title = @"Home";
- HomeView.tabBarItem.image = [UIImage imageNamed:@"change_it.png"];
+ HomeView.tabBarItem.image = [UIImage imageNamed:@"care.png"];
//Tasks View
@@ -49,23 +58,23 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
self.tasksViewController];
TasksView.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tools_bar_bg.png"]];
TasksView.title = @"Tasks";
- TasksView.tabBarItem.image = [UIImage imageNamed:@"change_it.png"];
+ TasksView.tabBarItem.image = [UIImage imageNamed:@"record.png"];
//alarm clock
self.alarmViewController = [[AlarmViewController alloc] init];
UINavigationController *AlarmView = [[UINavigationController alloc] initWithRootViewController:
self.alarmViewController];
AlarmView.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tools_bar_bg.png"]];
AlarmView.title = @"Alarms";
- AlarmView.tabBarItem.image = [UIImage imageNamed:@"change_it.png"];
+ AlarmView.tabBarItem.image = [UIImage imageNamed:@"care.png"];
// google place
self.placeMainViewController = [[PlaceMainViewController alloc] init];
UINavigationController *PlaceView = [[UINavigationController alloc] initWithRootViewController:
self.placeMainViewController];
PlaceView.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tools_bar_bg.png"]];
PlaceView.title = @"Place";
- PlaceView.tabBarItem.image = [UIImage imageNamed:@"change_it.png"];
+ PlaceView.tabBarItem.image = [UIImage imageNamed:@"record.png"];
//Settings View
self.settingsViewController = [[SettingsViewController alloc] init];
@@ -78,22 +87,24 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
NSMutableArray *view_manager = [[NSMutableArray alloc] initWithObjects:HomeView, TasksView, AlarmView, PlaceView, Settings, nil];
/*请按照上面的方法添加其他的tab控制器*/
- self.rootTabBarConreoller = [[UICustomTabController alloc] init];
- [self.rootTabBarConreoller setNeed_to_custom:YES];
- [self.rootTabBarConreoller setTab_bar_bg:[UIImage imageNamed:@"tools_bar_bg.png"]];
- [self.rootTabBarConreoller setNormal_image:[UIImage imageNamed:@"NavBar_01.png"]];
- [self.rootTabBarConreoller setSelect_image:[UIImage imageNamed:@"NavBar_01_s.png"]];
- [self.rootTabBarConreoller setShow_style:UItabbarControllerShowStyleIconAndText];
+ self.rootTabBarConreoller = [[Ivan_UITabBar alloc] init];
[self.rootTabBarConreoller setSelectedIndex:0];
- [self.rootTabBarConreoller setShow_size:49];
- [self.rootTabBarConreoller setViewControllers:view_manager];
- self.rootTabBarConreoller.font = [UIFont systemFontOfSize:12.0];
+ [self.rootTabBarConreoller setViewControllers:view_manager];
self.window.rootViewController = self.rootTabBarConreoller;
[self.window makeKeyAndVisible];
return YES;
}
+- (void)hidesBottomBarWhenPushed
+{
+ [self.rootTabBarConreoller hideCustomTabBar];
+}
+
+- (void)noHidesBottomBarWhenPushed
+{
+ [self.rootTabBarConreoller bringCustomTabBarToFront];
+}
- (void)applicationWillResignActive:(UIApplication *)application
{
/*
View
180 ThumbHelper/DetailViewController.xib
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
- <data>
- <int key="IBDocument.SystemTarget">1280</int>
- <string key="IBDocument.SystemVersion">10J869</string>
- <string key="IBDocument.InterfaceBuilderVersion">1938</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
- <string key="IBDocument.HIToolboxVersion">461.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">933</string>
- </object>
- <array key="IBDocument.IntegratedClassDependencies">
- <string>IBProxyObject</string>
- <string>IBUIView</string>
- <string>IBUITableView</string>
- </array>
- <array key="IBDocument.PluginDependencies">
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </array>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
- <integer value="1" key="NS.object.0"/>
- </object>
- <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <object class="IBProxyObject" id="372490531">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="975951072">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIView" id="191373211">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">274</int>
- <array class="NSMutableArray" key="NSSubviews">
- <object class="IBUITableView" id="738660506">
- <reference key="NSNextResponder" ref="191373211"/>
- <int key="NSvFlags">274</int>
- <string key="NSFrameSize">{320, 460}</string>
- <reference key="NSSuperview" ref="191373211"/>
- <reference key="NSWindow"/>
- <reference key="NSNextKeyView"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MQA</bytes>
- </object>
- <bool key="IBUIClipsSubviews">YES</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <bool key="IBUIAlwaysBounceVertical">YES</bool>
- <int key="IBUISeparatorStyle">1</int>
- <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
- <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
- <float key="IBUIRowHeight">44</float>
- <float key="IBUISectionHeaderHeight">22</float>
- <float key="IBUISectionFooterHeight">22</float>
- </object>
- </array>
- <string key="NSFrame">{{0, 20}, {320, 460}}</string>
- <reference key="NSSuperview"/>
- <reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="738660506"/>
- <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- </array>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <array class="NSMutableArray" key="connectionRecords">
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">view</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="191373211"/>
- </object>
- <int key="connectionID">3</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">tbPlaceList</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="738660506"/>
- </object>
- <int key="connectionID">20</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">dataSource</string>
- <reference key="source" ref="738660506"/>
- <reference key="destination" ref="372490531"/>
- </object>
- <int key="connectionID">10</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">delegate</string>
- <reference key="source" ref="738660506"/>
- <reference key="destination" ref="372490531"/>
- </object>
- <int key="connectionID">11</int>
- </object>
- </array>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <array key="orderedObjects">
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <array key="object" id="0"/>
- <reference key="children" ref="1000"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">1</int>
- <reference key="object" ref="191373211"/>
- <array class="NSMutableArray" key="children">
- <reference ref="738660506"/>
- </array>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="372490531"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">File's Owner</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="975951072"/>
- <reference key="parent" ref="0"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">9</int>
- <reference key="object" ref="738660506"/>
- <reference key="parent" ref="191373211"/>
- </object>
- </array>
- </object>
- <dictionary class="NSMutableDictionary" key="flattenedProperties">
- <string key="-1.CustomClassName">DetailViewController</string>
- <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="-2.CustomClassName">UIResponder</string>
- <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </dictionary>
- <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
- <nil key="activeLocalization"/>
- <dictionary class="NSMutableDictionary" key="localizations"/>
- <nil key="sourceID"/>
- <int key="maxID">40</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <array class="NSMutableArray" key="referencedPartialClassDescriptions">
- <object class="IBPartialClassDescription">
- <string key="className">DetailViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="outlets">
- <string key="NS.key.0">tbPlaceList</string>
- <string key="NS.object.0">UITableView</string>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <string key="NS.key.0">tbPlaceList</string>
- <object class="IBToOneOutletInfo" key="NS.object.0">
- <string key="name">tbPlaceList</string>
- <string key="candidateClassName">UITableView</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">./Classes/DetailViewController.h</string>
- </object>
- </object>
- </array>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">933</string>
- </data>
-</archive>
View
8 ThumbHelper/GooglePlace/DetailViewController.h
@@ -9,14 +9,16 @@
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
-@interface DetailViewController : UIViewController<MKMapViewDelegate>
+@interface DetailViewController : UIViewController<MKMapViewDelegate,
+UITableViewDelegate, UITableViewDataSource>
+@property (strong, nonatomic) UIActivityIndicatorView *activityView;
@property (assign, nonatomic) NSInteger curItemCount;
@property (assign, nonatomic) NSInteger totalItemCount;
@property (strong, nonatomic) UIButton *btnLoadMoreItem;
-@property (strong, nonatomic) IBOutlet UITableView *tbPlaceList;
+@property (strong, nonatomic) UITableView *tbPlaceList;//IBOutlet
@property (nonatomic,copy) NSMutableArray *muArray;
@property (nonatomic, strong) NSMutableArray *arrImage;
@@ -31,7 +33,9 @@
@property (assign, nonatomic) double lat;
@property (assign, nonatomic) double lng;
@property (strong, nonatomic) NSMutableArray *arrGeometry;
+@property (strong, nonatomic) NSMutableArray *arrReference;
+- (void)actionShowItems;
- (void)showSubPageView;
- (void)actionUpdateLocation;
- (void)actionSegmentCtl:(id)sender;
View
74 ThumbHelper/GooglePlace/DetailViewController.m
@@ -14,6 +14,7 @@
#import "NSString+SBJSON.h"
#import "PlaceMainViewController.h"
+#import "AppDelegate.h"
#define kCURRENT_ITEM_COUNT 5
@@ -22,10 +23,11 @@ @implementation DetailViewController
@synthesize curItemCount, totalItemCount;
@synthesize btnLoadMoreItem;
@synthesize tbPlaceList;
-@synthesize muArray, arrImage;
+@synthesize muArray, arrImage, arrReference;
@synthesize mapView, mkMapView, lat, lng, arrGeometry, curLocation;
@synthesize tbarMap;
@synthesize isMapShowing, isShowSubPageView;
+@synthesize activityView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
@@ -34,11 +36,20 @@ - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
if (self) {
self.title = NSLocalizedString(@"Places", @"Places");
+ self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(actionGoBack)];
+
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"地图" style:UIBarButtonItemStyleBordered target:self action:@selector(actionShowItemOnMap)];
+
+
self.muArray = [[NSMutableArray alloc] initWithCapacity:1];
NSMutableArray *_arrGeometry = [[NSMutableArray alloc] init];
self.arrGeometry = _arrGeometry;
+
+ NSMutableArray *_arrReference = [[NSMutableArray alloc] init];
+ self.arrReference = _arrReference;
+
+
}
return self;
}
@@ -62,22 +73,20 @@ - (void)viewDidLoad
self.totalItemCount = [self.muArray count];
NSLog(@"ddd = %d", self.totalItemCount);
- //初始图片
- for (NSInteger i = 0; i < kCURRENT_ITEM_COUNT; i++) {
- NSDictionary *dic = [self.muArray objectAtIndex:i];
- NSString *str1 = [dic objectForKey:@"icon"];
- //获取图片
- NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:str1]];
- UIImage *img = [UIImage imageWithData:data];
- [self.arrImage addObject:img];
- }
+ //项目列表
+ CGRect tbRect = CGRectMake(0.0, 0.0, 320.0, 460.0 - 44.0);
+ self.tbPlaceList = [[UITableView alloc] initWithFrame:tbRect style:UITableViewStylePlain];
+ self.tbPlaceList.delegate = self;
+ self.tbPlaceList.dataSource = self;
+ [self.view addSubview:self.tbPlaceList];
//add load more btn in last cell
-// self.btnLoadMoreItem = [UIButton buttonWithType:UIButtonTypeRoundedRect];
-// self.btnLoadMoreItem.frame = CGRectMake(10.0, 0.0, 300.0, 40.0);
-// [self.btnLoadMoreItem setTitle:@"加载更多..." forState:UIControlStateNormal];
-// [self.btnLoadMoreItem addTarget:self action:@selector(actionBtnLoadMoreItem) forControlEvents:UIControlEventTouchUpInside];
+ self.btnLoadMoreItem = [UIButton buttonWithType:UIButtonTypeCustom];
+ self.btnLoadMoreItem.frame = CGRectMake(10.0, 0.0, 300.0, 40.0);
+ [self.btnLoadMoreItem setImage:[UIImage imageNamed:@"btn_place_more.png"] forState:UIControlStateNormal];
+ [self.btnLoadMoreItem setTitle:@"加载更多..." forState:UIControlStateNormal];
+ [self.btnLoadMoreItem addTarget:self action:@selector(actionBtnLoadMoreItem) forControlEvents:UIControlEventTouchUpInside];
//custom background view
UIView *_mapView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 416.0)];
@@ -87,7 +96,7 @@ - (void)viewDidLoad
[self.view addSubview:self.mapView];
for (NSInteger i = 0; i < 4; i++) {
- UIButton *btnForMap = [UIButton buttonWithType:UIButtonTypeRoundedRect];
+ UIButton *btnForMap = [UIButton buttonWithType:UIButtonTypeCustom];
btnForMap.frame = CGRectMake(40.0 + i * 60.0 , 330.0, 60.0, 30.0);
[self.mapView addSubview:btnForMap];
}
@@ -116,6 +125,16 @@ - (void)viewDidLoad
[segCtl addTarget:self action:@selector(actionSegmentCtl:) forControlEvents:UIControlEventValueChanged];
[self.tbarMap addSubview:segCtl];
+ //加载更多 进度
+ self.activityView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(10.0, 10.0, 36.0, 36.0)];
+ self.activityView.center = CGPointMake(280.0, 22.0);
+
+// for (NSInteger i = 0; <#condition#>; <#increment#>) {
+// <#statements#>
+// }
+// [NSThread detachNewThreadSelector:@selector(loadImages:) toTarget:self withObject:[NSNumber numberWithInteger:i]];
+
+
}
- (void)viewDidUnload
@@ -153,9 +172,18 @@ - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interface
#pragma mark -
#pragma mark List action methods
+- (void)actionGoBack
+{
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
+ [appDelegate noHidesBottomBarWhenPushed];
+ [self.navigationController popViewControllerAnimated:YES];
+}
- (void)actionBtnLoadMoreItem
{
+ [self.activityView startAnimating];
+ [self.tbPlaceList reloadData];
+
for (NSInteger i = self.curItemCount; i < self.curItemCount + kCURRENT_ITEM_COUNT; i++) {
NSDictionary *dic = [self.muArray objectAtIndex:i];
NSString *str1 = [dic objectForKey:@"icon"];
@@ -168,6 +196,7 @@ - (void)actionBtnLoadMoreItem
NSDictionary *dicGeometry = [dic objectForKey:@"geometry"];
[self.arrGeometry addObject:dicGeometry];
}
+ sleep(1);
self.curItemCount += kCURRENT_ITEM_COUNT;
@@ -176,6 +205,7 @@ - (void)actionBtnLoadMoreItem
[self.tbPlaceList reloadData]; //重新加载表视图
[self.tbPlaceList scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:self.curItemCount - 1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];
+ //[self.activityView stopAnimating];
}
- (void)showItemDetailView
@@ -254,6 +284,11 @@ - (void)showMap
[self setCurrentLocation:self.curLocation];
+ [self performSelector:@selector(actionShowItems) withObject:nil afterDelay:0.8];
+}
+
+- (void)actionShowItems
+{
for (NSInteger i = 0; i < self.curItemCount; i++) {
NSDictionary *dic = [self.muArray objectAtIndex:i];
NSString *name = [dic objectForKey:@"name"];
@@ -274,7 +309,7 @@ - (void)showMap
annotation.title = name;//@"Drag to Move Pin";
annotation.subtitle = address;//[NSString stringWithFormat:@"%f %f", annotation.coordinate.latitude, annotation.coordinate.longitude];
[self.mkMapView addAnnotation:annotation];
- }
+ }
}
- (void)actionShowItemOnMap
@@ -350,14 +385,19 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N
if (indexPath.row == self.curItemCount) {
cell.accessoryType = UITableViewCellAccessoryNone;
[cell.contentView addSubview:self.btnLoadMoreItem];
+ [cell.contentView addSubview:self.activityView];
}else{
NSDictionary *dic = [self.muArray objectAtIndex:indexPath.row];
NSString *str2 = [dic objectForKey:@"name"];
NSString *str3 = [dic objectForKey:@"vicinity"];
- //cell.imageView.image = [self.arrImage objectAtIndex:indexPath.row];
+// if ([self.arrImage count] == 5) {
+// NSLog(@"123 = %@", self.arrImage);
+// //cell.imageView.image = [self.arrImage objectAtIndex:indexPath.row];
+// }
+
cell.textLabel.text = str2;
UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(90.0, 55.0, 300, 20)];
View
11 ThumbHelper/GooglePlace/PlaceMainViewController.h
@@ -11,6 +11,7 @@
#import "BHTabsViewController.h"
#import "DefaultPlaceViewController.h"
#import "CustomPlaceViewController.h"
+#import "MBProgressHUD.h"
@class DetailViewController;
@@ -35,9 +36,13 @@ CLLocationManagerDelegate>
@property (strong, nonatomic) NSMutableData *receivedData;
-@property (strong, nonatomic) NSMutableArray *arrItemText;
-@property (strong, nonatomic) NSMutableArray *arrItemImages;
-@property (strong, nonatomic) NSMutableArray *arrGeometry;
+
+@property (strong, nonatomic) NSMutableArray *arrItemText;//位置信息
+@property (strong, nonatomic) NSMutableArray *arrItemImages;//类型 icon
+@property (strong, nonatomic) NSMutableArray *arrGeometry;//地理坐标
+
+
+@property (strong, nonatomic) MBProgressHUD *hud;
View
61 ThumbHelper/GooglePlace/PlaceMainViewController.m
@@ -13,9 +13,10 @@
#import "SBJson.h"
#import "NSString+SBJSON.h"
+#import "AppDelegate.h"
+
-//#define USE_THREAD
#define kLOAD_IMAGES_NUM_FIRST 5
#define kSEARCH_BAR_HEIGHT 44.0
@@ -37,7 +38,7 @@ @implementation PlaceMainViewController
@synthesize detailViewController = _detailViewController;
@synthesize curLocation;
@synthesize strLongitude, strAccuracy, strLatitude;
-
+@synthesize hud;
@synthesize arrItemText, arrItemImages, receivedData, arrGeometry;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
@@ -54,7 +55,7 @@ - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
NSMutableArray *_arrItemText = [[NSMutableArray alloc] init];
self.arrItemText = _arrItemText;
- NSMutableArray *_arrItemImages = [[NSMutableArray alloc] initWithCapacity:kLOAD_IMAGES_NUM_FIRST];
+ NSMutableArray *_arrItemImages = [[NSMutableArray alloc] init];
self.arrItemImages = _arrItemImages;
for (NSInteger i = 0; i < kLOAD_IMAGES_NUM_FIRST; i++) {
@@ -67,6 +68,8 @@ - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
NSMutableArray *_arrGeometry = [[NSMutableArray alloc] init];
self.arrGeometry = _arrGeometry;
+
+
}
return self;
}
@@ -125,8 +128,9 @@ - (void)viewDidLoad
//action button
for (NSInteger row = 0; row < kITEM_ROW_NUM; row++) {
for (NSInteger col = 0; col < kITEM_COL_NUM; col++) {
- UIButton *btnAction = [UIButton buttonWithType:UIButtonTypeInfoLight];
+ UIButton *btnAction = [UIButton buttonWithType:UIButtonTypeCustom];
btnAction.tag = 1000 + col + row * 3;
+ [btnAction setImage:[UIImage imageNamed:@"btn_place_atm.png"] forState:UIControlStateNormal];
[btnAction setTitle:@"134" forState:UIControlStateNormal];
[btnAction addTarget:self action:@selector(actionBtnAction:) forControlEvents:UIControlEventTouchUpInside];
btnAction.frame = CGRectMake(30.0 + 100.0 * col, 30.0 + 80.0 * row, 57.0, 57.0);
@@ -170,7 +174,7 @@ - (void)actionBtnAction:(id)sender
UIButton *btnTemp = (UIButton *)sender;
switch (btnTemp.tag) {
- case 1000:
+ case 1000:
NSLog(@"123 = %d", btnTemp.tag);
[self btnAction:nil];
break;
@@ -202,6 +206,11 @@ - (void)actionBtnAction:(id)sender
default:
break;
}
+
+ self.hud = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
+ [self.navigationController.view addSubview:self.hud];
+ self.hud.labelText = @"正在加载...";
+ [self.hud show:YES];
}
@@ -228,8 +237,8 @@ - (void)btnAction:(id)sender
NSLog(@"===%@,%@", self.strLatitude, self.strLongitude);
NSString *strLocation = [NSString stringWithFormat:@"%@,%@",self.strLatitude, self.strLongitude];
- NSString *strRadius = @"500";
- NSString *strTypes = @"bank";
+ NSString *strRadius = @"1000";
+ NSString *strTypes = @"food";
NSString *strName = @"";
NSString *strSensor = @"false";
NSString *strKey = API_KEY;
@@ -247,23 +256,6 @@ - (void)btnAction:(id)sender
}
-- (void)loadImages:(NSNumber *)index
-{
- NSDictionary *dic = [self.arrItemText objectAtIndex:[index integerValue]];
-
- //图片
- NSString *str1 = [dic objectForKey:@"icon"];
- //获取图片
- NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:str1]];
- UIImage *img = [UIImage imageWithData:data];
- [self.arrItemImages replaceObjectAtIndex:[index integerValue] withObject:img];
-
- //位置坐标 前5个
- NSDictionary *dicGeometry = [dic objectForKey:@"geometry"];
- [self.arrGeometry addObject:dicGeometry];
- NSLog(@"yes %d", [index integerValue]);
-}
-
#pragma mark -
#pragma mark NSURLConnection
@@ -282,6 +274,7 @@ - (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void) connectionDidFinishLoading:(NSURLConnection *)connection{
+ [self.hud removeFromSuperview];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
@@ -297,24 +290,13 @@ - (void) connectionDidFinishLoading:(NSURLConnection *)connection{
self.arrItemText = [NSArray arrayWithArray:arr];
for (NSInteger i = 0; i < kLOAD_IMAGES_NUM_FIRST; i++) {
-
-#ifdef USE_THREAD
- [NSThread detachNewThreadSelector:@selector(loadImages:) toTarget:self withObject:[NSNumber numberWithInteger:i]];
-#else
+
NSDictionary *dic = [self.arrItemText objectAtIndex:i];
- //图片
- NSString *str1 = [dic objectForKey:@"icon"];
- //获取图片
- NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:str1]];
- UIImage *img = [UIImage imageWithData:data];
- [self.arrItemImages addObject:img];
-
//位置坐标 前5个
NSDictionary *dicGeometry = [dic objectForKey:@"geometry"];
[self.arrGeometry addObject:dicGeometry];
NSLog(@"no %d",i);
-#endif
}
@@ -325,7 +307,11 @@ - (void) connectionDidFinishLoading:(NSURLConnection *)connection{
dc.lng = [self.strLongitude floatValue];
dc.arrGeometry = self.arrGeometry;
dc.curLocation = self.curLocation;
+ dc.hidesBottomBarWhenPushed = YES;
+ AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
+ [appDelegate hidesBottomBarWhenPushed];
[self.navigationController pushViewController:dc animated:YES];
+
}
#pragma mark-
@@ -335,6 +321,9 @@ - (void) connectionDidFinishLoading:(NSURLConnection *)connection{
- (void) locationManager: (CLLocationManager *) manager
didUpdateToLocation: (CLLocation *) newLocation
fromLocation: (CLLocation *) oldLocation{
+
+ self.curLocation = newLocation;
+
NSString *lat = [[NSString alloc] initWithFormat:@"%g",
newLocation.coordinate.latitude];
//纬度
View
BIN ThumbHelper/Lib/.DS_Store
Binary file not shown.
View
30 ThumbHelper/Lib/CustomTabBar/Ivan_UITabBar.h
@@ -0,0 +1,30 @@
+//
+// Ivan_UITabBar.h
+// JustForTest
+//
+// Created by Ivan on 11-5-15.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+@interface Ivan_UITabBar : UITabBarController {
+ NSMutableArray *buttons;
+ int currentSelectedIndex;
+ UIImageView *slideBg;
+ UIView *cusTomTabBarView;
+ UIImageView *backGroundImageView;
+}
+
+@property (nonatomic, assign) int currentSelectedIndex;
+
+@property (nonatomic,strong) NSMutableArray *buttons;
+
+- (void)hideRealTabBar;
+- (void)hideCustomTabBar;
+- (void)bringCustomTabBarToFront;
+- (void)customTabBar;
+- (void)selectedTab:(UIButton *)button;
+
+@end
View
200 ThumbHelper/Lib/CustomTabBar/Ivan_UITabBar.m
@@ -0,0 +1,200 @@
+//
+// Ivan_UITabBar.m
+// JustForTest
+//
+// Created by Ivan on 11-5-15.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "Ivan_UITabBar.h"
+#import "UIBadgeView.h"
+
+@implementation Ivan_UITabBar
+@synthesize currentSelectedIndex;
+@synthesize buttons;
+
+static BOOL FIRSTTIME =YES;
+
+
+- (void)viewDidAppear:(BOOL)animated{
+ if (FIRSTTIME) {
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:@"hideCustomTabBar" object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(hideCustomTabBar)
+ name: @"hideCustomTabBar"
+ object: nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:@"bringCustomTabBarToFront" object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(bringCustomTabBarToFront)
+ name: @"bringCustomTabBarToFront"
+ object: nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:@"setBadge" object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(setBadge:)
+ name: @"setBadge"
+ object: nil];
+
+ slideBg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"slide"]];
+ [self hideRealTabBar];
+ [self customTabBar];
+ FIRSTTIME = NO;
+ }
+}
+
+- (void)hideRealTabBar{
+ for(UIView *view in self.view.subviews){
+ if([view isKindOfClass:[UITabBar class]]){
+ view.hidden = YES;
+ break;
+ }
+ }
+}
+
+//设置badge
+- (void)setBadge:(NSNotification *)_notification{
+ NSString *badgeValue = [_notification object];
+ UIButton *btn = [self.buttons objectAtIndex:self.selectedIndex];
+ UIBadgeView *badgeView = [[UIBadgeView alloc] initWithFrame:CGRectMake(btn.bounds.size.width/2, 0, 30, 20)];
+ badgeView.badgeString = badgeValue;
+ badgeView.badgeColor = [UIColor blueColor];
+ badgeView.tag = self.selectedIndex;
+ badgeView.delegate = self;
+ [btn addSubview:badgeView];
+}
+
+//自定义tabbar
+- (void)customTabBar{
+ //获取tabbar的frame
+ CGRect tabBarFrame = self.tabBar.frame;
+ backGroundImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 49)];
+ cusTomTabBarView = [[UIView alloc] initWithFrame:tabBarFrame];
+ //设置tabbar背景
+
+ backGroundImageView.image = [UIImage imageNamed:@"banner.png"];
+ [cusTomTabBarView addSubview:backGroundImageView];
+ cusTomTabBarView.backgroundColor = [UIColor blackColor];
+
+
+ //创建按钮
+ int viewCount = self.viewControllers.count > 5 ? 5 : self.viewControllers.count;
+ self.buttons = [NSMutableArray arrayWithCapacity:viewCount];
+ double _width = 320 / viewCount;
+ double _height = self.tabBar.frame.size.height;
+ for (int i = 0; i < viewCount; i++) {
+ UIViewController *v = [self.viewControllers objectAtIndex:i];
+ UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
+ btn.frame = CGRectMake(i*_width, 0, _width, _height);
+ [btn addTarget:self action:@selector(selectedTab:) forControlEvents:UIControlEventTouchDown];
+ btn.tag = i;
+ [btn setImage:v.tabBarItem.image forState:UIControlStateNormal];
+ [btn setImageEdgeInsets:UIEdgeInsetsMake(-10, 0, 0, 0)];
+ //添加标题
+ UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, _height-18, _width, _height-30)];
+ titleLabel.backgroundColor = [UIColor clearColor];
+ titleLabel.text = v.tabBarItem.title;
+ [titleLabel setFont:[UIFont systemFontOfSize:12]];
+ titleLabel.textAlignment = 1;
+ titleLabel.textColor = [UIColor whiteColor];
+ [btn addSubview:titleLabel];
+
+ [self.buttons addObject:btn];
+ //添加按钮之间的分割线,第一个位置和最后一个位置不需要添加
+ if (i>0 && i<5) {
+ UIImageView *splitView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"split"]];
+ splitView.frame = CGRectMake(i*_width-1,0,splitView.frame.size.width,splitView.frame.size.height);
+ [cusTomTabBarView addSubview:splitView];
+ }
+
+ //添加Badge
+ if (v.tabBarItem.badgeValue) {
+ UIBadgeView *badgeView = [[UIBadgeView alloc] initWithFrame:CGRectMake(_width/2, 0, 30, 20)];
+ badgeView.badgeString = v.tabBarItem.badgeValue;
+ badgeView.badgeColor = [UIColor orangeColor];
+ [btn addSubview:badgeView];
+ }
+ [cusTomTabBarView addSubview:btn];
+ }
+ [self.view addSubview:cusTomTabBarView];
+ [cusTomTabBarView addSubview:slideBg];
+ [self performSelector:@selector(slideTabBg:) withObject:[self.buttons objectAtIndex:0]];
+}
+
+//切换tabbar
+- (void)selectedTab:(UIButton *)button{
+ if (self.currentSelectedIndex == button.tag) {
+ [[self.viewControllers objectAtIndex:button.tag] popToRootViewControllerAnimated:YES];
+ return;
+ }
+ self.currentSelectedIndex = button.tag;
+ self.selectedIndex = self.currentSelectedIndex;
+ [self performSelector:@selector(slideTabBg:) withObject:button];
+}
+
+//将自定义的tabbar显示出来
+- (void)bringCustomTabBarToFront{
+ [self performSelector:@selector(hideRealTabBar)];
+ [cusTomTabBarView setHidden:NO];
+ CAKeyframeAnimation * animation;
+ animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
+ animation.duration = 0.25;
+ animation.delegate = self;
+ animation.removedOnCompletion = YES;
+ animation.fillMode = kCAFillModeForwards;
+ NSMutableArray *values = [NSMutableArray array];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0, 0.0, 0.0)]];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.5, 0.5, 1.0)]];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
+ animation.values = values;
+ [cusTomTabBarView.layer addAnimation:animation forKey:nil];
+}
+
+//隐藏自定义tabbar
+- (void)hideCustomTabBar{
+ [self performSelector:@selector(hideRealTabBar)];
+ CAKeyframeAnimation * animation;
+ animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
+ animation.duration = 0.1;
+ animation.delegate = self;
+ animation.removedOnCompletion = YES;
+ animation.fillMode = kCAFillModeForwards;
+ NSMutableArray *values = [NSMutableArray array];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.5, 0.5, 1.0)]];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0, 0.0, 0.0)]];
+ animation.values = values;
+ [cusTomTabBarView.layer addAnimation:animation forKey:nil];
+}
+
+//动画结束回调
+- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{
+ if (anim.duration==0.1) {
+ [cusTomTabBarView setHidden:YES];
+ }
+}
+
+//切换滑块位置
+- (void)slideTabBg:(UIButton *)btn{
+ [UIView beginAnimations:nil context:nil];
+ [UIView setAnimationDuration:0.20];
+ [UIView setAnimationDelegate:self];
+ slideBg.frame = btn.frame;
+ [UIView commitAnimations];
+ CAKeyframeAnimation * animation;
+ animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
+ animation.duration = 0.50;
+ animation.delegate = self;
+ animation.removedOnCompletion = YES;
+ animation.fillMode = kCAFillModeForwards;
+ NSMutableArray *values = [NSMutableArray array];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.2, 1.2, 1.0)]];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.9, 0.9, 0.9)]];
+ [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
+ animation.values = values;
+ [btn.layer addAnimation:animation forKey:nil];
+}
+
+
+
+
+@end
View
52 ThumbHelper/Lib/CustomTabBar/UIBadgeView.h
@@ -0,0 +1,52 @@
+//
+// UIBadgeView.h
+// UIBadgeView
+//
+// Copyright (C) 2011 by Omer Duzyol
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+#import <Foundation/Foundation.h>
+#import <QuartzCore/QuartzCore.h>
+
+
+@interface UIBadgeView : UIView {
+ NSUInteger width;
+ NSString *badgeString;
+
+ UIFont *font;
+ UITableViewCell *__weak parent;
+
+ UIColor *badgeColor;
+ UIColor *badgeColorHighlighted;
+}
+
+@property (nonatomic, readonly) NSUInteger width;
+@property (nonatomic, strong) NSString *badgeString;
+@property (nonatomic, weak) UITableViewCell *parent;
+@property (nonatomic, assign) BOOL shadowEnabled;
+@property (nonatomic, strong) UIColor *badgeColor;
+@property (nonatomic, strong) UIColor *badgeColorHighlighted;
+@property (nonatomic, unsafe_unretained) id delegate;
+
+- (void) drawRoundedRect:(CGRect) rrect inContext:(CGContextRef) context
+ withRadius:(CGFloat) radius;
+
+
+@end
View
266 ThumbHelper/Lib/CustomTabBar/UIBadgeView.m
@@ -0,0 +1,266 @@
+//
+// UIBadgeView.m
+// UIBadgeView
+//
+// Copyright (C) 2011 by Omer Duzyol
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+
+#define HEXCOLOR(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
+
+#import "UIBadgeView.h"
+
+@interface UIBadgeView()
+
+@property (nonatomic, strong) UIFont *font;
+@property (nonatomic, assign) NSUInteger width;
+
+@end
+
+
+@implementation UIBadgeView
+
+@synthesize width, badgeString, parent, badgeColor, badgeColorHighlighted, shadowEnabled,delegate;
+// from private
+@synthesize font;
+
+
+- (id) initWithFrame:(CGRect)frame
+{
+ if (self == [super initWithFrame:frame])
+ {
+ font = [UIFont boldSystemFontOfSize: 14];
+
+ self.backgroundColor = [UIColor clearColor];
+ }
+
+ return self;
+}
+
+- (void) setBadgeString:(NSString *)value{
+
+ badgeString = value;
+
+ [self setNeedsDisplay];
+}
+
+- (void) setShadowEnabled:(BOOL)value{
+ shadowEnabled = value;
+
+ [self setNeedsDisplay];
+}
+
+- (void) drawRect:(CGRect)rect
+{
+ NSString *countString = badgeString;
+
+ CGSize numberSize = [countString sizeWithFont: font];
+
+ self.width = numberSize.width + 16;
+
+ CGRect bounds = CGRectMake(0 , 0, numberSize.width + 13 , 21);
+
+ CGContextRef context = UIGraphicsGetCurrentContext();
+
+ UIColor *col;
+ if (parent.highlighted || parent.selected) {
+ if (self.badgeColorHighlighted) {
+ col = self.badgeColorHighlighted;
+ } else {
+ col = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.000];
+ }
+ } else {
+ if (self.badgeColor) {
+ col = self.badgeColor;
+ } else {
+ col = HEXCOLOR(0xf61f29ff);
+ //col = HEXCOLOR(0xff0000ff);
+ }
+ }
+
+ if (shadowEnabled) {
+ // draw shadow first
+ CGContextSaveGState(context);
+ CGContextClearRect(context, bounds);
+
+ CGContextSetShadowWithColor(context, CGSizeMake(0, 3), 2, [HEXCOLOR(0x000000ff) CGColor]);
+
+ CGContextSetFillColorWithColor(context, [HEXCOLOR(0xffffffff) CGColor]);
+
+ CGRect shadowRect = CGRectMake(bounds.origin.x + 2,
+ bounds.origin.y + 1,
+ bounds.size.width - 4,
+ bounds.size.height - 3);
+
+ [self drawRoundedRect:shadowRect inContext:context withRadius:8];
+
+ CGContextDrawPath(context, kCGPathFill);
+
+ CGContextRestoreGState(context);
+ }
+
+ CGContextSaveGState(context);
+ //CGContextClearRect(context, bounds);
+ CGContextSetAllowsAntialiasing(context, true);
+ CGContextSetLineWidth(context, 0.0);
+ CGContextSetAlpha(context, 1.0);
+
+ CGContextSetLineWidth(context, 2.0);
+
+
+
+ CGContextSetStrokeColorWithColor(context, [HEXCOLOR(0xffffffff) CGColor]);
+ CGContextSetFillColorWithColor(context, [col CGColor]);
+
+ // Draw background
+
+ CGFloat backOffset = 2;
+ CGRect backRect = CGRectMake(bounds.origin.x + backOffset,
+ bounds.origin.y + backOffset,
+ bounds.size.width - backOffset*2,
+ bounds.size.height - backOffset*2);
+
+ [self drawRoundedRect:backRect inContext:context withRadius:8];
+
+ CGContextDrawPath(context, kCGPathFillStroke);
+ /*
+ // Clip Context
+ CGRect clipRect = CGRectMake(backRect.origin.x + backOffset-1,
+ backRect.origin.y + backOffset-1,
+ backRect.size.width - (backOffset-1)*2,
+ backRect.size.height - (backOffset-1)*2);
+
+ [self drawRoundedRect:clipRect inContext:context withRadius:8];
+ CGContextClip (context);
+
+ CGContextSetBlendMode(context, kCGBlendModeClear);*/
+
+ CGContextRestoreGState(context);
+
+
+ CGRect ovalRect = CGRectMake(2, 1, bounds.size.width-4,
+ bounds.size.height /2);
+
+ bounds.origin.x = (bounds.size.width - numberSize.width) / 2 + 0.5;
+ bounds.origin.y++;
+
+ CGContextSetFillColorWithColor(context, [HEXCOLOR(0xffffffff) CGColor]);
+
+ [countString drawInRect:bounds withFont:self.font];
+
+ CGContextSaveGState(context);
+
+
+ //Draw highlight
+ CGGradientRef glossGradient;
+ CGColorSpaceRef rgbColorspace;
+ size_t num_locations = 9;
+ CGFloat locations[9] = { 0.0, 0.10, 0.25, 0.40, 0.45, 0.50, 0.65, 0.75, 1.00 };
+// CGFloat components[8] = { 1.0, 1.0, 1.0, 0.40, 1.0, 1.0, 1.0, 0.06 };
+ CGFloat components[36] = {
+ 1.0, 1.0, 1.0, 1.00,
+ 1.0, 1.0, 1.0, 0.55,
+ 1.0, 1.0, 1.0, 0.20,
+ 1.0, 1.0, 1.0, 0.20,
+ 1.0, 1.0, 1.0, 0.15,
+ 1.0, 1.0, 1.0, 0.10,
+ 1.0, 1.0, 1.0, 0.10,
+ 1.0, 1.0, 1.0, 0.05,
+ 1.0, 1.0, 1.0, 0.05 };
+ rgbColorspace = CGColorSpaceCreateDeviceRGB();
+ glossGradient = CGGradientCreateWithColorComponents(rgbColorspace,
+ components, locations, num_locations);
+
+
+ CGPoint start = CGPointMake(bounds.origin.x, bounds.origin.y);
+ CGPoint end = CGPointMake(bounds.origin.x, bounds.size.height*2);
+
+ CGContextSetAlpha(context, 1.0);
+
+ //[self drawRoundedRect:ovalRect inContext:context withRadius:4];
+
+ CGContextBeginPath (context);
+
+ CGFloat minx = CGRectGetMinX(ovalRect), midx = CGRectGetMidX(ovalRect),
+ maxx = CGRectGetMaxX(ovalRect);
+
+ CGFloat miny = CGRectGetMinY(ovalRect), midy = CGRectGetMidY(ovalRect),
+ maxy = CGRectGetMaxY(ovalRect);
+
+ CGContextMoveToPoint(context, minx, midy);
+ CGContextAddArcToPoint(context, minx, miny, midx, miny, 8);
+ CGContextAddArcToPoint(context, maxx, miny, maxx, midy, 8);
+ CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, 4);
+ CGContextAddArcToPoint(context, minx, maxy, minx, midy, 4);
+ CGContextClosePath(context);
+
+ CGContextClip (context);
+
+// CGContextDrawLinearGradient(context, glossGradient, start, end, 0);
+ CGContextDrawLinearGradient(context, glossGradient, start, end, 0);
+
+ CGGradientRelease(glossGradient);
+ CGColorSpaceRelease(rgbColorspace);
+
+ CGContextSetFillColorWithColor(context, [HEXCOLOR(0x000000ff) CGColor]);
+
+
+ CGContextRestoreGState(context);
+
+
+}
+
+
+- (void) drawRoundedRect:(CGRect) rrect inContext:(CGContextRef) context
+ withRadius:(CGFloat) radius
+{
+ CGContextBeginPath (context);
+
+ CGFloat minx = CGRectGetMinX(rrect), midx = CGRectGetMidX(rrect),
+ maxx = CGRectGetMaxX(rrect);
+
+ CGFloat miny = CGRectGetMinY(rrect), midy = CGRectGetMidY(rrect),
+ maxy = CGRectGetMaxY(rrect);
+
+ CGContextMoveToPoint(context, minx, midy);
+ CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
+ CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius);
+ CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius);
+ CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius);
+ CGContextClosePath(context);
+}
+
+//badge按下事件
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
+ UIButton *btn = (UIButton *)self.superview;
+ [self.delegate performSelector:@selector(selectedTab:) withObject:btn];
+}
+
+
+- (void) dealloc
+{
+ parent = nil;
+
+
+}
+
+
+
+@end
View
BIN ThumbHelper/Resource/.DS_Store
Binary file not shown.
View
BIN ThumbHelper/Resource/images/.DS_Store
Binary file not shown.
View
BIN ThumbHelper/Resource/images/001.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/002.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/003.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Add.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Bar.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Delete.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Done.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Mode1.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Music/end.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Music/forward.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Music/hight.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Music/low.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Music/rewind.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/Music/start.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/SetMode.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/SetMusic.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/SetScene.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/SetTime.png
Deleted file not rendered
View
BIN ThumbHelper/Resource/images/banner.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN ThumbHelper/Resource/images/banner@2X.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN ThumbHelper/Resource/images/btn_place_atm.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN ThumbHelper/Resource/images/btn_place_more.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN ThumbHelper/Resource/images/care.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN ThumbHelper/Resource/images/care@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN ThumbHelper/Resource/images/record.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN ThumbHelper/Resource/images/record@2x.png
Diff not rendered.
View
BIN ThumbHelper/Resource/images/slide.png
Diff not rendered.
View
BIN ThumbHelper/Resource/images/slide@2x.png
Diff not rendered.
View
BIN ThumbHelper/Resource/images/split.png
Diff not rendered.
View
BIN ThumbHelper/btn_place_atm.png
Diff not rendered.
View
BIN ThumbHelper/btn_place_more.png
Diff not rendered.

0 comments on commit 1128277

Please sign in to comment.
Something went wrong with that request. Please try again.