From 9aa32bd5ed75d54b2141b6c91f163d43216a3643 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 06 十二月 2019 13:14:02 +0800
Subject: [PATCH] 20191206

---
 HDL-ON_iOS/Resources/Phone/Navigation/CollectionIconOn.png                                 |    0 
 Shared.IOS/UI/GestureLockView.cs                                                           |  219 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm                                             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data             |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792*828.png                            |    0 
 HDL_ON/HDL_ON.projitems                                                                    |   18 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data       |    0 
 HDL_ON/DAL/Net/MqttCommon.cs                                                               |    4 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/marker_blue@2x.png                      |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data              |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalDataPage.cs                                      |   39 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin@3x.png                         |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/waterline.data                          |    0 
 Shared.IOS/BaseApplicationDelegate.cs                                                      |  224 
 Shared.IOS/Reachability.cs                                                                 |  151 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/828*1792.png                            |    0 
 HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs                                               |   55 
 Shared.IOS/UI/CoverFlowLayout.cs                                                           |  356 +
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineDashTexture.png                     |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineDashTextureThin.png                 |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/calloutArrowMask@2x.png                 |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_blue.png                       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png           |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png              |    0 
 Shared.IOS.TBL/Resources/ic_gdmap_zoom_out.png                                             |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data       |    1 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436*1125.png                           |    0 
 HDL-ON_iOS/Resources/Phone/Navigation/UserPageNavbg.png                                    |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin.png                                  |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data       |    0 
 HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs                                           |  299 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow@3x.png                       |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136-1.png                          |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png    |    0 
 Shared.IOS.TBL/Resources/ic_wd_curtain_bg_top.png                                          |    0 
 Shared.IOS/UI/ImageView.cs                                                                 |  130 
 Shared.IOS.TBL/ApiDefinition.cs                                                            | 1753 +++++
 Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTextureThin.png                        |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_null.data              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin.png                           |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_night.data                       |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png         |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_darkred.png             |    0 
 Shared.IOS/UI/Dialog.cs                                                                    |  183 
 Shared.IOS/UI/ColorPicker.cs                                                               |  164 
 Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_red.png                        |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift@3x.png                   |    0 
 Shared.IOS.TBL/Resources/ic_gdmap_home.png                                                 |    0 
 Shared.IOS/UI/TimeView.cs                                                                  |  113 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/lineround.data                   |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineTextureThin.png                     |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow.png                                 |    0 
 Shared.IOS/StructsAndEnums.cs                                                              |   47 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/lineTextureThin.png                            |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2688.png                           |    0 
 Shared.IOS/ApiDefinition.cs                                                                |  365 +
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960-1.png                           |    0 
 Shared.IOS/BaseViewController.cs                                                           |   36 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_gray.png                |    0 
 Shared.IOS/Properties/AssemblyInfo.cs                                                      |   34 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png       |    0 
 Shared.IOS/UI/Alert.cs                                                                     |  107 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_l.data                              |    0 
 HDL-ON_iOS/Info.plist                                                                      |    6 
 HDL_ON/HDL/Operation/UserInfo.cs                                                           |   34 
 Shared.IOS/CommonClass.cs                                                                  |   28 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data      |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow.png                          |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data             |    0 
 Shared.IOS.TBL/Resources/ic_wd_curtain_open.png                                            |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3dlandscape.xml                  |  101 
 Shared.IOS/Ezviz.cs                                                                        |   39 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl_n.data                       |    0 
 Shared.IOS/UI/VerticalRefreshLayout.cs                                                     |  279 
 Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTexture.png                            |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@3x.png                               |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data       |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960.png                             |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2688*1242.png                           |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask@2x.png                        |    0 
 Shared.IOS/Utils/HDLUtils.cs                                                               |   35 
 Shared.IOS/UI/View.cs                                                                      | 1040 +++
 Shared.IOS/UI/PageLayout.cs                                                                |  303 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2208.png                           |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data      |    0 
 Shared.IOS.TBL/Library/GDMapKit/libGDMapKit.a                                              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data      |    0 
 Shared.IOS/Net/NetWiFi.cs                                                                  |   43 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl.data                                |    0 
 Shared.IOS/UI/Button.cs                                                                    |  452 +
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data             |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_red.png                 |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@3x.png                              |    0 
 Shared.IOS.TBL/Shared.IOS.TBL.csproj                                                       |  217 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png       |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png            |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineTexture.png                         |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_darkred.png                    |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136.png                            |    0 
 HDL_ON/UI/MainPage.cs                                                                      |   42 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin@3x.png                           |    0 
 Shared.IOS/UI/WiimuUPnP.cs                                                                 |   91 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png                    |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_n.data                              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png          |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/bktile.data                      |    0 
 Shared.IOS/UI/Lanuage.cs                                                                   |   99 
 Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@3x.png                                  |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_yellow.png              |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png                    |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png             |    0 
 Shared.IOS.TBL/Resources/ic_gdmap_back.png                                                 |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue.png                                |    0 
 Shared.IOS/UI/Camera.cs                                                                    |  281 
 Shared.IOS/UI/RowLayout.cs                                                                 |  262 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data      |    0 
 HDL_ON/UI/UI1-Login/UI/LoginPage.cs                                                        |    1 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl.data                         |    0 
 Shared.IOS.TBL/Library/libHDLWidgetLibrary.a                                               |    0 
 Shared.IOS/UI/Spinner.cs                                                                   |  186 
 HDL_ON/DAL/Server/HttpServerRequestBase.cs                                                 |   21 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile_n.data                           |    0 
 Shared.IOS/UI/LongPressMoveVerticalScrolViewLayout.cs                                      |  277 
 Shared.IOS/UI/UIPickerView.cs                                                              |  249 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png          |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png              |    0 
 HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIconOn.png                             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/redPin.png                                     |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/lineTexture.png                                |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl.data                                |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125*2436.png                           |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750*1334.png                            |    0 
 Shared.IOS/UI/Scan.cs                                                                      |   26 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/offline/offlinePackage.plist                   |    0 
 Shared.IOS/Native References/libMyLibrary.a                                                |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash.data                        |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl_l.data                       |    0 
 Shared.IOS/Volume.cs                                                                       |   77 
 .vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhone.json                          |    2 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data        |    0 
 Shared.IOS.TBL/Resources/ic_gdmap_add.png                                                  |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@2x.png                          |    0 
 .vs/HDL_APP_Project/xs/UserPrefs.xml                                                       |   36 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data      |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@2x.png                                |    0 
 Shared.IOS/UI/Tip.cs                                                                       |   77 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl_l.data                       |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_.png                             |    0 
 Shared.IOS.TBL/Properties/AssemblyInfo.cs                                                  |   36 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3d_sky_day.data                  |    0 
 HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs                                                    |  344 
 Shared.IOS.TBL/Resources/AMap.bundle/Bundle3D.plist                                        |   74 
 Shared.IOS.TBL/Resources/ic_wd_curtain_roll_progress.png                                   |    0 
 Shared.IOS/UI/HorizontalSeekBar.cs                                                         |  340 +
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dportrait.xml                          |  101 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data             |    0 
 HDL_ON/DAL/Net/CommonPage.cs                                                               |    5 
 Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@2x.png                               |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data             |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash_tq.data                     |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash.data                               |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png                 |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data        |    0 
 CommonLib/dll/Shared.IOS.dll                                                               |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data       |    0 
 Shared.IOS.TBL/Resources/ic_gdmap_myLocation.png                                           |    0 
 Shared.IOS/UI/EditText.cs                                                                  |  513 +
 Shared.IOS.TBL/Resources/ic_wd_curtain_h_bg.png                                            |    0 
 Shared.IOS/UI/DateView.cs                                                                  |  124 
 Shared.IOS/UI/Video.cs                                                                     |   93 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data       |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMapFoundationKit.a                                        |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data              |    0 
 Shared.IOS/UI/UrlMonitor.cs                                                                |  131 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data              |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift@3x.png                    |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_yellow.png                     |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png                |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data      |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png                   |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask.png                           |    0 
 HDL_ON/UI/UI1-Login/UI/RegisterPage.cs                                                     |    4 
 Shared.IOS/UI/TextView.cs                                                                  |  467 +
 Shared.IOS.TBL/Structs.cs                                                                  |  105 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift@2x.png                      |    0 
 Shared.IOS/UI/MusicVerticalScrolViewLayout.cs                                              |  262 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data       |    0 
 Shared.IOS/packages.config                                                                 |   10 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/bktile_n.data                    |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/roadarrow.data                          |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl.data                         |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data      |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data            |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/calloutArrowMask.png                    |    0 
 HDL_ON/Entity/Enumerative/EmptyHttpReques.cs                                               |   23 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png          |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@3x.png                           |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/select_@2x.png                                 |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data              |    1 
 Shared.IOS/UI/ArcScaleSeekBar.cs                                                           |  331 +
 Shared.IOS/UI/ViewGroup.cs                                                                 |  293 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3d_sky_night.data                |    0 
 Shared.IOS.TBL/Resources/ic_gdmap_search.png                                               |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/arrow_line_inner.png                    |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data             |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data       |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin@3x.png                        |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@2x.png                                  |    0 
 Shared.IOS.TBL/Library/GDMapKit/MAMapKit.a                                                 |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_null.data                     |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data               |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/select_.png                                    |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl_l.data                       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@2x.png                             |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs                                |   94 
 Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@3x.png                          |    0 
 Shared.IOS/Native References/libSmartLink.a                                                |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMapLocationKit.a                                          |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_green.png               |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data             |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png      |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin@2x.png                           |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png                 |    0 
 Shared.IOS/Shared.IOS.sln                                                                  |   17 
 HDL-ON_iOS/AppDelegate.cs                                                                  |   32 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data             |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png    |    0 
 HDL-ON_iOS/Resources/Language.ini                                                          |   12 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data              |    0 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide                                                 |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl_l.data                       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_gray.png                       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data              |    1 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320*480.png                             |    0 
 Shared.IOS/IO/FileUtils.cs                                                                 |  291 
 HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIconOn.png                        |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift@3x.png                      |    0 
 Shared.IOS/UI/GDMapView.cs                                                                 |   41 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/waterline.data                   |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_@2x.png                          |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift.png                         |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/lineround.data                          |    0 
 HDL_ON/UI/UI2/UserPageBLL.cs                                                               |   52 
 Shared.IOS/UI/PickerView.cs                                                                |  176 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_tq.data                            |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/building.data                    |    0 
 Shared.IOS/UI/Application.cs                                                               |  329 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift.png                      |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/arrow_line_inner.png                           |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift@2x.png                    |    0 
 HDL-ON_iOS/Resources/Phone/LoginIcon/2.png                                                 |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/Bundle3D.plist                                 |   74 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin.png                              |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin.png                                   |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data       |    0 
 Shared.IOS/Shared.IOS.userprefs                                                            |    9 
 Shared.IOS/MusicInfo.cs                                                                    |  228 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl.data                         |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_blue.png                |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_l.data                              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data      |    0 
 .vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhoneSimulator.json                 |    2 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl.data                                |    0 
 Shared.IOS/UI/Loading.cs                                                                   |  191 
 Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue@2x.png                             |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png         |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/search_scenic_icon.data          |    0 
 Shared.IOS/UI/MyEchartsView.cs                                                             |  133 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png                |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl_n.data                       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png           |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png                 |    0 
 Shared.IOS/Shared.IOS.csproj                                                               |  188 
 Shared.IOS/UI/Contacts.cs                                                                  |   66 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data     |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/search_scenic_icon.data                 |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin.png                            |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift.png                             |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data      |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile.data                             |    0 
 HDL_ON/UI/UI0-Public/PublicMothed.cs                                                       |   31 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin@2x.png                         |    0 
 Shared.IOS/UI/Enum.cs                                                                      |   85 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data       |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data       |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data      |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data              |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data              |    0 
 HDL_ON/Common/R.cs                                                                         |    8 
 Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift.png                                |    0 
 .vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal                                             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_n.data                              |    0 
 Shared.IOS/Utils/TouchIDUtils.cs                                                           |  110 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                                               |   50 
 Shared.IOS.TBL/Resources/ic_gdmap_delete.png                                               |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data                    |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs                                    |   22 
 Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift.png                              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_@3x.png                          |    0 
 Shared.IOS.TBL/Resources/ic_gdmap_now.png                                                  |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data             |    0 
 Shared.IOS.TBL/Resources/ic_wd_curtain_roll_bg.png                                         |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_day.data                         |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data       |    1 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_l.data                              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data      |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl.data                         |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json                           |   72 
 HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs                                              |    4 
 Shared.IOS/UI/EditTextView.cs                                                              |  587 +
 HDL_ON/UI/UI2/UserPage.cs                                                                  |  283 
 Shared.IOS.TBL/Resources/AMap.bundle/offline/offlinePackage.plist                          |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/building.data                           |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash_cd.data                     |    0 
 HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208*1242.png                           |    0 
 HDL-ON_iOS/Resources/Phone/PersonalCenter/HomeListbg.png                                   |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_n.data                              |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@2x.png                           |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@2x.png                              |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data             |    0 
 Shared.IOS/UI/CurtainRollSeekBar.cs                                                        |  330 +
 HDL_APP_Project.sln                                                                        |   28 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data      |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/marker_blue.png                         |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3dportrait.xml                   |  101 
 Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@3x.png                             |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data              |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data          |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data       |    0 
 Shared.IOS/UI/UIDrawerLayout.cs                                                            |  444 +
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl.data                                |    0 
 HDL_ON/DAL/Server/HttpServerRequest.cs                                                     |  196 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin@2x.png                        |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift.png                       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dlandscape.xml                         |  101 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_l.data                              |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data                 |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_cd.data                            |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl.data                         |    0 
 Shared.IOS/UI/HorizontalPages.cs                                                           |  373 +
 Shared.IOS/UI/ArcSeekBar.cs                                                                |  426 +
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl_l.data                       |    0 
 Shared.IOS/Server.cs                                                                       |  172 
 Shared.IOS.TBL/Resources/AMap.bundle/images/select_@3x.png                                 |    0 
 HDL_ON/HDL/Operation/UserConfig.cs                                                         |   30 
 .vs/HDL_APP_Project/xs/project-cache/Shared.IOS-Debug.json                                 |    1 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl_n.data                       |    0 
 Shared.IOS/Net/WifiUtil.cs                                                                 |   36 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift@2x.png                   |    0 
 Shared.IOS/UI/HorizontalScrolViewLayout.cs                                                 |  183 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data              |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_green.png                      |    0 
 Shared.IOS.TBL/Resources/ic_wd_curtain_h_progress.png                                      |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl_n.data                       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_l.data                              |    0 
 Shared.IOS/UI/UICoverFlowView.cs                                                           |  303 
 Shared.IOS/UI/CurtainSeekBar.cs                                                            |  327 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl_n.data                       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_n.data                              |    0 
 HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs                                                 |  393 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data       |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@3x.png                                |    0 
 CommonLib/libWeChatSDK.a                                                                   |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/roadarrow.data                   |    0 
 Shared.IOS/UI/WaveSeekBar.cs                                                               |  381 +
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_n.data                              |    0 
 .vs/HDL_APP_Project/xs/project-cache/Shared.IOS.TBL-Debug.json                             |    1 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data              |    0 
 Shared.IOS.TBL/Resources/ic_wd_curtain_h_open.png                                          |    0 
 Shared.IOS/UI/WebView.cs                                                                   |   34 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data      |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data      |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data             |    0 
 Shared.IOS/UI/FrameLayout.cs                                                               |   89 
 Shared.IOS/UI/VerticalSeekBar.cs                                                           |  459 +
 Shared.IOS/UI/VerticalScrolViewLayout.cs                                                   |  199 
 /dev/null                                                                                  |   27 
 Shared.IOS/UI/CropImage.cs                                                                 |  106 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png      |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data      |    0 
 Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl.data                                |    0 
 Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow@2x.png                       |    0 
 400 files changed, 19,014 insertions(+), 774 deletions(-)

diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml
index cafcc93..6835b3d 100644
--- a/.vs/HDL_APP_Project/xs/UserPrefs.xml
+++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,24 +1,44 @@
 锘�<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
-  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.6242be7109c740c6cb8999a8904b6e0ea8d45192" />
-  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/UserPage.cs">
+  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.6242be7109c740c6cb8999a8904b6e0ea8d45192" />
+  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalDataPage.cs">
     <Files>
-      <File FileName="HDL_ON/Common/R.cs" Line="27" Column="44" />
-      <File FileName="HDL-ON_iOS/Resources/Language.ini" />
-      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs" />
-      <File FileName="HDL_ON/UI/UI2/UserPage.cs" Line="213" Column="41" />
+      <File FileName="HDL_ON/UI/MainPage.cs" Line="57" Column="37" />
+      <File FileName="HDL_ON/HDL/Operation/UserConfig.cs" />
+      <File FileName="HDL-ON_iOS/Info.plist" />
+      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs" />
+      <File FileName="HDL_ON/UI/UI2/UserPage.cs" />
+      <File FileName="HDL_ON/UI/UI2/UserPageBLL.cs" />
+      <File FileName="HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs" />
+      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalDataPage.cs" Line="32" Column="56" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
           <Node name="HDL_APP_Project" expanded="True">
             <Node name="HDL_ON" expanded="True">
+              <Node name="Common" expanded="True" />
+              <Node name="HDL" expanded="True">
+                <Node name="Operation" expanded="True" />
+              </Node>
               <Node name="UI" expanded="True">
+                <Node name="UI0-Public" expanded="True" />
+                <Node name="UI1-Login" expanded="True">
+                  <Node name="BLL" expanded="True" />
+                  <Node name="UI" expanded="True" />
+                </Node>
                 <Node name="UI2" expanded="True">
-                  <Node name="UserPage.cs" selected="True" />
+                  <Node name="4-PersonalCenter" expanded="True">
+                    <Node name="BLL" expanded="True" />
+                    <Node name="UI" expanded="True">
+                      <Node name="PersonalDataPage.cs" selected="True" />
+                    </Node>
+                  </Node>
                 </Node>
               </Node>
             </Node>
-            <Node name="HDL-ON_iOS" expanded="True" />
+            <Node name="HDL-ON_iOS" expanded="True">
+              <Node name="Resources" expanded="True" />
+            </Node>
           </Node>
         </State>
       </Pad>
diff --git a/.vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhone.json b/.vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhone.json
index 1a80cc9..cda6b1e 100644
--- a/.vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhone.json
+++ b/.vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhone.json
@@ -1 +1 @@
-{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Users/nigemacpc/.nuget/packages/mqttnet/3.0.8/lib/netstandard2.0/MQTTnet.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/newtonsoft.json/12.0.2/lib/netstandard2.0/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/OpenTK-1.0.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/ON/SmartHome/SmartHome/dll/Shared.IOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/ON/SmartHome/SmartHome/dll/Shared.IOS.TBL.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/ON/SmartHome/SmartHome/dll/Shared.IOS.TCL.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Numerics.Vectors.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Web.Services.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/xamarin.essentials/1.1.0/lib/xamarinios10/Xamarin.Essentials.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Cng.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.DeriveBytes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.Xsl.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Cache.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Utilities.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.CodePages.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.HttpListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Pkcs.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.SqlClient.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Mail.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RSA.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Annotations.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.WindowsRuntime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceProcess.ServiceController.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.AuthenticationManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDsa.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.OpenSsl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RandomNumberGenerator.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.ProtectedData.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.ServicePoint.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.NetTcp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.TypeExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceEvent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Duplex.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.DispatchProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.Aes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Primitives.dll","Aliases":[],"Framework":null}],"Files":["/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Main.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/AppDelegate.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewController.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewController.designer.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewControllerBase.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Reachability.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Control.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/MyEnum.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/CRC.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/BusSocket.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/RemoteInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/UserConfig.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/UserInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Packet.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Target.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/DeviceModular/PanelModular.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/DeviceModular/CommonModular.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Device/Common.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/MainPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/CommonPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/HttpListener.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/FileUtils.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Common/R.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/MyWebClient.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/MqttCommon.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/CSS/CSS.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Server/HttpServerRequest.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI0-Public/PublicAssmebly.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI0-Public/PublicMothed.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/BackupInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/DeviceInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/FolderRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/GatewayRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/MessageInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResponsePack.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResultStatus.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResultSubaccount.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RoomInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RoomObjectiveRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SceneObjectiveRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SceneRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SendJson.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SensorHistory.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SubAccountRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/Timer.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/UserLoginRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/Enumerative/EmptyHttpReques.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Server/HttpServerRequestBase.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/LoginBaseView.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/LoginPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/RegisterPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/ResetPassword_VerificationCode.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/UserPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024x500.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X748.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X768.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125X2436.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242x2208.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2008.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2048.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1496.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1536.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X2732 .png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208X1242.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436X1125.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320X480.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/4096X4096.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X1136.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X960.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1134.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1334.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1004.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1024.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/1024.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/120.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/152.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/167.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/180.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/20.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/29.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/40.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/58.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/60.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/76.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/80.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/87.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/40路40@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/60路60@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/58路58@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/87路87@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/80路80@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/120路120@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/120路120@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/180路180@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/20路20.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/40路40@2x-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/29路29.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/58路58@2x-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/1024路1024@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/LaunchScreen.storyboard","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Main.storyboard","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Info.plist","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Entitlements.plist","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/ShowPasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/SearchIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/VerificationCodeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/AccountIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/QQIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/PasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/WechatIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/HidePasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/2.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/EmailIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/3.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Language.ini","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/BackIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/Logo.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/Logo-bg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/UserTypebg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/DownIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AdminTypeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/MemberTypeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceManageIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceMemberIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceArmIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceDataBackupIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AuxiliaryFunctionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddFunctionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/NightViewIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/SwitchIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/GeneralSettingsIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/SupportIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/UserPageNavbg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/CollectionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/PersonalCenterIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/PersonalCenterIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/iTunesArtwork","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/iTunesArtwork@2x"],"BuildActions":["Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","InterfaceDefinition","InterfaceDefinition","None","None","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","ITunesArtwork","ITunesArtwork"],"Analyzers":[]}
\ No newline at end of file
+{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Users/nigemacpc/.nuget/packages/mqttnet/3.0.8/lib/netstandard2.0/MQTTnet.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/newtonsoft.json/12.0.2/lib/netstandard2.0/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/OpenTK-1.0.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Numerics.Vectors.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Web.Services.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/xamarin.essentials/1.1.0/lib/xamarinios10/Xamarin.Essentials.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/bin/Debug/Shared.IOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Cng.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.DeriveBytes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.Xsl.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Cache.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Utilities.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.CodePages.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.HttpListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Pkcs.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.SqlClient.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Mail.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RSA.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Annotations.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.WindowsRuntime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceProcess.ServiceController.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.AuthenticationManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDsa.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.OpenSsl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RandomNumberGenerator.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.ProtectedData.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.ServicePoint.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.NetTcp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.TypeExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceEvent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Duplex.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.DispatchProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.Aes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Primitives.dll","Aliases":[],"Framework":null}],"Files":["/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Main.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/AppDelegate.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewController.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewController.designer.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewControllerBase.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Reachability.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Control.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/MyEnum.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/CRC.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/BusSocket.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/RemoteInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/UserConfig.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/UserInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Packet.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Target.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/DeviceModular/PanelModular.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/DeviceModular/CommonModular.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Device/Common.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/MainPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/CommonPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/HttpListener.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/FileUtils.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Common/R.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/MyWebClient.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/MqttCommon.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/CSS/CSS.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Server/HttpServerRequest.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI0-Public/PublicAssmebly.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI0-Public/PublicMothed.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResponsePack.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/Enumerative/EmptyHttpReques.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Server/HttpServerRequestBase.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/LoginBaseView.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/LoginPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/RegisterPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/ResetPassword_VerificationCode.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/UserPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/UserPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalDataPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024x500.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X2732 .png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/4096X4096.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1134.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/1024.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/120.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/152.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/167.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/180.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/20.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/29.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/40.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/58.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/60.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/76.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/80.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/87.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/40路40@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/60路60@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/58路58@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/87路87@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/80路80@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/120路120@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/120路120@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/180路180@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/20路20.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/40路40@2x-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/29路29.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/58路58@2x-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/1024路1024@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2688.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/828*1792.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2688*1242.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792*828.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125*2436.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436*1125.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2208.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750*1334.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208*1242.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320*480.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/LaunchScreen.storyboard","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Main.storyboard","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Info.plist","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Entitlements.plist","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/ShowPasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/SearchIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/VerificationCodeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/AccountIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/QQIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/PasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/WechatIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/HidePasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/2.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/EmailIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/3.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Language.ini","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/BackIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/Logo.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/Logo-bg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/UserTypebg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/DownIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AdminTypeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/MemberTypeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceManageIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceMemberIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceArmIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceDataBackupIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AuxiliaryFunctionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddFunctionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/NightViewIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/SwitchIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/GeneralSettingsIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/SupportIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/UserPageNavbg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/CollectionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/PersonalCenterIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/PersonalCenterIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/CollectionIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/HomeListbg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/iTunesArtwork","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/iTunesArtwork@2x"],"BuildActions":["Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","InterfaceDefinition","InterfaceDefinition","None","None","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","ITunesArtwork","ITunesArtwork"],"Analyzers":[]}
\ No newline at end of file
diff --git a/.vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhoneSimulator.json b/.vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhoneSimulator.json
index e612061..73a2e24 100644
--- a/.vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhoneSimulator.json
+++ b/.vs/HDL_APP_Project/xs/project-cache/HDL-ON_iOS-Debug|iPhoneSimulator.json
@@ -1 +1 @@
-{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Users/nigemacpc/.nuget/packages/mqttnet/3.0.8/lib/netstandard2.0/MQTTnet.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/newtonsoft.json/12.0.2/lib/netstandard2.0/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/OpenTK-1.0.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/ON/SmartHome/SmartHome/dll/Shared.IOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Numerics.Vectors.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Web.Services.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/xamarin.essentials/1.1.0/lib/xamarinios10/Xamarin.Essentials.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Cng.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.DeriveBytes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.Xsl.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Cache.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Utilities.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.CodePages.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.HttpListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Pkcs.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.SqlClient.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Mail.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RSA.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Annotations.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.WindowsRuntime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceProcess.ServiceController.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.AuthenticationManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDsa.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.OpenSsl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RandomNumberGenerator.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.ProtectedData.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.ServicePoint.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.NetTcp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.TypeExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceEvent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Duplex.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.DispatchProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.Aes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Primitives.dll","Aliases":[],"Framework":null}],"Files":["/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Main.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/AppDelegate.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewController.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewController.designer.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewControllerBase.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Reachability.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Control.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/MyEnum.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/CRC.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/BusSocket.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/RemoteInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/UserConfig.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/UserInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Packet.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Target.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/DeviceModular/PanelModular.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/DeviceModular/CommonModular.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Device/Common.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/MainPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/CommonPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/HttpListener.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/FileUtils.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Common/R.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/MyWebClient.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/MqttCommon.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/CSS/CSS.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Server/HttpServerRequest.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI0-Public/PublicAssmebly.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI0-Public/PublicMothed.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/BackupInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/DeviceInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/FolderRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/GatewayRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/MessageInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResponsePack.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResultStatus.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResultSubaccount.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RoomInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RoomObjectiveRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SceneObjectiveRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SceneRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SendJson.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SensorHistory.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SubAccountRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/Timer.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/UserLoginRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/Enumerative/EmptyHttpReques.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Server/HttpServerRequestBase.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/LoginBaseView.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/LoginPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/RegisterPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/ResetPassword_VerificationCode.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024x500.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X748.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X768.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125X2436.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242x2208.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2008.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2048.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1496.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1536.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X2732 .png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208X1242.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436X1125.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320X480.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/4096X4096.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X1136.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X960.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1134.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1334.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1004.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1024.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/1024.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/120.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/152.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/167.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/180.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/20.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/29.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/40.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/58.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/60.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/76.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/80.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/87.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/40路40@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/60路60@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/58路58@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/87路87@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/80路80@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/120路120@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/120路120@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/180路180@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/20路20.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/40路40@2x-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/29路29.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/58路58@2x-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/1024路1024@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/LaunchScreen.storyboard","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Main.storyboard","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Info.plist","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Entitlements.plist","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/ShowPasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/SearchIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/VerificationCodeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/AccountIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/QQIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/PasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/WechatIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/HidePasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/2.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/EmailIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/3.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Language.ini","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/BackIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/Logo.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/Logo-bg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/UserTypebg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/iTunesArtwork","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/iTunesArtwork@2x"],"BuildActions":["Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","InterfaceDefinition","InterfaceDefinition","None","None","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","ITunesArtwork","ITunesArtwork"],"Analyzers":[]}
\ No newline at end of file
+{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Users/nigemacpc/Desktop/CommonLib/dll/Shared.IOS/MJRefresh_Xamarin.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/mqttnet/3.0.8/lib/netstandard2.0/MQTTnet.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/newtonsoft.json/12.0.2/lib/netstandard2.0/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/OpenTK-1.0.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/CommonLib/dll/Shared.IOS/Shared.IOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/CommonLib/dll/Shared.IOS/Shared.IOS.TBL.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Numerics.Vectors.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Web.Services.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/.nuget/packages/xamarin.essentials/1.1.0/lib/xamarinios10/Xamarin.Essentials.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Cng.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.DeriveBytes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.Xsl.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Cache.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Utilities.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.CodePages.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.HttpListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Pkcs.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.SqlClient.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Mail.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RSA.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Annotations.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.WindowsRuntime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceProcess.ServiceController.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.AuthenticationManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDsa.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.OpenSsl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RandomNumberGenerator.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.ProtectedData.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.ServicePoint.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.NetTcp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.TypeExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceEvent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Duplex.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.DispatchProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.Aes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Primitives.dll","Aliases":[],"Framework":null}],"Files":["/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Main.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/AppDelegate.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewController.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewController.designer.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/ViewControllerBase.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Reachability.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Control.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/MyEnum.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/CRC.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/BusSocket.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/RemoteInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/UserConfig.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/UserInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Packet.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Target.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/DeviceModular/PanelModular.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/DeviceModular/CommonModular.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/HDL/Operation/Device/Common.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/MainPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/CommonPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/HttpListener.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/FileUtils.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Common/R.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/MyWebClient.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Net/MqttCommon.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/CSS/CSS.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Server/HttpServerRequest.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI0-Public/PublicAssmebly.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI0-Public/PublicMothed.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/BackupInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/DeviceInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/FolderRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/GatewayRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/MessageInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResponsePack.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResultStatus.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/ResultSubaccount.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RoomInfoRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/RoomObjectiveRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SceneObjectiveRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SceneRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SendJson.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SensorHistory.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/SubAccountRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/Timer.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/ResponseEntity/UserLoginRes.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/Entity/Enumerative/EmptyHttpReques.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/DAL/Server/HttpServerRequestBase.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/LoginBaseView.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/LoginPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/RegisterPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI1-Login/UI/ResetPassword_VerificationCode.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/UserPage.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL_ON/UI/UI2/UserPageBLL.cs","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024x500.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X2732 .png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/4096X4096.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1134.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/1024.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/120.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/152.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/167.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/180.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/20.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/29.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/40.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/58.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/60.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/76.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/80.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/87.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/AppIcon.appiconset/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/40路40@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/60路60@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/58路58@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/87路87@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/80路80@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/120路120@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/120路120@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/180路180@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/20路20.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/40路40@2x-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/29路29.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/58路58@2x-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/AppIcon.appiconset/1024路1024@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2688.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/828*1792.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2688*1242.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792*828.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125*2436.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436*1125.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2208.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750*1334.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208*1242.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320*480.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136-1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/LaunchScreen.storyboard","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Main.storyboard","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Info.plist","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Entitlements.plist","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/ShowPasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/SearchIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/VerificationCodeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/AccountIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/QQIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/PasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/WechatIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/HidePasswordIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/2.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/EmailIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/3.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/LoginIcon/1.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Language.ini","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/BackIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/Logo.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Public/Logo-bg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/UserTypebg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/DownIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AdminTypeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/MemberTypeIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceManageIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceMemberIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceArmIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/ResidenceDataBackupIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AuxiliaryFunctionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddFunctionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/NightViewIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/SwitchIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/GeneralSettingsIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/PersonalCenter/SupportIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/UserPageNavbg.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/CollectionIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/PersonalCenterIcon.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/PersonalCenterIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/Resources/Phone/Navigation/CollectionIconOn.png","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/iTunesArtwork","/Users/nigemacpc/Desktop/HDL_On_new/HDL-ON_iOS/iTunesArtwork@2x"],"BuildActions":["Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","ImageAsset","InterfaceDefinition","InterfaceDefinition","None","None","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","ITunesArtwork","ITunesArtwork"],"Analyzers":[]}
\ No newline at end of file
diff --git a/.vs/HDL_APP_Project/xs/project-cache/Shared.IOS-Debug.json b/.vs/HDL_APP_Project/xs/project-cache/Shared.IOS-Debug.json
new file mode 100644
index 0000000..8b54319
--- /dev/null
+++ b/.vs/HDL_APP_Project/xs/project-cache/Shared.IOS-Debug.json
@@ -0,0 +1 @@
+{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Microsoft.CSharp.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/CommonLib/dll/Shared.IOS/MJRefresh_Xamarin.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/HDL_On_new/packages/Newtonsoft.Json.11.0.2/lib/netstandard2.0/Newtonsoft.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/OpenTK-1.0.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Data.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.IO.Compression.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Net.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Web.Services.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/HDL_On_new/packages/Xamarin.Essentials.1.3.1/lib/xamarinios10/Xamarin.Essentials.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/bin/Debug/Shared.IOS.TBL.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Contracts.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.FileVersionInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.Client.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Dynamic.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Xml.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.ThreadPool.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Cng.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.EventBasedAsync.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.CompilerServices.VisualC.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.DeriveBytes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/netstandard.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.UnmanagedMemoryStream.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Http.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.Xsl.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Writer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Console.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Cache.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Sockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NetworkInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Utilities.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Principal.Windows.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Claims.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.DriveInfo.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.X509Certificates.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Numerics.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Watcher.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceSource.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.Lightweight.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.CodePages.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Expressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Timer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Pipes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.HttpListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.RegularExpressions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.NonGeneric.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Concurrent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Overlapped.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Pkcs.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Handles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.SqlClient.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ObjectModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebHeaderCollection.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.RuntimeInformation.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.TypeConverter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Mail.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Parallel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.SecureString.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RSA.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.Annotations.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.Compression.ZipFile.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.InteropServices.WindowsRuntime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.Queryable.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ResourceManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.Reader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.ILGeneration.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Data.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.NameResolution.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ComponentModel.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceProcess.ServiceController.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Loader.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Security.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.AuthenticationManager.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Tasks.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tracing.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.AppContext.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Buffers.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.ECDsa.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Csp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TextWriterTraceListener.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Text.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.MemoryMappedFiles.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.OpenSsl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Registry.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.RandomNumberGenerator.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Collections.Specialized.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.ProtectedData.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ValueTuple.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XPath.XmlDocument.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.ServicePoint.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Xml.XmlSerializer.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Extensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Resources.ReaderWriter.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encoding.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.IsolatedStorage.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.NetTcp.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.AccessControl.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.TypeExtensions.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Globalization.Calendars.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Requests.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.WebSockets.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.Emit.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.IO.FileSystem.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Json.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Threading.Thread.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Linq.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Process.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Tools.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Hashing.Algorithms.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.Debug.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/Microsoft.Win32.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.TraceEvent.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Runtime.Serialization.Formatters.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Ping.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.ServiceModel.Duplex.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Diagnostics.StackTrace.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Reflection.DispatchProxy.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encryption.Aes.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Memory.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Net.Primitives.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/bgen/Xamarin.iOS.BindingAttributes.dll","Aliases":[],"Framework":null}],"Files":["/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Properties/AssemblyInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/IO/FileUtils.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Net/NetWiFi.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Alert.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Application.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Button.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Dialog.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/EditText.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Enum.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/FrameLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/HorizontalScrolViewLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/HorizontalSeekBar.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Lanuage.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Loading.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/PageLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Spinner.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/VerticalScrolViewLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/VerticalSeekBar.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Video.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/View.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/WebView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Tip.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/RowLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/ViewGroup.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/TextView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Camera.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/DateView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/TimeView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/ColorPicker.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/UrlMonitor.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/LongPressMoveVerticalScrolViewLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/MusicVerticalScrolViewLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/ImageView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/WiimuUPnP.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/BaseApplicationDelegate.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/BaseViewController.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/MusicInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Volume.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Server.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/CommonClass.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Ezviz.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/PickerView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Net/WifiUtil.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/MyEchartsView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/ArcSeekBar.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Reachability.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Utils/TouchIDUtils.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/WaveSeekBar.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/GDMapView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/Utils/HDLUtils.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/UIPickerView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/UICoverFlowView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/CropImage.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/GestureLockView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Scan.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/Contacts.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/CurtainRollSeekBar.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/CurtainSeekBar.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/VerticalRefreshLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/ArcScaleSeekBar.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/UIDrawerLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/CoverFlowLayout.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/EditTextView.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/UI/HorizontalPages.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/ApiDefinition.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/StructsAndEnums.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS/packages.config"],"BuildActions":["Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","Compile","ObjcBindingApiDefinition","ObjcBindingCoreSource","BundleResource"],"Analyzers":[]}
\ No newline at end of file
diff --git a/.vs/HDL_APP_Project/xs/project-cache/Shared.IOS.TBL-Debug.json b/.vs/HDL_APP_Project/xs/project-cache/Shared.IOS.TBL-Debug.json
new file mode 100644
index 0000000..528b358
--- /dev/null
+++ b/.vs/HDL_APP_Project/xs/project-cache/Shared.IOS.TBL-Debug.json
@@ -0,0 +1 @@
+{"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/bgen/Xamarin.iOS.BindingAttributes.dll","Aliases":[],"Framework":null}],"Files":["/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Properties/AssemblyInfo.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/ApiDefinition.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Structs.cs","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/Bundle3D.plist","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_day.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_night.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dlandscape.xml","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dportrait.xml","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile_n.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/building.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_cd.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_tq.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/lineround.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/roadarrow.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/search_scenic_icon.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_l.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_n.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_l.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_n.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_null.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_l.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_n.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_l.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_n.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_l.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_n.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/waterline.data","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/arrow_line_inner.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTexture.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTextureThin.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/lineTexture.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/lineTextureThin.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/select_.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/select_@2x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/select_@3x.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_blue.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_darkred.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_gray.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_green.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_red.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_yellow.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/AMap.bundle/offline/offlinePackage.plist","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_gdmap_add.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_gdmap_back.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_gdmap_delete.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_gdmap_home.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_gdmap_myLocation.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_gdmap_now.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_gdmap_search.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_gdmap_zoom_out.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_wd_curtain_bg_top.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_wd_curtain_h_bg.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_wd_curtain_h_open.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_wd_curtain_h_progress.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_wd_curtain_open.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_wd_curtain_roll_bg.png","/Users/nigemacpc/Desktop/HDL_On_new/Shared.IOS.TBL/Resources/ic_wd_curtain_roll_progress.png"],"BuildActions":["Compile","ObjcBindingApiDefinition","ObjcBindingCoreSource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource","BundleResource"],"Analyzers":[]}
\ No newline at end of file
diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
index cd9d898..989b3c0 100644
--- a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide
Binary files differ
diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
index 324b26b..d1f9ef3 100644
--- a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
Binary files differ
diff --git a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
index ecb35c8..2980fc3 100644
--- a/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
+++ b/.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
Binary files differ
diff --git a/CommonLib/dll/Shared.IOS.dll b/CommonLib/dll/Shared.IOS.dll
index 71c1fcf..daa41a1 100644
--- a/CommonLib/dll/Shared.IOS.dll
+++ b/CommonLib/dll/Shared.IOS.dll
Binary files differ
diff --git a/CommonLib/libWeChatSDK.a b/CommonLib/libWeChatSDK.a
new file mode 100644
index 0000000..e41954e
--- /dev/null
+++ b/CommonLib/libWeChatSDK.a
Binary files differ
diff --git a/HDL-ON_iOS/AppDelegate.cs b/HDL-ON_iOS/AppDelegate.cs
index 22e01c9..730f24d 100644
--- a/HDL-ON_iOS/AppDelegate.cs
+++ b/HDL-ON_iOS/AppDelegate.cs
@@ -97,16 +97,16 @@
                 NSUserDefaults.StandardUserDefaults.SetString(DeviceToken, "PushDeviceToken");
                 string userPhoneName = UIDevice.CurrentDevice.Name;
 
-                UserConfig.Instance.tokenID = DeviceToken;
-                UserConfig.Instance.phoneName = userPhoneName;
-                UserConfig.Instance.SaveUserConfig();
+                UserConfig.Instance.PushDeviceToken = DeviceToken;
+                //UserConfig.Instance.phoneName = userPhoneName;
+                //UserConfig.Instance.SaveUserConfig();
             }
-            if (UserConfig.Instance.tokenID != DeviceToken)
+            if (UserConfig.Instance.PushDeviceToken != DeviceToken)
             {
                 string userPhoneName = UIDevice.CurrentDevice.Name;
-                UserConfig.Instance.tokenID = DeviceToken;
-                UserConfig.Instance.phoneName = userPhoneName;
-                UserConfig.Instance.SaveUserConfig();
+                UserConfig.Instance.PushDeviceToken = DeviceToken;
+                //UserConfig.Instance.phoneName = userPhoneName;
+                //UserConfig.Instance.SaveUserConfig();
             }
         }
 
@@ -177,8 +177,9 @@
             base.FinishedLaunching(application, launchOptions);
 
             SharedMethod.SharedMethod.sharedApp = application;
-
+            Shared.Application.IsGpsEnable = false;
             //NSString* nsCount = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
+
             string nsCount = NSLocale.CurrentLocale.CountryCode;
             if (nsCount != UserConfig.Instance.CountryCode)
             {
@@ -187,7 +188,7 @@
             }
             application.IdleTimerDisabled = true;
             application.RegisterForRemoteNotificationTypes(UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound);
-
+            
             Window = new UIWindow(UIScreen.MainScreen.Bounds);
             var Root = new UINavigationController(new ViewController()) { NavigationBarHidden = true };
             Window.RootViewController = Root;
@@ -226,20 +227,7 @@
             {
                 //RemoteInfo.Current.ReadMsgList(true);
             }
-            //if (UserConfig.Instance.SkinCode == 0)
-            //{
-            //    application.StatusBarStyle = UIStatusBarStyle.LightContent;
-            //    Shared.Application.Skin = UserConfig.Instance.CurrentSkinName;
-            //}
-            //else if (UserConfig.Instance.SkinCode == 1)
-            //{
             application.StatusBarStyle = UIStatusBarStyle.Default;
-            //application.SetStatusBarStyle(UIStatusBarStyle.LightContent, false);
-            Console.WriteLine($"application.StatusBarStyle:{application.StatusBarStyle}");
-            //    Shared.Application.Skin = UserConfig.Instance.CurrentSkinName;
-            //}
-            //SkinStyle.Current.ChangeColor();
-
 
             //Harpy.Harpy.SharedInstance.PresentingViewController = this.Window.RootViewController;
             //Harpy.Harpy.SharedInstance.WeakDelegate = this;
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X748.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X748.png
deleted file mode 100755
index 26c144b..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X748.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X768.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X768.png
deleted file mode 100755
index 2b5d389..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1024X768.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125*2436.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125*2436.png
new file mode 100755
index 0000000..c78224c
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125*2436.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125X2436.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125X2436.png
deleted file mode 100644
index 4dd50f1..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1125X2436.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2208.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2208.png
new file mode 100755
index 0000000..287c888
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2208.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2688.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2688.png
new file mode 100755
index 0000000..dc7b9a5
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242*2688.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242x2208.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242x2208.png
deleted file mode 100755
index 169e20d..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1242x2208.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2008.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2008.png
deleted file mode 100755
index 36b64be..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2008.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2048.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2048.png
deleted file mode 100755
index 698f4f1..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1536X2048.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792*828.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792*828.png
new file mode 100755
index 0000000..85cde2c
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792*828.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1496.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1496.png
deleted file mode 100755
index d76c5ff..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1496.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1536.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1536.png
deleted file mode 100755
index 06f4b9a..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2048X1536.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208*1242.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208*1242.png
new file mode 100755
index 0000000..e005cad
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208*1242.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208X1242.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208X1242.png
deleted file mode 100755
index aa43a29..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2208X1242.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436*1125.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436*1125.png
new file mode 100755
index 0000000..3791600
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436*1125.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436X1125.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436X1125.png
deleted file mode 100644
index 5be5a89..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2436X1125.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2688*1242.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2688*1242.png
new file mode 100755
index 0000000..7b88562
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/2688*1242.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320*480.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320*480.png
new file mode 100755
index 0000000..5e598a2
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320*480.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320X480.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320X480.png
deleted file mode 100755
index 01e0b41..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/320X480.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136-1.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136-1.png
new file mode 100644
index 0000000..ea80938
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136-1.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136.png
new file mode 100644
index 0000000..ea80938
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*1136.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960-1.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960-1.png
new file mode 100755
index 0000000..a282885
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960-1.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960.png
new file mode 100755
index 0000000..a282885
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640*960.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X1136.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X1136.png
deleted file mode 100755
index cd5a8aa..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X1136.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X960.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X960.png
deleted file mode 100755
index a0228c9..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/640X960.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750*1334.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750*1334.png
new file mode 100755
index 0000000..c2ddf40
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750*1334.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1334.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1334.png
deleted file mode 100755
index d65cc5f..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/750X1334.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1004.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1004.png
deleted file mode 100755
index b9757b8..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1004.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1024.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1024.png
deleted file mode 100755
index 08928cc..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/768X1024.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/828*1792.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/828*1792.png
new file mode 100755
index 0000000..8ef5a03
--- /dev/null
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/828*1792.png
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json
index 14e03cd..7f80a86 100755
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json
+++ b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json
@@ -17,10 +17,50 @@
       "minimum-system-version": "11.0"
     },
     {
+      "minimum-system-version": "12.0",
+      "orientation": "portrait",
+      "extent": "full-screen",
+      "filename": "1242*2688.png",
+      "size": "414x896",
+      "subtype": "1792",
+      "scale": "3x",
+      "idiom": "iphone"
+    },
+    {
+      "minimum-system-version": "12.0",
+      "orientation": "portrait",
+      "extent": "full-screen",
+      "filename": "828*1792.png",
+      "size": "276x597.3",
+      "subtype": "2688",
+      "scale": "3x",
+      "idiom": "iphone"
+    },
+    {
+      "minimum-system-version": "12.0",
+      "orientation": "landscape",
+      "extent": "full-screen",
+      "filename": "2688*1242.png",
+      "size": "896x414",
+      "subtype": "1792",
+      "scale": "3x",
+      "idiom": "iphone"
+    },
+    {
+      "minimum-system-version": "12.0",
+      "orientation": "landscape",
+      "extent": "full-screen",
+      "filename": "1792*828.png",
+      "size": "597.3x276",
+      "subtype": "2688",
+      "scale": "3x",
+      "idiom": "iphone"
+    },
+    {
       "minimum-system-version": "11.0",
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "1125X2436.png",
+      "filename": "1125*2436.png",
       "size": "375x812",
       "subtype": "2436h",
       "scale": "3x",
@@ -30,7 +70,7 @@
       "minimum-system-version": "11.0",
       "orientation": "landscape",
       "extent": "full-screen",
-      "filename": "2436X1125.png",
+      "filename": "2436*1125.png",
       "size": "812x375",
       "subtype": "2436h",
       "scale": "3x",
@@ -40,7 +80,7 @@
       "minimum-system-version": "8.0",
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "1242x2208.png",
+      "filename": "1242*2208.png",
       "size": "414x736",
       "subtype": "736h",
       "scale": "3x",
@@ -50,7 +90,7 @@
       "minimum-system-version": "8.0",
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "750X1334.png",
+      "filename": "750*1334.png",
       "size": "375x667",
       "subtype": "667h",
       "scale": "2x",
@@ -60,7 +100,7 @@
       "minimum-system-version": "8.0",
       "orientation": "landscape",
       "extent": "full-screen",
-      "filename": "2208X1242.png",
+      "filename": "2208*1242.png",
       "size": "736x414",
       "subtype": "736h",
       "scale": "3x",
@@ -79,7 +119,7 @@
       "minimum-system-version": "7.0",
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "640X960.png",
+      "filename": "640*960.png",
       "size": "320x480",
       "scale": "2x",
       "idiom": "iphone"
@@ -88,7 +128,7 @@
       "minimum-system-version": "7.0",
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "640X1136.png",
+      "filename": "640*1136-1.png",
       "size": "320x568",
       "subtype": "retina4",
       "scale": "2x",
@@ -98,7 +138,6 @@
       "minimum-system-version": "7.0",
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "768X1024.png",
       "size": "768x1024",
       "scale": "1x",
       "idiom": "ipad"
@@ -107,7 +146,6 @@
       "minimum-system-version": "7.0",
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "1536X2048.png",
       "size": "768x1024",
       "scale": "2x",
       "idiom": "ipad"
@@ -116,7 +154,6 @@
       "minimum-system-version": "7.0",
       "orientation": "landscape",
       "extent": "full-screen",
-      "filename": "1024X768.png",
       "size": "1024x768",
       "scale": "1x",
       "idiom": "ipad"
@@ -125,7 +162,6 @@
       "minimum-system-version": "7.0",
       "orientation": "landscape",
       "extent": "full-screen",
-      "filename": "2048X1536.png",
       "size": "1024x768",
       "scale": "2x",
       "idiom": "ipad"
@@ -133,7 +169,7 @@
     {
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "320X480.png",
+      "filename": "320*480.png",
       "size": "320x480",
       "scale": "1x",
       "idiom": "iphone"
@@ -141,7 +177,7 @@
     {
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "640X960.png",
+      "filename": "640*960-1.png",
       "size": "320x480",
       "scale": "2x",
       "idiom": "iphone"
@@ -149,7 +185,7 @@
     {
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "640X1136.png",
+      "filename": "640*1136.png",
       "size": "320x568",
       "subtype": "retina4",
       "scale": "2x",
@@ -158,7 +194,6 @@
     {
       "orientation": "portrait",
       "extent": "to-status-bar",
-      "filename": "768X1004.png",
       "size": "768x1004",
       "scale": "1x",
       "idiom": "ipad"
@@ -166,7 +201,6 @@
     {
       "orientation": "portrait",
       "extent": "to-status-bar",
-      "filename": "1536X2008.png",
       "size": "768x1004",
       "scale": "2x",
       "idiom": "ipad"
@@ -174,7 +208,6 @@
     {
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "768X1024.png",
       "size": "768x1024",
       "scale": "1x",
       "idiom": "ipad"
@@ -182,7 +215,6 @@
     {
       "orientation": "portrait",
       "extent": "full-screen",
-      "filename": "1536X2048.png",
       "size": "768x1024",
       "scale": "2x",
       "idiom": "ipad"
@@ -190,7 +222,6 @@
     {
       "orientation": "landscape",
       "extent": "to-status-bar",
-      "filename": "1024X748.png",
       "size": "1024x748",
       "scale": "1x",
       "idiom": "ipad"
@@ -198,7 +229,6 @@
     {
       "orientation": "landscape",
       "extent": "to-status-bar",
-      "filename": "2048X1496.png",
       "size": "1024x748",
       "scale": "2x",
       "idiom": "ipad"
@@ -206,7 +236,6 @@
     {
       "orientation": "landscape",
       "extent": "full-screen",
-      "filename": "1024X768.png",
       "size": "1024x768",
       "scale": "1x",
       "idiom": "ipad"
@@ -214,7 +243,6 @@
     {
       "orientation": "landscape",
       "extent": "full-screen",
-      "filename": "2048X1536.png",
       "size": "1024x768",
       "scale": "2x",
       "idiom": "ipad"
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index b98daf2..ffa3eea 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -47,7 +47,6 @@
         <ErrorReport>prompt</ErrorReport>
         <WarningLevel>4</WarningLevel>
         <MtouchArch>ARM64</MtouchArch>
-        <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
         <CodesignKey>iPhone Developer</CodesignKey>
         <MtouchDebug>true</MtouchDebug>
         <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC";-w</MtouchExtraArgs>
@@ -70,15 +69,6 @@
         <Reference Include="System.Numerics" />
         <Reference Include="System.Numerics.Vectors" />
         <Reference Include="System.Web.Services" />
-        <Reference Include="Shared.IOS.TCL">
-          <HintPath>..\..\ON\SmartHome\SmartHome\dll\Shared.IOS.TCL.dll</HintPath>
-        </Reference>
-        <Reference Include="Shared.IOS">
-          <HintPath>..\..\ON\SmartHome\SmartHome\dll\Shared.IOS.dll</HintPath>
-        </Reference>
-        <Reference Include="Shared.IOS.TBL">
-          <HintPath>..\..\ON\SmartHome\SmartHome\dll\Shared.IOS.TBL.dll</HintPath>
-        </Reference>
     </ItemGroup>
     <ItemGroup>
       <PackageReference Include="Xamarin.Essentials" Version="1.1.0" />
@@ -92,25 +82,9 @@
     <ItemGroup>
         <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024x500.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024X748.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024X768.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1125X2436.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242x2208.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536X2008.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536X2048.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X1496.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X1536.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048X2732 .png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2208X1242.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2436X1125.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\320X480.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\4096X4096.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640X1136.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640X960.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\750X1134.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\750X1334.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768X1004.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768X1024.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\AppIcon.appiconset\1024.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\AppIcon.appiconset\120.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\AppIcon.appiconset\152.png" />
@@ -139,6 +113,20 @@
         <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\29路29.png" />
         <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58路58%402x-1.png" />
         <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024路1024%402x.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242*2688.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\828*1792.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2688*1242.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1792*828.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1125*2436.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2436*1125.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242*2208.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\750*1334.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2208*1242.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640*960.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\320*480.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640*960-1.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640*1136.png" />
+        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640*1136-1.png" />
     </ItemGroup>
     <ItemGroup>
         <Folder Include="Resources\" />
@@ -203,11 +191,21 @@
       <BundleResource Include="Resources\Phone\Navigation\IntellectualizationIcon.png" />
       <BundleResource Include="Resources\Phone\Navigation\PersonalCenterIcon.png" />
       <BundleResource Include="Resources\Phone\Navigation\PersonalCenterIconOn.png" />
+      <BundleResource Include="Resources\Phone\Navigation\ClassificationIconOn.png" />
+      <BundleResource Include="Resources\Phone\Navigation\IntellectualizationIconOn.png" />
+      <BundleResource Include="Resources\Phone\Navigation\CollectionIconOn.png" />
+      <BundleResource Include="Resources\Phone\PersonalCenter\HomeListbg.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
       <ITunesArtwork Include="iTunesArtwork%402x" />
     </ItemGroup>
+    <ItemGroup>
+      <ProjectReference Include="..\Shared.IOS\Shared.IOS.csproj">
+        <Project>{0048AB87-2130-4437-8F01-8CADAB787004}</Project>
+        <Name>Shared.IOS</Name>
+      </ProjectReference>
+    </ItemGroup>
     <Import Project="..\HDL_ON\HDL_ON.projitems" Label="Shared" Condition="Exists('..\HDL_ON\HDL_ON.projitems')" />
     <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
 </Project>
\ No newline at end of file
diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist
index 26155b8..074cbda 100755
--- a/HDL-ON_iOS/Info.plist
+++ b/HDL-ON_iOS/Info.plist
@@ -92,15 +92,13 @@
 	<key>XSLaunchImageAssets</key>
 	<string>Assets.xcassets/LaunchImage.launchimage</string>
 	<key>CFBundleName</key>
-	<string>HDL-ON</string>
-	<key>NSAppleMusicUsageDescription</key>
-	<string>HDL ON needs to access your music library to connect to an external player to play music.</string>
+	<string>HDL ON +</string>
 	<key>XSAppIconAssets</key>
 	<string>Assets.xcassets/AppIcon.appiconset</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
 	<string>Get the weather</string>
 	<key>CFBundleDisplayName</key>
-	<string>HDL-ON</string>
+	<string>HDL ON +</string>
 	<key>CFBundleVersion</key>
 	<string>2.41023</string>
 	<key>NSLocationAlwaysUsageDescription</key>
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index 21b534c..3bfa71a 100755
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -11,6 +11,10 @@
 12=Get Verification Code
 13=Password login
 14=Register
+
+
+42=Network anomaly
+
 [Chinese]
 1=鐧诲綍
 2=鎵嬫満鍙风櫥褰�
@@ -51,4 +55,12 @@
 37=鍒嗙被
 38=鏅鸿兘
 39=涓汉
+40=鐧诲綍澶辫触锛岃处鍙锋垨瀵嗙爜閿欒銆�
+41=楠岃瘉鐮佸彂閫佸け璐ャ��
+42=缃戠粶寮傚父
+43=娉ㄥ唽澶辫触锛岃閲嶈瘯銆�
+44=纭閲嶇疆
+45=璐﹀彿涓嶅瓨鍦�,璇风‘璁よ处鍙锋槸鍚︽敞鍐屻��
+46=鐧诲綍鍑瘉澶辨晥,璇烽噸鏂扮櫥褰曘��
+47=涓汉涓績
 [Czech]
\ No newline at end of file
diff --git a/HDL-ON_iOS/Resources/Phone/LoginIcon/2.png b/HDL-ON_iOS/Resources/Phone/LoginIcon/2.png
index fd8570e..79084bf 100644
--- a/HDL-ON_iOS/Resources/Phone/LoginIcon/2.png
+++ b/HDL-ON_iOS/Resources/Phone/LoginIcon/2.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIconOn.png b/HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIconOn.png
new file mode 100755
index 0000000..ee480a4
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Navigation/ClassificationIconOn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Navigation/CollectionIconOn.png b/HDL-ON_iOS/Resources/Phone/Navigation/CollectionIconOn.png
new file mode 100755
index 0000000..4ff8cc0
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Navigation/CollectionIconOn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIconOn.png b/HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIconOn.png
new file mode 100755
index 0000000..feab986
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Navigation/IntellectualizationIconOn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Navigation/UserPageNavbg.png b/HDL-ON_iOS/Resources/Phone/Navigation/UserPageNavbg.png
index c56517f..be2faf8 100644
--- a/HDL-ON_iOS/Resources/Phone/Navigation/UserPageNavbg.png
+++ b/HDL-ON_iOS/Resources/Phone/Navigation/UserPageNavbg.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/HomeListbg.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/HomeListbg.png
new file mode 100644
index 0000000..74ed37d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/HomeListbg.png
Binary files differ
diff --git a/HDL_APP_Project.sln b/HDL_APP_Project.sln
index 0ba7460..af62871 100644
--- a/HDL_APP_Project.sln
+++ b/HDL_APP_Project.sln
@@ -5,6 +5,10 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HDL-ON_iOS", "HDL-ON_iOS\HDL-ON_iOS.csproj", "{D998E133-F0DD-4760-BE3C-461632F54DA4}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.IOS", "Shared.IOS\Shared.IOS.csproj", "{0048AB87-2130-4437-8F01-8CADAB787004}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.IOS.TBL", "Shared.IOS.TBL\Shared.IOS.TBL.csproj", "{D623E902-D787-4886-9F17-38C062692326}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -27,5 +31,29 @@
 		{D998E133-F0DD-4760-BE3C-461632F54DA4}.Debug|iPhone.Build.0 = Debug|iPhone
 		{D998E133-F0DD-4760-BE3C-461632F54DA4}.Release|iPhone.ActiveCfg = Release|iPhone
 		{D998E133-F0DD-4760-BE3C-461632F54DA4}.Release|iPhone.Build.0 = Release|iPhone
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Release|iPhone.Build.0 = Release|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{D623E902-D787-4886-9F17-38C062692326}.Release|iPhone.Build.0 = Release|Any CPU
 	EndGlobalSection
 EndGlobal
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index 83ea282..9238a9b 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -24,6 +24,14 @@
         public readonly static int UniversalDevice = 358;
         public readonly static int Environmental = 435;
 
+        public readonly static int PersonalCenter=47;
+        public readonly static int InvalidLoginCertificate = 46;
+        public readonly static int AccountNotExist = 45;
+        public readonly static int ConfirmReset = 44;
+        public readonly static int RegistrationFailedPleaseTryAgain = 43;
+        public readonly static int NetworkAnomaly=42;
+        public readonly static int FailedToSendVerificationCode = 41;
+        public readonly static int LoginFailed_AccountOrPasswordError = 40;
         public readonly static int Personal = 39;
         public readonly static int Intellectualization = 38;
         public readonly static int Classification = 37;
diff --git a/HDL_ON/DAL/Net/CommonPage.cs b/HDL_ON/DAL/Net/CommonPage.cs
index cd24830..6667cb7 100644
--- a/HDL_ON/DAL/Net/CommonPage.cs
+++ b/HDL_ON/DAL/Net/CommonPage.cs
@@ -1,12 +1,7 @@
 锘縰sing System;
-using System.Collections.Generic;
 using System.Text;
-//using Newtonsoft.Json.Linq;
-////using service.hdlcontrol.com_WebServiceAirQuality;
 using HDL_ON.DAL.Net;
-using HDL_ON.UI;
 using Shared;
-using Shared.IOS;
 using Shared.Net;
 
 namespace HDL_ON.DAL
diff --git a/HDL_ON/DAL/Net/MqttCommon.cs b/HDL_ON/DAL/Net/MqttCommon.cs
index ec35953..21871fe 100644
--- a/HDL_ON/DAL/Net/MqttCommon.cs
+++ b/HDL_ON/DAL/Net/MqttCommon.cs
@@ -338,7 +338,7 @@
         /// <param name="message">闄勫姞鏁版嵁鍖�</param>
         /// <param name="optionType">鎿嶄綔绫诲瀷锛�0=缃戝叧鎺у埗锛�1=璁㈤槄缃戝叧鏁版嵁;2=璁㈤槄缃戝叧涓婄嚎鏁版嵁</param>
         /// <returns></returns>
-        public static async System.Threading.Tasks.Task MqttRemoteSend(byte[] message, int optionType = 0)
+        public static async Task MqttRemoteSend(byte[] message, int optionType = 0)
         {
             try
             {
@@ -350,7 +350,7 @@
                 {
                     return;
                 }
-                var topicName = @"/" + MainPage.LoginUser.AccountString.ToLower() + @"/" + UserConfig.Instance.CurrentRegion.MAC.Replace(".", "") + @"/" + currentGuid;
+                var topicName = "";//@"/" + MainPage.LoginUser.AccountString.ToLower() + @"/" + currentGuid;//+ @"/" + UserConfig.Instance.CurrentRegion.MAC.Replace(".", "")
                 switch (optionType)
                 {
                     case 0:
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index 30f853f..258ae85 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1,74 +1,174 @@
-锘縩amespace HDL_ON.DAL.Server
+锘縰sing Shared;
+
+namespace HDL_ON.DAL.Server
 {
     public partial class HttpServerRequest
     {
+
+        /*
+         * json鏍煎紡
+           "{" +
+              "\"sss\":" + "\"" + sss + "\"" + "," +
+              "\"xxx\":" + xxx + "," +
+           "}";
+              */
+
+        #region 娉ㄥ唽銆佺櫥褰曢儴鍒�
         /// <summary>
         /// 璐﹀彿鐧诲綍-浣跨敤瀵嗙爜
         /// </summary>
-        public ResponsePack LoginByPassword(string account,string password,int company)
+        public ResponsePack LoginByPassword(string account, string password)
         {
-            var requestObj = new LoginObj() { Account = account, Password = password, Company = company };
-            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-            var revertObj = RequestHttps(HttpRequesMethods.Login.ToString(), requestJson, "");
-            return revertObj;
+            string jsonString = "{" +
+                                "\"Account\":" + "\"" + account + "\"" + "," +
+                                "\"Password\":" + "\"" + password + "\"" + 
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/Login", jsonString, false);
         }
 
         /// <summary>
-        /// 鎵嬫満鍙风爜娉ㄥ唽寮犲悧
+        /// 鎵嬫満鍙风爜娉ㄥ唽
         /// </summary>
         /// <param name="mobileNumber"></param>
         /// <param name="password"></param>
         /// <param name="language"></param>
         public ResponsePack RegisterPhone(string mobileNumber, string password, string language)
         {
-            var requestObj = new SignInObj() { Account = mobileNumber, Password = password, Language = language };
-            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-            return RequestHttps(HttpRequesMethods.SignIn.ToString(), requestJson, "");
+            string jsonString = "{" +
+                                "\"Account\":" + "\"" + mobileNumber + "\"" + "," +
+                                "\"Password\":" + "\"" + password + "\"" + "," +
+                                "\"Language\":" + "\"" + language + "\"" + 
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/SignIn", jsonString, false);
+        }
+
+        public ResponsePack GetAreaCode()
+        {
+            string requestJson = "{}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/GetAreaCode", requestJson, false);
         }
 
         /// <summary>
-        /// 楠岃瘉楠岃瘉鐮�
+        /// 楠岃瘉鐭俊鎴栬�呴偖绠遍獙璇佺爜锛屼箣鍚庢敞鍐�
         /// </summary>
-        public ResponsePack ValidateSmsCode(string mobileNumber, string code)
-        {
-            var requestObj = new ValidateSmsCodeObj() { Phone = mobileNumber, Code = code };
-            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-            return RequestHttps(HttpRequesMethods.ValidateSmsCode.ToString(), requestJson, "");
-        }
-
-        /// <summary>
-        /// 楠岃瘉鎵嬫満鍙锋槸鍚﹀凡缁忚娉ㄥ唽
-        /// </summary>
-        /// <param name="phoneNum">鎵嬫満鍙风爜</param>
-        public ResponsePack IsExistingAccount(string phoneNum)
-        {
-            var requestObj = new IsExistingAccountObj() { Account = phoneNum };
-            var requesetJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-            return RequestHttps(HttpRequesMethods.IsExistingAccount.ToString(), requesetJson, "");
-        }
-        /// <summary>
-        /// 鑾峰彇楠岃瘉鐮�
-        /// </summary>
-        /// <param name="phoneNum">鎵嬫満鍙风爜</param>
-        public ResponsePack GetPhoneVerificationCode(string phoneNum, int company)
-        {
-            var requestObj = new SignPhoneObj() { Phone = phoneNum, Company = company };
-            var requesetJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-            return RequestHttps(HttpRequesMethods.SignPhone.ToString(), requesetJson, "");
-        }
-
-        /// <summary>
-        /// 楠岃瘉楠岃瘉鐮�
-        /// </summary>
-        /// <param name="mobileNumber"></param>
-        /// <param name="vCode"></param>
+        /// <param name="account">璐﹀彿</param>
+        /// <param name="password">瀵嗙爜</param>
+        /// <param name="entryPassword">纭瀵嗙爜</param>
+        /// <param name="code">楠岃瘉鐮�</param>
+        /// <param name="areaCode"></param>
         /// <returns></returns>
-        public ResponsePack SendSms(string mobileNumber, string vCode)
+        public ResponsePack ValidataCodeAndRegister(string account, string password, string entryPassword, string code, int areaCode)
         {
-            var requestObj = new ValidateSmsCodeObj() { Phone = mobileNumber, Code = vCode };
-            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-            return RequestHttps(HttpRequesMethods.ValidateSmsCode.ToString(), requestJson, "");
+            //var requestObj = new ValidateSmsCodeObj() { Phone = accout, Code = code };
+            //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
+            string requestJson = "{" +
+                                "\"Account\":" + "\"" + account + "\"" + "," +
+                                "\"Password\":" + "\"" + password + "\"" + "," +
+                                "\"EnterPassword\":" + "\"" + entryPassword + "\"" + "," +
+                                "\"Language\":" + "\"" + Language.CurrentLanguage + "\"" + "," +
+                                "\"Code\":" + "\"" + code + "\"" + "," +
+                                "\"RegisterSoruce\":" + 0 + "," +
+                                "\"AreaCode\":" + areaCode +
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/ValidataCodeAndRegisterAccount", requestJson, false);
         }
 
+
+        /// <summary>
+        /// 鑾峰彇娉ㄥ唽楠岃瘉鐮�
+        /// </summary>
+        public ResponsePack GetPhoneRegisterVerCode(string account)
+        {
+            string jsonString = "{" +
+                                "\"Account\":" + "\"" + account + "\"" + "," +
+                                "\"Company\":" + MainPage.Company + "," +
+                                "\"Language\":" + "\"" + Language.CurrentLanguage + "\"" + "," +
+                                "\"AreaCode\":" + UserConfig.Instance.CountryNumber +
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/RegisterSendVerCode", jsonString, false);
+
+        }
+
+
+
+        /// <summary>
+        /// 鑾峰彇鐧诲綍楠岃瘉鐮�
+        /// </summary>
+        /// <param name="phoneNum">鎵嬫満鍙风爜</param>
+        public ResponsePack GetPhoneLoginVerCode(string phoneNum)
+        {
+
+            string jsonString = "{" +
+                                "\"Phone\":" + "\"" + phoneNum + "\"" + "," +
+                                "\"Company\":" + MainPage.Company + 
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/LoginSendVerCode", jsonString, false);
+        }
+
+        /// <summary>
+        /// 鍙戦�侀獙璇佺爜
+        /// </summary>
+        public ResponsePack SendSms(string account)
+        {
+            string jsonString = "{" +
+                                "\"Account\":" + "\"" + account + "\"" + "," +
+                                "\"Company\":" + MainPage.Company + "," +
+                                "\"Language\":" + "\"" + Language.CurrentLanguage + "\"" + "," +
+                                "\"AreaCode\":" + UserConfig.Instance.CountryNumber +
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/LoginSendVerCode", jsonString, false);
+        }
+
+        /// <summary>
+        /// 楠岃瘉楠岃瘉鐮�
+        /// </summary>
+        /// <param name="account"></param>
+        /// <param name="code"></param>
+        /// <returns></returns>
+        public ResponsePack ValidatorCode(string account, string code, int countryIndex)
+        {
+            string jsonString = "{" +
+                                "\"Account\":" + "\"" + account + "\"" + "," +
+                                "\"Code\":" + "\"" + code + "\"" + "," +
+                                "\"Language\":" + "\"" + Language.CurrentLanguage + "\"" + "," +
+                                "\"AreaCode\":" + countryIndex +
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/ValidatorCode", jsonString, false);
+        }
+
+        /// <summary>
+        /// 閲嶈瀵嗙爜
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePack ResetPassword(string account, string password, string rePassword, int countryIndex)
+        {
+            string jsonString = "{" +
+                                "\"Account\":" + "\"" + account + "\"" + "," +
+                                "\"Password\":" + "\"" + password + "\"" + "," +
+                                "\"AgainPassword\":" + "\"" + rePassword + "\"" + "," +
+                                "\"AreaCode\":" + countryIndex +
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/ResetPassword", jsonString, false);
+        }
+        #endregion
+
+        #region 浣忓畢閮ㄥ垎
+        /// <summary>
+        /// 鑾峰彇浣忓畢鍒楄〃
+        /// </summary>
+        public ResponsePack GetHomePager()
+        {
+            string jsonString = "{" +
+                                "\"RequestVersion\":" + "\"" + MainPage.VersionString + "\"" + "," +
+                                "\"RequestSource\":" + "\"" + "1" + "\"" + "," +
+                                "\"HomeType\":" + "\"" + "1" + "\"" + "," +
+                                "\"LoginAccessToken\":" + "\"" + MainPage.LoginUser.LoginTokenString + "\"" +
+                                "}";
+            return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetHomePager", jsonString,false);
+        }
+
+
+
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/HDL_ON/DAL/Server/HttpServerRequestBase.cs b/HDL_ON/DAL/Server/HttpServerRequestBase.cs
index 336685d..4f800ce 100644
--- a/HDL_ON/DAL/Server/HttpServerRequestBase.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequestBase.cs
@@ -6,28 +6,21 @@
 {
     public partial class HttpServerRequest
     {
-        public string RequestHttpsHost = "https://developer.hdlcontrol.com/api/";
+        string RequestHttpsHost = "https://developer.hdlcontrol.com/";
 
         /// <summary>
         /// 璇锋眰鏈嶅姟鍣ㄦ柟娉�
         /// </summary>
-        /// <returns>The https.</returns>
-        /// <param name="methodType">璇锋眰鏂规硶.</param>
-        /// <param name="dataStringJson">璇锋眰鐨勫弬鏁�.</param>
-        /// <param name="needHeaders">鏄惁闇�瑕佸寘澶�.</param>
-        ResponsePack RequestHttps(string methodType, string dataStringJson, string loginToken)
+        ResponsePack RequestHttps(string url, string dataStringJson, bool needAuthorization)
         {
-            ResponsePack revertObj = new ResponsePack() { StateCode = "HDL-ON-Self:NotData" };
+            ResponsePack revertObj = new ResponsePack() { StateCode = "Self:NotData" };
 
             var webClient = new WebClient();
             #region
-            var urlHead = $"{RequestHttpsHost}";
-                //webClient.Headers.Add("CONTENT-TYPE", "application/json");
-            string url = urlHead + methodType;
-            /* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */
-            if (string.IsNullOrEmpty(loginToken))
+            webClient.Headers.Add("CONTENT-TYPE", "application/json/");
+            if (needAuthorization)
             {
-                webClient.Headers.Add("Authorization", loginToken);
+                webClient.Headers.Add("Authorization", MainPage.LoginUser.LoginTokenString);
             }
             byte[] bytes = null;
             try
@@ -37,7 +30,7 @@
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
-                revertObj.StateCode = "HDL-ON-Self:Net_Error";
+                revertObj.StateCode = "Self:Net_Error";
                 revertObj.ErrorInfo_En = "Network anomaly";
                 revertObj.ErrorInfo_Zh = "缃戠粶寮傚父";
             }
diff --git a/HDL_ON/Entity/Enumerative/EmptyHttpReques.cs b/HDL_ON/Entity/Enumerative/EmptyHttpReques.cs
index 7c7ada1..29a7de5 100644
--- a/HDL_ON/Entity/Enumerative/EmptyHttpReques.cs
+++ b/HDL_ON/Entity/Enumerative/EmptyHttpReques.cs
@@ -6,27 +6,8 @@
     /// </summary>
     public enum HttpRequesMethods
     {
-        /// <summary>
-        /// 鐧诲綍鏂规硶
-        /// 
-        /// </summary>
-        Login = 0,
-        /// <summary>
-        /// 妫�鏌ユ墜鏈哄彿鐮佹槸鍚﹀瓨鍦�
-        /// </summary>
-        IsExistingAccount=1,
-        /// <summary>
-        /// 鑾峰彇楠岃瘉鐮�
-        /// </summary>
-        SignPhone=2,
-        /// <summary>
-        /// 楠岃瘉楠岃瘉鐮�
-        /// </summary>
-        ValidateSmsCode=3,
-        /// <summary>
-        /// 娉ㄥ唽
-        /// </summary>
-        SignIn=4,
+        /*https://developer.hdlcontrol.com/HDLCloudApiDocs/ZigbeeProject/ZigbeeUsers/
        https://developer.hdlcontrol.com/HDLCloudApiDocs/App/
+        */
     }
 
     /// <summary>
diff --git a/HDL_ON/Entity/ResponseEntity/BackupInfoRes.cs b/HDL_ON/Entity/ResponseEntity/BackupInfoRes.cs
deleted file mode 100755
index a57a87e..0000000
--- a/HDL_ON/Entity/ResponseEntity/BackupInfoRes.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-锘縰sing System;
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class BackupInfoRes
-    {
-        public int Id { get; set; }
-
-        public string FileName { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/DeviceInfoRes.cs b/HDL_ON/Entity/ResponseEntity/DeviceInfoRes.cs
deleted file mode 100755
index c1c5079..0000000
--- a/HDL_ON/Entity/ResponseEntity/DeviceInfoRes.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-锘縰sing System;
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class DeviceInfoRes
-    {
-        public int Id { get; set; }
-
-        public string DeviceType { get; set; }
-
-        public int SubnetID { get; set; }
-
-        public int DeviceID { get; set; }
-
-        public int LoopID { get; set; }
-
-        public string DeviceName { get; set; }
-
-        public int GatewayID { get; set; }
-
-        public int UserID { get; set; }
-
-        public string MAC { get; set; }
-
-        public string Password { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/FolderRes.cs b/HDL_ON/Entity/ResponseEntity/FolderRes.cs
deleted file mode 100755
index 3f865d4..0000000
--- a/HDL_ON/Entity/ResponseEntity/FolderRes.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-锘縰sing System;
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class FolderRes
-    {
-        public int FolderID { get; set; }
-
-        public string FolderName { get; set; }
-
-        public DateTime FolderAddTime { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/GatewayRes.cs b/HDL_ON/Entity/ResponseEntity/GatewayRes.cs
deleted file mode 100755
index 32c4447..0000000
--- a/HDL_ON/Entity/ResponseEntity/GatewayRes.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-锘縰sing System;
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class GatewayRes
-    {
-        public int Id { get; set; }
-
-        public string MAC { get; set; }
-
-        public string ProjectName { get; set; }
-
-        public string UserName { get; set; }
-
-        public string GroupName { get; set; }
-
-        public string IPAddress { get; set; }
-
-        public int Port { get; set; }
-
-        public int SubnetID { get; set; }
-
-        public int DeviceID { get; set; }
-
-        public int Type { get; set; }
-
-        public string IsValid { get; set; }
-
-        public string Password { get; set; }
-
-        public string Region { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/MessageInfoRes.cs b/HDL_ON/Entity/ResponseEntity/MessageInfoRes.cs
deleted file mode 100755
index 69b21fc..0000000
--- a/HDL_ON/Entity/ResponseEntity/MessageInfoRes.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-锘縰sing System;
-
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class MessageInfoRes
-    {
-        public int MsgID { get; set; }
-
-        public int SwitchNum { get; set; }
-
-        public int MessageMode { get; set; }
-
-        public byte[] AlarmEmail { get; set; }
-
-        public string DetailMessage { get; set; }
-
-        public int ProjectId { get; set; }
-
-        public string MAC { get; set; }
-
-        public string ProjectName { get; set; }
-
-        public string UserName { get; set; }
-
-        public string GroupName { get; set; }
-
-        public int SubnetID { get; set; }
-
-        public int DeviceID { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs b/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs
old mode 100755
new mode 100644
index 1de4b05..2398629
--- a/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs
+++ b/HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs
@@ -6,10 +6,10 @@
     [Serializable]
     public class RegionInfoRes
     {
-        public int RegionID { get; set; }
+        public string RegionID { get; set; }
 
         public string RegionName { get; set; }
 
-        public string MAC="";
+        public string Name { get;set; }
     }
 }
diff --git a/HDL_ON/Entity/ResponseEntity/ResultStatus.cs b/HDL_ON/Entity/ResponseEntity/ResultStatus.cs
deleted file mode 100755
index 077755f..0000000
--- a/HDL_ON/Entity/ResponseEntity/ResultStatus.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Newtonsoft.Json;
-
-namespace HDL_ON
-{
-    [System.Serializable]
-    public class ResultStatus
-    {
-        /// <summary>
-        /// 鐘舵�佺爜
-        /// </summary>
-        public int Code;
-
-        /// <summary>
-        /// 鐘舵��
-        /// </summary>
-        public string Status;
-
-        /// <summary>
-        /// 褰撳墠璐︽埛ID
-        /// </summary>
-        public int ID;
-
-        /// <summary>
-        /// 淇″彿鍊�
-        /// </summary>
-        public int Flag;
-
-        /// <summary>
-        /// 璐︽埛绫诲瀷
-        /// </summary>
-        public int AccountType;
-
-        /// <summary>
-        /// 涓昏处鍙稩D
-        /// </summary>
-        public int MasterID;
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/ResultSubaccount.cs b/HDL_ON/Entity/ResponseEntity/ResultSubaccount.cs
deleted file mode 100644
index 08b790e..0000000
--- a/HDL_ON/Entity/ResponseEntity/ResultSubaccount.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-锘縰sing System;
-namespace HDL_ON
-{
-    [System.Serializable]
-    public class ResultSubaccount
-    {
-
-        /// <summary>
-        /// 鐢ㄦ埛ID
-        /// </summary>
-        public int Id;
-
-        /// <summary>
-        /// 璐﹀彿
-        /// </summary>
-        public string Email;
-
-        /// <summary>
-        /// 鏄惁绂佺敤
-        /// </summary>
-        public int IsEnable;
-
-        /// <summary>
-        /// 璐﹀彿绫诲瀷
-        /// </summary>
-        public int AccountType;
-
-        /// <summary>
-        /// 璐﹀彿澶囨敞
-        /// </summary>
-        public string Remark;
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/RoomInfoRes.cs b/HDL_ON/Entity/ResponseEntity/RoomInfoRes.cs
deleted file mode 100755
index 4b871f1..0000000
--- a/HDL_ON/Entity/ResponseEntity/RoomInfoRes.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-锘縰sing System;
-
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class RoomInfoRes
-    {
-        public int RoomId { get; set; }
-
-        public string RoomName { get; set; }
-
-        public int UserID { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/RoomObjectiveRes.cs b/HDL_ON/Entity/ResponseEntity/RoomObjectiveRes.cs
deleted file mode 100755
index 5225324..0000000
--- a/HDL_ON/Entity/ResponseEntity/RoomObjectiveRes.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-锘縰sing System;
-
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class RoomObjectiveRes
-    {
-        public int RoomOBJId { get; set; }
-
-        public string DeviceType { get; set; }
-
-        public string DeviceName { get; set; }
-
-        public int UserID { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/SceneObjectiveRes.cs b/HDL_ON/Entity/ResponseEntity/SceneObjectiveRes.cs
deleted file mode 100755
index 5c7a11c..0000000
--- a/HDL_ON/Entity/ResponseEntity/SceneObjectiveRes.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-锘縰sing System;
-
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class SceneObjectiveRes
-    {
-        public int SceneOBJId { get; set; }
-
-        public int Command { get; set; }
-
-        public string DeviceName { get; set; }
-
-        public string DeviceType { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/SceneRes.cs b/HDL_ON/Entity/ResponseEntity/SceneRes.cs
deleted file mode 100755
index feb6129..0000000
--- a/HDL_ON/Entity/ResponseEntity/SceneRes.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-锘縰sing System;
-
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class SceneRes
-    {
-        public int SceneId { get; set; }
-
-        public string SceneName { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/SendJson.cs b/HDL_ON/Entity/ResponseEntity/SendJson.cs
deleted file mode 100644
index cee8f41..0000000
--- a/HDL_ON/Entity/ResponseEntity/SendJson.cs
+++ /dev/null
@@ -1,555 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-
-namespace HDL_ON
-{
-
-    //#region ON杞欢璇诲彇鎸囧畾鍖哄煙缃戝叧鍒楄〃锛屾柟娉曞悕锛欸atewayListON          鍙傛暟锛歊egionID  绫诲瀷锛歩nt    
-    ///// <summary>
-    ///// Need Authorzation
-    ///// </summary>
-    //[Serializable]
-    //public class GatewayListONObj
-    //{
-    //    public int RegionID;
-    //}
-    //#endregion
-    #region ON杞欢娣诲姞缃戝叧锛屾柟娉曞悕锛欸atewayByRegionListToON 
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [Serializable]
-    public class GatewayByRegionListToONObj
-    {
-        //鍙傛暟锛� MAC 绫诲瀷锛歴tring RegionID 绫诲瀷锛歩nt  
-        public string MAC;
-        public int RegionID;
-    }
-
-    #endregion
-    #region ON杞欢鎺ヨЕ缃戝叧缁戝畾锛屾柟娉曞悕锛欴elGatewayByMac             
-    /// <summary>
-    /// Need authorization
-    /// </summary>
-    [Serializable]
-    public class DelGatewayByMacObj
-    {
-        //鍙傛暟锛� MAC     绫诲瀷锛歴tring    
-        public string MAC;
-    }
-
-    #endregion
-
-    #region Login 鐧诲綍 鍔熻兘鎻忚堪锛氱櫥褰曞悗鑾峰彇璁块棶浠ょ墝銆�
-    [System.Serializable]
-    public class LoginObj
-    {
-        public string Account;
-
-        public string Password;
-
-        public int Company;
-
-    }
-
-    #endregion
-
-    #region IsExistingAccount 楠岃瘉璐﹀彿鏄惁琚娇鐢� 鍔熻兘鎻忚堪锛氶獙璇佹墜鏈哄拰閭鏄惁琚敞鍐�
-    [System.Serializable]
-    public class IsExistingAccountObj
-    {
-        public string Account;
-    }
-
-    #endregion
-
-    #region SignIn 娉ㄥ唽 鍔熻兘鎻忚堪锛氱敤鎴锋墜鏈哄拰閭娉ㄥ唽
-    [System.Serializable]
-    public class SignInObj
-    {
-        public string Account;
-        public string Password;
-        public string Language;//璇█ (鍥哄畾涓猴細Chinese鍜孍nglish) string 鏄�
-        public int Company;
-    }
-
-    #endregion
-
-    #region SignPhone 鍔熻兘鎻忚堪锛氬彂閫佹墜鏈洪獙璇佺爜
-    [System.Serializable]
-    public class SignPhoneObj
-    {
-        public string Phone;
-        public int Company;// 鐭俊妯℃澘缂栧彿  int 鏄�
-    }
-
-    #endregion
-
-    #region ValidateSmsCode 鍔熻兘鎻忚堪锛氶獙璇佹墜鏈洪獙璇佺爜
-    [System.Serializable]
-    public class ValidateSmsCodeObj
-    {
-        public string Phone;// 鎵嬫満鍙� string 鏄�
-        public string Code;// 楠岃瘉鐮� string 鏄�
-    }
-
-    #endregion
-
-    #region ForgetPassword 鍔熻兘鎻忚堪锛氭牴鎹处鍙风被鍨嬪彂閫侀獙璇佹柟寮�(閭璐﹀彿鍙戦�侀偖浠讹紝鎵嬫満璐﹀彿鍙戦�佺煭淇¢獙璇佺爜锛�
-    [System.Serializable]
-    public class ForgetPasswordObj
-    {
-        public string Account;// 璐﹀彿  string 鏄�
-        public int Company;
-    }
-
-    #endregion
-
-    #region ForgetPasswordAction 鍔熻兘鎻忚堪锛氬繕璁板瘑鐮侊紝鎵嬫満鍙锋壘鍥炲瘑鐮佹柟娉�
-    [System.Serializable]
-    public class ForgetPasswordActionObj
-    {
-        public string Account;// 璐﹀彿  string 鏄�
-        public string Password;// 瀵嗙爜  string 鏄�
-    }
-    #endregion
-
-    #region UpdatePassword 1.8淇敼瀵嗙爜    鍔熻兘鎻忚堪锛氫慨鏀瑰綋鍓嶈处鍙风殑瀵嗙爜
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class UpdatePasswordObj
-    {
-        public string OldPassword;// 鍘熷瘑鐮� string 鏄�
-        public string Password;// 鏂板瘑鐮� string 鏄�
-    }
-    #endregion
-
-    #region UpdateUserInformation 1.9鏇存柊鎴栬缃敤鎴峰熀鏈俊鎭� 鍔熻兘鎻忚堪锛氫慨鏀规垨璁剧疆褰撳墠鐧诲綍鐨勭敤鎴峰熀鏈俊鎭�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class UpdateUserInformationObj
-    {
-        public string Country;// 鍥藉  string 鏄�
-        public string City;// 鍩庡競  string 鏄�
-        public string Company;// 鍏徃  string 鏄�
-        public string Contact;// 鑱旂郴浜� string 鏄�
-    }
-    #endregion
-
-    #region BindPhone 1.10鏇存柊鎴栫粦瀹氭墜鏈哄彿 鍔熻兘鎻忚堪锛氫慨鏀规垨璁剧疆褰撳墠鐧诲綍鐨勭敤鎴峰熀鏈俊鎭�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class BindPhoneObj
-    {
-        public string Phone;
-    }
-
-    #endregion
-
-    #region UpdateUserLanguage 1.11淇敼鐢ㄦ埛璇█    鍔熻兘鎻忚堪锛氫慨鏀圭敤鎴疯瑷�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class UpdateUserLanguageObj
-    {
-        public string Language;
-    }
-    #endregion
-
-    #region GetSubAccountList 1.12瀛愯处鍙蜂互鍙婅皟璇曡处鍙峰垪琛�    鍔熻兘鎻忚堪锛氭煡鐪嬪綋鍓嶈处鍙蜂笅闈㈡墍鏈夌殑瀛愯处鍙峰拰璋冭瘯璐﹀彿
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class GetSubAccountListObj
-    {
-    }
-    #endregion
-
-    #region SignSubAccount 1.13娉ㄥ唽瀛愯处鍙�    鍔熻兘鎻忚堪锛氬綋鍓嶇櫥褰曡处鍙锋敞鍐屽瓙璐﹀彿
-    /// <summary>
-    /// Need Authorzation
-    /// </summary>
-    [System.Serializable]
-    public class SignSubAccountObj
-    {
-        public string Email;// 璐﹀彿  string 鏄�
-        public string Password;// 瀵嗙爜  string 鏄�
-        public string Remark;// 澶囨敞  string 鏄�
-    }
-    #endregion
-
-
-    #region EditSubAccount 1.14缂栬緫瀛愯处鍙�    鍔熻兘鎻忚堪锛氱紪杈戝瓙璐﹀彿鐨勫娉ㄥ拰瀵嗙爜
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class EditSubAccountObj
-    {
-        public int Id;
-        public string Email;// 璐﹀彿  string 鏄�
-        public string Password;// 瀵嗙爜  string 鏄�
-        public string Remark;// 澶囨敞  string 鏄�
-    }
-    #endregion
-
-
-    #region RemoveSubAccount 1.15鍒犻櫎瀛愯处鍙�    鍔熻兘鎻忚堪锛氬垹闄ゅ瓙璐﹀彿
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class RemoveSubAccountObj
-    {
-        public string Email;
-    }
-    #endregion
-
-
-    #region DisableDebug 1.16绂佺敤璋冭瘯璐﹀彿    鍔熻兘鎻忚堪锛氱鐢ㄥ綋鍓嶈处鍙风殑璋冭瘯璐﹀彿
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class DisableDebugObj
-    {
-        public string Account;
-    }
-    #endregion
-
-
-    #region EnableDebug 1.17鍚敤璋冭瘯璐﹀彿    鍔熻兘鎻忚堪锛氬惎鐢ㄥ綋鍓嶈处鍙风殑璋冭瘯璐﹀彿
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class EnableDebugObj
-    {
-        public string Account;
-    }
-    #endregion
-
-
-    #region AddMessage 1.18娣诲姞涓�涓姤璀�/鎻愮ず娑堟伅    鍔熻兘鎻忚堪锛氭坊鍔犱竴涓敤浜庢帹閫佸緱鎶ヨ/鎻愮ず鐨勬秷鎭�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class AddMessageObj
-    {
-        public int SubnetID;// 瀛愮綉鍙� int 鏄�
-        public int DeviceID;// 璁惧鍙� int 鏄�
-        public int SwitchNum;// 娑堟伅鍙� int 鏄�
-        public int MessageMode;// 娑堟伅绫诲瀷锛堟姤璀︿负0锛屾彁绀轰负1锛�   int 鏄�
-        public byte [] AlarmEmail;// 鎺ㄩ�佹ā寮忥紙閭欢涓�1锛孉PP涓�2锛�   byte[] 鏄�
-        public string DetailMessage;// 娑堟伅鍐呭    stirng 鏄�
-        public string MAC;// 涓�绔彛MAC  string 鏄�
-    }
-    #endregion
-
-
-    #region EduitMessage 1.19缂栬緫涓�涓姤璀�/鎻愮ず娑堟伅    鍔熻兘鎻忚堪锛氱紪杈戜竴涓敤浜庢帹閫佸緱鎶ヨ/鎻愮ず鐨勬秷鎭�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class EduitMessageObj
-    {
-        public int Id;
-        public int SubnetID;// 瀛愮綉鍙� int 鏄�
-        public int DeviceID;// 璁惧鍙� int 鏄�
-        public int SwitchNum;// 娑堟伅鍙� int 鏄�
-        public int MessageMode;// 娑堟伅绫诲瀷锛堟姤璀︿负0锛屾彁绀轰负1锛�   int 鏄�
-        public byte [] AlarmEmail;// 鎺ㄩ�佹ā寮忥紙閭欢涓�1锛孉PP涓�2锛�   byte[] 鏄�
-        public string DetailMessage;// 娑堟伅鍐呭    stirng 鏄�
-        public string MAC;// 涓�绔彛MAC  string 鏄�
-    }
-    #endregion
-
-
-    #region MessageListFromUser 1.20鐢ㄦ埛鐨勬秷鎭垪琛�    鍔熻兘鎻忚堪锛氭煡鐪嬪綋鍓嶇敤鎴风殑娑堟伅鍒楄〃
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class MessageListFromUserObj
-    {
-
-    }
-    #endregion
-
-
-    #region 鍏充簬鍖哄煙鐨勬柟娉�
-    #region AddHome  1.23鍒涘缓涓�涓綇瀹呭尯鍩�    鍔熻兘鎻忚堪锛氬垱寤轰竴涓敤鎴蜂綇瀹呭尯鍩�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class AddHomeObj
-    {
-        /// <summary>
-        /// 浣忓畢鍖哄煙鍚嶇О
-        /// </summary>
-        public string Name;
-    }
-    [System.Serializable]
-    public class AddHomeAndGatewayByONObj
-    {
-        /// <summary>
-        /// 浣忓畢鍖哄煙鍚嶇О
-        /// </summary>
-        public string Region;
-        /// <summary>
-        /// The mac.
-        /// </summary>
-        public string MAC;
-    }
-
-    #endregion
-
-    #region HomeList 1.24鑾峰彇鐢ㄦ埛鐨勪綇瀹呭尯鍩熷垪琛�    鍔熻兘鎻忚堪锛氳幏鍙栫敤鎴锋墍鏈変綇瀹呭尯鍩熺殑鍒楄〃
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class HomeListObj
-    {
-
-    }
-    #endregion
-
-    #region EditHome  1.25缂栬緫浣忓畢鍖哄煙鍚嶇О    鍔熻兘鎻忚堪锛氱紪杈戜綇瀹呭尯鍩熷悕绉�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class EditHomeObj
-    {
-        public string Name;// 浣忓畢鍖哄煙鍚嶇О  string 鏄�
-        public int Id;// 浣忓畢鍖哄煙缂栧彿  Int 鏄�
-    }
-    #endregion
-    #region EditMACByON  淇敼浣忓畢缁戝畾鐨刴ac
-    [System.Serializable]
-    public class EditMACByONObj
-    {
-        /// <summary>
-        /// 淇敼鐨勬柊鐨刴ac
-        /// </summary>
-        public string MAC;
-        /// <summary>
-        /// mac 鐨刬d
-        /// </summary>
-        public int Id;
-
-    }
-    [System.Serializable]
-    public class EditMACByHomeId
-    {
-        /// <summary>
-        /// 淇敼鐨勬柊鐨刴ac
-        /// </summary>
-        public string MAC;
-        /// <summary>
-        /// Home 鐨刬d
-        /// </summary>
-        public int RegionID;
-
-    }
-    #endregion
-    #region DeleteHome 1.26鍒犻櫎鏁翠釜浣忓畢鍖哄煙    鍔熻兘鎻忚堪锛氬垹闄ゆ暣涓綇瀹呭尯鍩�
-    /// <summary>
-    /// Need Authorzation
-    /// </summary>
-    [System.Serializable]
-    public class DeleteHomeObj
-    {
-        public int Id;// 浣忓畢鍖哄煙缂栧彿  int 鏄�
-    }
-    #endregion
-
-    #region UploadDevices 1.30涓婁紶缃戝叧璁惧    鍔熻兘鎻忚堪锛氫笂浼犵綉鍏充俊鎭�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class UploadDevicesObjGateway
-    {
-        public string MAC;// 涓�绔彛鐨凪AC鐮�    string 鏄�
-        public string Password;// 涓�绔彛鐨勮繙绋嬪瘑鐮�    string 鏄�
-        public string UserName;// 涓�绔彛鐢ㄦ埛鍚�  string 鏄�
-        public string ProjectName;// 涓�绔彛宸ョ▼鍚�  string 鏄�
-        public int RegionID;// 浣忓畢鍖哄煙缂栧彿  int 鏄�
-    }
-    #endregion
-    #region UploadDevices 1.31涓婁紶璁惧淇℃伅    鍔熻兘鎻忚堪锛氫笂浼犺澶囦俊鎭��
-    /// <summary>
-    /// Need Authorizatin
-    /// </summary>
-    [System.Serializable]
-    public class UploadDevicesObj
-    {
-        public string DeviceName;// 璁惧鍚� string 鏄�
-        public string DeviceType;// 璁惧埆绫诲瀷, 鍥哄畾涓�
-        public int SubnetID;//    瀛愮綉鍙� int 鏄�
-        public int DeviceID;//    璁惧鍙� int 鏄�
-        public int LoopID;//  鍥炶矾鍙� int 鏄�
-        public string MAC;// 闇�瑕佺粦瀹氱殑涓�绔彛MAC鐮�    string  鏄�
-        public int RegionID;//    浣忓畢鍖哄煙缂栧彿  Int 鏄�
-    }
-    #endregion
-    #region GatewayList 1.32璇诲彇鐢ㄦ埛鎵�鏈夌綉鍏冲垪琛� 鍔熻兘鎻忚堪锛氳鍙栧綋鍓嶇敤鎴风殑鎵�鏈変竴绔彛
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class GatewayListObj
-    {
-
-    }
-    [System.Serializable]
-    public class GatewayMACObj
-    {
-        public string MAC;// string
-        public int Id;//  int
-    }
-    [System.Serializable]
-    public class GatewayObj : GatewayMACObj
-    {
-        public string Password;//  string
-        public string ProjectName;// string
-        public string UserName;//    string
-        public string Region;// string
-    }
-    #endregion
-    #region GatewayByRegionList 1.33璇诲彇鐢ㄦ埛鎸囧畾鍖哄煙缃戝叧鍒楄〃    鍔熻兘鎻忚堪锛氳鍙栧綋鍓嶇敤鎴锋寚瀹氬尯鍩熺殑鎵�鏈変竴绔彛
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class GatewayByRegionListObj
-    {
-        public int RegionID;// 浣忓畢鍖哄煙缂栧彿  int 鏄�
-    }
-    #endregion
-    #region DeviceList 1.34璇诲彇璁惧淇℃伅鍒楄〃    鍔熻兘鎻忚堪锛氳鍙栧綋鍓嶇敤鎴疯澶囧垪琛�
-    /// <summary>
-    /// Need Authorization
-    /// </summary>
-    [System.Serializable]
-    public class DeviceListObj
-    {
-
-    }
-    #endregion
-
-    /// <summary>
-    /// Need Autorization
-    /// </summary>
-    [Serializable]
-    public class DelGatewayObj
-    {
-        public int Id;// 缃戝叧缂栧彿    int 鏄�
-    }
-
-
-    /// <summary>
-    /// Need Autorization
-    /// </summary>
-    [Serializable]
-    public class EditGatewayMACByONObj
-    {
-        public int Id;
-        public string MAC;
-    }
-    #endregion
-
-    #region 澶囦唤鎭㈠鏁版嵁
-    /// <summary>
-    /// 娣诲姞澶囦唤鐩綍
-    /// </summary>
-    [Serializable]
-    public class AddFolderObj
-    {
-        /// <summary>
-        /// 鍖哄煙ID
-        /// </summary>
-        public int LevelID ;
-        /// <summary>
-        /// 澶囦唤鐩綍鍚嶇О
-        /// </summary>
-        public string Name;
-
-    }
-
-    /// <summary>
-    /// 鑾峰彇鍖哄煙涓嬬殑澶囦唤鍒楄〃鐩綍
-    /// </summary>
-    [Serializable]
-    public class GetUserFolderObj
-    {
-        /// <summary>
-        /// 鍖哄煙ID
-        /// </summary>
-        public int LevelID;
-    }
-
-    /// <summary>
-    /// 澶囦唤鏂囦欢澶归噷闈㈢殑鏂囦欢鐩綍
-    /// </summary>
-    [Serializable]
-    public class UserBackupListObj
-    {
-        public int LevelID;
-    }
-
-
-    /// <summary>
-    /// 鑾峰彇澶囦唤鏂囦欢鏁版嵁
-    /// return 浜岃繘鍒舵祦鏁版嵁
-    /// </summary>
-    [Serializable]
-    public class BackupDetailObj
-    {
-        public int Id;
-    }
-
-    /// <summary>
-    /// 涓婁紶澶囦唤鏂囦欢鏁版嵁
-    /// </summary>
-    [Serializable]
-    public class AddUserBackupObj
-    {
-        /// <summary>
-        /// wenjian mingcheng 
-        /// </summary>
-        public string Name;
-        /// <summary>
-        /// 鏂囦欢鏁版嵁
-        /// </summary>
-        public byte [] DetailByte;
-        /// <summary>
-        /// 鏂囦欢澶� ID
-        /// </summary>
-        public int LevelID;
-    }
-    /// <summary>
-    /// Delete backup data.
-    /// </summary>
-    [Serializable]
-    public class DeleteFolderDataObj
-    {
-        public int Id;
-    }
-    #endregion
-
-
-}
\ No newline at end of file
diff --git a/HDL_ON/Entity/ResponseEntity/SensorHistory.cs b/HDL_ON/Entity/ResponseEntity/SensorHistory.cs
deleted file mode 100644
index 53852a2..0000000
--- a/HDL_ON/Entity/ResponseEntity/SensorHistory.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-
-namespace HDL_ON
-{
-
-    public class SensorPushHistory
-    {
-
-        /// <summary>
-        /// MAC
-        /// </summary>
-        public string MAC { get; set; }
-
-        /// <summary>
-        /// 璁惧鐨勫瓙缃戝彿
-        /// </summary>
-        public int SubnetID { get; set; }
-
-        /// <summary>
-        /// 璁惧鍙�
-        /// </summary>
-        public int DeviceID { get; set; }
-
-        /// <summary>
-        /// 濡傛灉娌℃湁鍒欓粯璁や负1
-        /// </summary>
-        public int LoopID { get; set; }
-
-
-        /// <summary>
-        /// 澶х被鍨�
-        /// </summary>
-        public int LargeType { get; set; }
-
-        /// <summary>
-        /// 灏忕被鍨�
-        /// </summary>
-        public int SmallType { get; set; }
-
-        /// <summary>
-        /// 鐢ㄤ簬鏌ヨ鎸囧畾鏈堜唤锛堝鏋滀笉鏄煡璇㈡湀浠藉垯榛樿涓�0锛�
-        /// </summary>
-        public int NowMonth { get; set; }
-
-        /// <summary>
-        /// 鏌ヨ绫诲瀷
-        /// </summary>
-        public QueryType QueryType { get; set; }
-
-        public int LocalTimeZone {
-            get {
-                try {
-                    return Convert.ToInt32 (DateTime.Now.ToString ("%z"));
-                }catch{
-                    return 0;
-                }
-            }
-        }
-    }
-
-    public enum QueryType
-    {
-        NowDay = 0,//褰撳ぉ
-        NowMonth = 1,//鎸囧畾鏈�
-        NowYear = 2,//浠婂勾
-        LatelySevenDay = 3//鏈�杩戜竷澶�
-    }
-
-
-    public class SensorPushHistoryRes
-    {
-
-        /// <summary>
-        /// 瀹為檯鐩爣鍊�
-        /// </summary>
-        public float TargetValue { get; set; }
-
-        /// <summary>
-        /// 鏌ヨ鐨勬椂闂撮泦缇�
-        /// </summary>
-        public DateTime CreatedOnUtc { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/SubAccountRes.cs b/HDL_ON/Entity/ResponseEntity/SubAccountRes.cs
deleted file mode 100755
index 9f2e91c..0000000
--- a/HDL_ON/Entity/ResponseEntity/SubAccountRes.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-锘縰sing System;
-
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class SubAccountRes
-    {
-        public int UserID { get; set; }
-
-        public string Account { get; set; }
-
-        public int IsEnable { get; set; }
-
-        public int UserType { get; set; }
-
-        public string Remark { get; set; }
-    }
-}
diff --git a/HDL_ON/Entity/ResponseEntity/Timer.cs b/HDL_ON/Entity/ResponseEntity/Timer.cs
deleted file mode 100644
index 0ca27bd..0000000
--- a/HDL_ON/Entity/ResponseEntity/Timer.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-锘縰sing System;
-namespace HDL_ON
-{
-    [Serializable]
-    public class Timer
-    {
-        /// <summary>
-        /// 瀹氭椂鍣ㄧ殑鍞竴ID
-        /// </summary>
-        public string Guid { get; set; }
-
-        /// <summary>
-        /// 瀹氭椂鍣ㄥ娉ㄥ悕
-        /// </summary>
-        public string TimerName { get; set; }
-
-        /// <summary>
-        /// 缃戝叧ID
-        /// </summary>
-        public int RegionID { get; set; }
-
-        /// <summary>
-        /// 鎵ц鏃堕棿鐐�
-        /// </summary>
-        public string ExecutionTime { get; set; }
-
-        /// <summary>
-        /// 閲嶅鍛ㄦ湡
-        /// </summary>
-        public string Periodicity { get; set; }
-
-        /// <summary>
-        /// 鏄惁鍚敤
-        /// </summary>
-        public bool IsStart { get; set; }
-
-        /// <summary>
-        /// 瀹氭椂鍣ㄩ噸澶嶇被鍨�
-        /// </summary>
-        public TimerType TimerType { get; set; }
-
-        /// <summary>
-        /// 鎺у埗鐨勮澶囨暟鎹�
-        /// </summary>
-        public string ControlDeviceData { get; set; }
-
-        /// <summary>
-        /// 鎴块棿鍚嶇О
-        /// </summary>
-        public string RoomName { get; set; }
-
-        /// <summary>
-        /// 鏃跺尯
-        /// </summary>
-        public int TimeZone { get; set; }
-
-        /// <summary>
-        /// 灏嗘墽琛屾椂闂磋浆鎴愭湰鍦版椂闂存樉绀猴紝鏈嶅姟闇�瑕乽tc鏃堕棿鎵ц瀹氭椂鎿嶄綔銆�
-        /// </summary>
-        public string ShowPeriodicity{
-            get{
-                return Periodicity + TimeZone;
-            }
-        }
-
-    }
-
-    public enum TimerType
-    {
-        EveryDay = 0,   //姣忓ぉ
-        WorkingDay, //宸ヤ綔鏃�
-        Weekend,    //鍛ㄦ湯
-        Week,       //鎸囧畾鏄熸湡鍑�
-        Period,     //鎸囧畾鏃堕棿娈�
-        AppointDay,  //鎸囧畾鏃�
-     
-    }
-
-    #region 閫氳
-    public class DeviceInfo
-    {
-        public string DevicePath { get; set; }
-
-        public int DeviceType { get; set; }
-
-        public byte SubnetID { get; set; }
-
-        public byte DeviceID { get; set; }
-
-        public byte LoopID { get; set; }
-
-        public int Command { get; set; }
-
-        public byte [] SendBytes { get; set; }
-    }
-    //    AddTimer 娣诲姞瀹氭椂鍣�
-    //褰撳畾鏃跺櫒閲嶅绫诲瀷涓烘瘡鏃ャ�佸伐浣滄棩銆佸懆鏈紝鍙~鍏匱imerType
-    //濡傛灉鏈寚瀹氭槦鏈熷嚑Week锛屽~鍏匬eriodicity
-
-    //    EditTimer 缂栬緫瀹氭椂鍣�
-    //褰撳畾鏃跺櫒閲嶅绫诲瀷涓烘瘡鏃ャ�佸伐浣滄棩銆佸懆鏈紝鍙~鍏匱imerType
-    //濡傛灉鏈寚瀹氭槦鏈熷嚑Week锛屽~鍏匬eriodicity
-
-    //GetOneTimerInfo 璇诲彇涓�涓畾鏃跺櫒淇℃伅
-    //濉厖Id 瀛楁灏辫浜�
-
-    //GetTimerList 璇诲彇瀹氭椂鍣ㄥ垪琛�    濉厖 GatewayId瀛楁
-
-    //IsEnableTimer 鍚敤鎴栫鐢ㄥ畾鏃跺櫒    濉厖Id 瀛楁灏辫浜�
-
-    //DeleteTimer 鍒犻櫎瀹氭椂鍣�    濉厖Id 瀛楁灏辫浜�
-    #endregion
-
-}
diff --git a/HDL_ON/Entity/ResponseEntity/UserLoginRes.cs b/HDL_ON/Entity/ResponseEntity/UserLoginRes.cs
deleted file mode 100755
index 604689a..0000000
--- a/HDL_ON/Entity/ResponseEntity/UserLoginRes.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-锘縰sing System;
-
-
-namespace HDL_ON
-{
-    [Serializable]
-    public class UserLoginRes
-    {
-        public string Token;
-
-        public string TimeStamp;
-
-        public int UserId;
-
-        public string Account;
-
-        public int UserType;
-
-        public int MainUserId;
-
-        public bool IsProxyAllVisionRegister;  //<!--鏄惁鍦ㄥ叏瑙嗛�氫腑浠g悊娉ㄥ唽浜�-->
-        public bool IsAllVisionRoomBind;     //<!-- 鏄惁鍦ㄧ粦瀹氫簡浣忔埧浜�,濡傛灉杩欎袱涓瓧娈礗sProxyAllVisionRegister+IsProxyAllVisionRegister閮戒负true鐨勮瘽锛屽垯App绔樉绀哄叏瑙嗛�氳烦杞殑鍔熻兘 -->
-        public string AllVisionRegisterDevUserNameGuid;//7D1fb999-20b6-4363-b731-732d9171071f" ,  <!--SIP 甯愬彿-->         
-        public string TenantCode;// "TXXXX",
-        public string DevelopCode;//": "abc-51f5-123-982c-def"
-    }
-}
diff --git a/HDL_ON/HDL/Operation/UserConfig.cs b/HDL_ON/HDL/Operation/UserConfig.cs
index 1a3e264..df9993e 100644
--- a/HDL_ON/HDL/Operation/UserConfig.cs
+++ b/HDL_ON/HDL/Operation/UserConfig.cs
@@ -46,22 +46,18 @@
         {
             MyIO.FileUtils.WriteFileByBytes (configFile, GetUserConfigBytes ());
         }
-
-        public int internetStatus = 2;
         /// <summary>
         /// 鍥藉浠g爜
         /// </summary>
         public string CountryCode;
-
         /// <summary>
-        /// 鎵嬫満appID
+        /// 鍥藉缂栧彿
         /// </summary>
-        public string tokenID = string.Empty;
-
+        public string CountryNumber ="86";
         /// <summary>
-        /// 鎵嬫満鍒悕
+        /// 淇℃伅鎺ㄩ�佹爣璁�
         /// </summary>
-        public string phoneName = string.Empty;
+        public string PushDeviceToken;
 
         public Dictionary<string, int> SkinVision = new Dictionary<string, int> ();
         public Dictionary<string, int> DowlaodSkinVision = new Dictionary<string, int> ();
@@ -77,18 +73,20 @@
 
         public string SetLanguage = "";
 
-        /// <summary>
-        /// 鍟嗗簵褰撳墠鐨勭増鏈�
-        /// </summary>
-        public string StoreVersion = "";
+
+        public RegionInfoRes CurrentRegion;
 
         /// <summary>
-        /// 鏄惁涓哄晢搴楁渶鏂扮増鏈�
+        /// 鍒囨崲褰撳墠app鏄剧ず鐨勪綇瀹�
         /// </summary>
-        public bool IsAppStoreVersionNewer = true;
+        /// <param name="regionInfo"></param>
+        public void ChangeResidence (RegionInfoRes regionInfo)
+        {
+            CurrentRegion = regionInfo;
 
-        public List<RegionInfoRes> HomeLists = new List<RegionInfoRes> ();
 
-        public RegionInfoRes CurrentRegion = new RegionInfoRes() { MAC = "0123456789ABCDEF", RegionID = 6666, RegionName = "濡効鐨勫" } ;
+        }
+
+
     }
 }
\ No newline at end of file
diff --git a/HDL_ON/HDL/Operation/UserInfo.cs b/HDL_ON/HDL/Operation/UserInfo.cs
index 569a97a..f56eb44 100644
--- a/HDL_ON/HDL/Operation/UserInfo.cs
+++ b/HDL_ON/HDL/Operation/UserInfo.cs
@@ -1,8 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
-using System.Linq;
 using System.Text;
-using HDL_ON.UI;
 
 namespace HDL_ON
 {
@@ -10,14 +8,9 @@
     public class UserInfo
     {
         /// <summary>
-        /// 瀛樺偍鏂囦欢
-        /// </summary>
-        public static string GlobalRegisterFile = "Register_File";
-        /// <summary>
         /// 鐢ㄦ埛鍚嶇О
         /// </summary>
         public string UserName = "";
-
         /// <summary>
         /// 鐢ㄦ埛
         /// </summary>
@@ -33,25 +26,18 @@
         public int ID;
 
         /// <summary>
-        /// 鍘熷瘑鐮�
-        /// </summary>
-        //public string OriginalPassword;
-
-        /// <summary>
         /// 涓婁竴娆$櫥褰曟椂闂�
         /// </summary>
-        public DateTime LastTime = System.DateTime.MinValue;
+        public DateTime LastTime = DateTime.MinValue;
 
         /// <summary>
         /// 鏄惁鏄櫥褰曠姸鎬�
         /// </summary>
         public bool IsLogin {
             get {
-                return (System.DateTime.Now - LastTime).TotalDays < 7;
+                return (DateTime.Now - LastTime).TotalDays < 7;
             }
         }
-
-        //public bool TipShowed = false;
 
         public int AccountType = 0;
 
@@ -59,15 +45,20 @@
 
         public string LoginTokenString{
             get {
-                var result = System.Text.Encoding.UTF8.GetBytes (Password);
+                var result = Encoding.UTF8.GetBytes (Password);
                 var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider ();
                 var output = md5.ComputeHash (result);
                 var md5Password = BitConverter.ToString (output).Replace ("-", "");
                 var account_md5Pssword = AccountString + ":" + md5Password;
-                var tokenBytes = System.Text.Encoding.UTF8.GetBytes (account_md5Pssword);
+                var tokenBytes = Encoding.UTF8.GetBytes (account_md5Pssword);
                 return Convert.ToBase64String (tokenBytes).Replace ("=", "%3D");
             }
         }
+
+        /// <summary>
+        /// 鐢ㄦ埛浣忓畢鍒楄〃
+        /// </summary>
+        public List<RegionInfoRes> HomeLists = new List<RegionInfoRes>();
 
         /// <summary>
         ///  <!--SIP 甯愬彿-->
@@ -77,12 +68,7 @@
 
         public void SaveUserInfo ()
         {
-            MyIO.FileUtils.WriteFileByBytes (UserInfo.GlobalRegisterFile, Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (this)));
-        }
-
-        public void ReInitUserInfo()
-        {
-            MainPage.LoginUser = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo> (System.Text.Encoding.UTF8.GetString (HDL_ON.MyIO.FileUtils.ReadFile (UserInfo.GlobalRegisterFile)));
+            MyIO.FileUtils.WriteFileByBytes ("Register_File", Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (this)));
         }
     }
 }
\ No newline at end of file
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index c6fe288..22cd695 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -32,24 +32,8 @@
     <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequest.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmebly.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicMothed.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\BackupInfoRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\DeviceInfoRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\FolderRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\GatewayRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\MessageInfoRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\RegionInfoRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResponsePack.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResultStatus.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResultSubaccount.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\RoomInfoRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\RoomObjectiveRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\SceneObjectiveRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\SceneRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\SendJson.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\SensorHistory.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\SubAccountRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\Timer.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\UserLoginRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\EmptyHttpReques.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequestBase.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\BLL\RegisterPageBLL.cs" />
@@ -63,6 +47,8 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\UI\RegisterPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\UI\ResetPassword_VerificationCode.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UI\PersonalDataPage.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)UI\" />
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index 12089b0..46005fc 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -15,6 +15,8 @@
 
         public static List<string> LocationFiles;
 
+        public static string VersionString = "3.01205";
+
         /// <summary>
         /// 鍏徃浠g爜
         /// 棰勭暀绗笁鏂瑰畾鍒舵爣璁�
@@ -37,31 +39,25 @@
                 Application.MainPage.BackgroundColor = CSS_Color.MainBackgroundColor;
 
 
-#if DEBUG
-                MainPage.LoginUser = new UserInfo
+                Log("1");
+                LoginUser = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo>(System.Text.Encoding.UTF8.GetString(MyIO.FileUtils.ReadFile("Register_File")));
+                Log("2");
+                //鍒ゆ柇闇�涓嶉渶瑕佺櫥褰曪紝鏈夋病鏈夌櫥褰曪紝鎴栬�呯櫥褰曟槸鍚﹁繃鏈燂紝
+                if (LoginUser == null || !LoginUser.IsLogin)
                 {
-                    ID = 0,
-                    AccountType = 0,
-                    AccountString = "zxn@hdlchina.com.cn",
-                    Password = "",
-                    UserName = "灏忎竷灏忎竷",
-                    LastTime = DateTime.Now,
-                };
+                    var fisrtView = new UI.UI1Login.LoginPage();
+                    fisrtView.BackgroundColor = CSS_Color.MainBackgroundColor;
+                    BaseView.AddChidren(fisrtView);
+                    fisrtView.LoadView();
 
-                var ss = new UI.UserPage();
-                MainPage.BaseView.AddChidren(ss);
-                ss.ChoosePersonalCenter();
-
-                //var personalCenterPage = new UI2.PersonalCenterPage();
-                //MainPage.BaseView.AddChidren(personalCenterPage);
-                //personalCenterPage.LoadView();
-#else
-                var fisrtView = new UI1Login.LoginPage();
-                fisrtView.BackgroundColor = CSS_Color.MainBackgroundColor;
-                BaseView.AddChidren(fisrtView);
-                fisrtView.LoadView();
-#endif
-
+                }
+                else
+                {
+                    //璺宠浆椤甸潰----
+                    var ss = new UI.UserPage();
+                    BaseView.AddChidren(ss);
+                    ss.LoadPage();
+                }
             }
             catch
             {
diff --git a/HDL_ON/UI/UI0-Public/PublicMothed.cs b/HDL_ON/UI/UI0-Public/PublicMothed.cs
index e58be4b..06ffaf4 100644
--- a/HDL_ON/UI/UI0-Public/PublicMothed.cs
+++ b/HDL_ON/UI/UI0-Public/PublicMothed.cs
@@ -1,7 +1,8 @@
 锘縰sing System;
-using System.Text.RegularExpressions;
-using HDL_ON.DAL.Server;
-namespace HDL_ON.UI
+using System.Threading;
+using Shared;
+
+namespace HDL_ON
 {
     public class PublicMothed
     {
@@ -9,8 +10,30 @@
         {
         }
 
-                    //Regex reg = new Regex("^\\d+$");
 
+    }
+
+    public class WaitPageMothed
+    {
+        /// <summary>
+        /// 鍔犺浇绛夊緟鐣岄潰
+        /// </summary>
+        public void LoadPage_WaitPage(Thread thread, FrameLayout bodyView,Loading waitPage)
+        {
+            bodyView.AddChidren(waitPage);
+            waitPage.Start(Language.StringByID(InternationalizationString.PleaseWait));
+            var showedTime = DateTime.Now;
+            //濡傛灉绛夊緟浜嬩欢杩囬暱锛屽彲浠ュ厑璁哥敤鎴峰彇娑堝綋鍓嶆搷浣�
+            waitPage.MouseUpEventHandler += (sender, e) =>
+            {
+                if (showedTime.AddSeconds(30) > DateTime.Now)
+                {
+                    thread.Abort();
+                    waitPage.RemoveFromParent();
+                }
+            };
+            thread.Start();
+        }
 
     }
 }
diff --git a/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs b/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs
index 50aa29f..4f326f5 100644
--- a/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs
@@ -18,7 +18,8 @@
             LoadEvent_EditTextFcousChange();
             LoadEvent_ChangeTextVisble();
             LoadEvent_GetVerificationCode();
-            LoadEvent_Register();
+            LoadEvent_Reset();
+            LoadEvent_TextChange();
         }
 
         /// <summary>
@@ -34,7 +35,6 @@
                 btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
                 btnPhoneLogin.TextColor = CSS_Color.MainColor;
                 btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
-                btnChooseBottomLine.X = btnPhoneLogin.X + Application.GetRealWidth(27);
                 etAccount.PlaceholderText = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber);
                 #endregion
 
@@ -56,7 +56,6 @@
                 btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize;
                 btnEmailLogin.TextColor = CSS_Color.MainColor;
                 btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
-                btnChooseBottomLine.X = btnEmailLogin.X + Application.GetRealWidth(27);
                 etAccount.PlaceholderText = Language.StringByID(InternationalizationString.PlsEntryEmailAddress);
                 #endregion
 
@@ -69,6 +68,26 @@
                 accountView.AddChidren(btnAccountIcon);
                 #endregion
 
+            };
+        }
+
+        /// <summary>
+        /// 鍔犺浇鏂囨湰鍙樺寲浜嬩欢
+        /// </summary>
+        void LoadEvent_TextChange()
+        {
+            etAccount.TextChangeEventHandler += (sender, e) =>
+            {
+                Regex reg = new Regex(@"^[1]+\d{9}");
+                var mFalg = reg.Match(etAccount.Text.Trim());
+                if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
+                {
+                    btnGetVerificationCode.IsSelected = false;
+                }
+                else
+                {
+                    btnGetVerificationCode.IsSelected = true;
+                }
             };
         }
 
@@ -94,7 +113,7 @@
                     //鎵嬫満鏂瑰紡-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘
                     if (registerType == 0)
                     {
-                        Regex reg = new Regex("^\\d+$");
+                        Regex reg = new Regex(@"^[1]+\d{9}");
                         var mFalg = reg.Match(etAccount.Text.Trim());
                         if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
                         {
@@ -109,13 +128,8 @@
                         }
                         else
                         {
-                            //鏍囪鎵嬫満鍙风爜鏈夋晥
                             btnGetVerificationCode.IsSelected = true;
-                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡
-                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
-                            {
-                                btnRegister.IsSelected = true;
-                            }
+                            LoadMothed_EnableResetButton();
                         }
                     }
                     else if (registerType == 1)
@@ -136,13 +150,8 @@
                         }
                         else
                         {
-                            //鏍囪鎵嬫満鍙风爜鏈夋晥
                             btnGetVerificationCode.IsSelected = true;
-                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡
-                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
-                            {
-                                btnRegister.IsSelected = true;
-                            }
+                            LoadMothed_EnableResetButton();
                         }
                     }
                 }
@@ -197,12 +206,7 @@
                     }
                     else
                     {
-                        ValidPassword = true;
-                        //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡
-                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
-                        {
-                            btnRegister.IsSelected = true;
-                        }
+                        LoadMothed_EnableResetButton();
                     }
                 }
             };
@@ -220,15 +224,12 @@
                     btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1);
                     if (etVerificationCode.Text.Length > 4)
                     {
-                        //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡
-                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
-                        {
-                            btnRegister.IsSelected = true;
-                        }
+                        LoadMothed_EnableResetButton();
                     }
                 }
             };
         }
+
 
         /// <summary>
         /// 鏇存敼瀵嗙爜鍙鎬�
@@ -255,43 +256,55 @@
             btnGetVerificationCode.MouseUpEventHandler += (sender, e) => {
                 if (btnGetVerificationCode.IsSelected)
                 {
-                    //鐭俊鍙戦�侀棿闅�60s
-                    btnGetVerificationCode.IsSelected = false;
-                    int time = 60;
-                    new Thread(() =>
+                    //鑾峰彇楠岃瘉鐮�
+                    var result = pm.SendSms(etAccount.Text.Trim());
+                    if (result.StateCode == "Success")
                     {
-                        while (time == 0)
+                        //鐭俊鍙戦�侀棿闅�60s
+                        btnGetVerificationCode.IsSelected = false;
+                        etVerificationCode.Foucs = true;
+                        int time = 60;
+                        new Thread(() =>
                         {
-                            time--;
+                            while (time > 0)
+                            {
+                                time--;
+                                Application.RunOnMainThread(() =>
+                                {
+                                    btnGetVerificationCode.Text = time.ToString() + "s";
+                                });
+                                Thread.Sleep(1000);
+                            }
                             Application.RunOnMainThread(() =>
                             {
-                                btnGetVerificationCode.Text = time.ToString() + "s";
+                                //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
+                                btnGetVerificationCode.IsSelected = true;
+                                btnGetVerificationCode.TextID = InternationalizationString.GetVerificationCode;
                             });
-                            Thread.Sleep(1000);
-                        }
-                        Application.RunOnMainThread(() =>
-                        {
-                            //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
-                            btnGetVerificationCode.IsSelected = true;
-                        });
-                    })
-                    { IsBackground = true }.Start();
-                    //妫�鏌ユ墜鏈烘槸鍚﹀凡缁忚鏂瑰紡
-                    var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim());
-                    //鎵嬫満鏈鏂瑰紡
-                    if (checkPhoneResult.StateCode != HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //鑾峰彇楠岃瘉鐮�
-                        pm.GetPhoneVerificationCode(etAccount.Text.Trim(), MainPage.Company);
+                        })
+                        { IsBackground = true }.Start();
                     }
                     else
                     {
-                        //鎻愮ず鎵嬫満鍙风爜宸茬粡鏂瑰紡
+                        string tipString = "Server error";
+                        switch (result.StateCode)
+                        {
+                            case "Exist":
+                                tipString = Language.StringByID(InternationalizationString.AccountAlreadyExists);
+                                break;
+                            case "SendFail":
+                                tipString = Language.StringByID(InternationalizationString.FailedToSendVerificationCode);
+                                break;
+                            case "Self:Net_Error":
+                                tipString = Language.StringByID(InternationalizationString.NetworkAnomaly);
+                                break;
+                        }
+
                         new Tip()
                         {
                             CloseTime = 3,
                             Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.AccountAlreadyExists)
+                            Text = tipString
                         }.Show(bodyView);
                     }
                 }
@@ -301,88 +314,118 @@
         /// <summary>
         /// 鍔犺浇鏂瑰紡鎸夐挳浜嬩欢
         /// </summary>
-        void LoadEvent_Register()
+        void LoadEvent_Reset()
         {
-            btnRegister.MouseUpEventHandler += (sender, e) =>
+            btnReset.MouseUpEventHandler += (sender, e) =>
             {
-                //鎵嬫満鏂瑰紡
-                if (registerType == 0)
+                if (btnReset.IsSelected)
                 {
-                    //鏍¢獙楠岃瘉鐮�
-                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //楠岃瘉璐﹀彿
-                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
-                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                        {
-                            //楠岃瘉鎴愬姛
-                            //鎵ц鍥炶皟浜嬩欢
-                            callbackAction?.Invoke(etAccount.Text.Trim());
-                        }
-                        else
-                        {
-                            //楠岃瘉澶辫触
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Text = registerPhoneResult.ErrorInfo,
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                    }
-                    else
-                    {
-                        //楠岃瘉鐮佹牎楠屽け璐�
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
-                        }.Show(bodyView);
-                    }
-                }
-                else if (registerType == 1)
-                {
-                    //閭鏂瑰紡
-                    //鏍¢獙楠岃瘉鐮�
-                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //鏂瑰紡璐﹀彿
-                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
-                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                        {
-                            //鏂瑰紡鎴愬姛
-                            //鎵ц鍥炶皟浜嬩欢
-                            callbackAction?.Invoke(etAccount.Text.Trim());
-                        }
-                        else
-                        {
-                            //鏂瑰紡澶辫触
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Text = registerPhoneResult.ErrorInfo,
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                    }
-                    else
-                    {
-                        //楠岃瘉鐮佹牎楠屽け璐�
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
-                        }.Show(bodyView);
-                    }
+                    //鍒涘缓淇敼瀵嗙爜绾跨▼
+                    var loginThread = LoadMothed_ResetThread();
+                    waitPage = new Loading();
+                    new WaitPageMothed().LoadPage_WaitPage(loginThread, bodyView, waitPage);
                 }
             };
         }
 
+        /// <summary>
+        /// 鍔犺浇閲嶇疆瀵嗙爜鏂规硶
+        /// </summary>
+        Thread LoadMothed_ResetThread()
+        {
+            string account = etAccount.Text.Trim();
+            string password = etPassword.Text.Trim();
+            string repeatPassword = etRepeatPassword.Text.Trim();
+            string verCode = etVerificationCode.Text.Trim();
+            int countryIndex = 0;
+            try
+            {
+                countryIndex = Convert.ToInt32(btnGlobalRoaming.Text.Trim().Remove('+'));
+            }
+            catch { }
+
+            return new Thread(() =>
+            {
+                var verResult = pm.ValidatorCode(account, verCode, countryIndex);
+                if (verResult.StateCode == "Success")
+                {
+                    var resetResult = pm.ResetPassword(account, password, repeatPassword, countryIndex);
+                    if(resetResult.StateCode == "Success")
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            waitPage.Hide();
+                            this.Close();
+                            callbackAction?.Invoke(account);
+                        });
+                    }
+                    else
+                    {
+                        string erorrInfo = "";
+                        switch (resetResult.StateCode)
+                        {
+                            case "PwdNoConfirm"://涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�
+                                erorrInfo = Language.StringByID(InternationalizationString.IncorrectRepeatPassword);
+                                break;
+                            case "AccountNoExists"://涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�
+                                erorrInfo = Language.StringByID(InternationalizationString.AccountNotExist);
+                                break;
+                            default:
+                                erorrInfo = "Server error";
+                                break;
+                        }
+                        Application.RunOnMainThread(() =>
+                        {
+                            waitPage.Hide();
+                            new Tip()
+                            {
+                                CloseTime = 3,
+                                Direction = AMPopTipDirection.None,
+                                Text = erorrInfo,
+                            }.Show(bodyView);
+                        });
+                    }
+                }
+                else
+                {
+                    string erorrInfo = "";
+                    switch (verResult.StateCode)
+                    {
+                        case "ValidCodeAndPhoneNoEqual"://楠岃瘉鐮侀敊璇�
+                            erorrInfo = Language.StringByID(InternationalizationString.VerificationCodeWrong);
+                            break;
+                        default:
+                            erorrInfo = "Server error";
+                            break;
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        waitPage.Hide();
+                        new Tip()
+                        {
+                            CloseTime = 3,
+                            Direction = AMPopTipDirection.None,
+                            Text = erorrInfo,
+                        }.Show(bodyView);
+                    });
+                }
+            });
+        }
+
+        /// <summary>
+        /// 浣胯兘淇敼纭畾鎸夐挳
+        /// </summary>
+        void LoadMothed_EnableResetButton()
+        {
+            if(!string.IsNullOrEmpty( etAccount.Text)&&!string.IsNullOrEmpty(etPassword.Text)&& !string.IsNullOrEmpty( etVerificationCode.Text) && (etPassword.Text.Trim()== etRepeatPassword.Text.Trim()))
+            {
+                btnReset.IsSelected = true;
+            }
+            else
+            {
+                btnReset.IsSelected = false;
+            }
+        }
+
     }
 }
diff --git a/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs b/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs
index a221911..285d2d9 100644
--- a/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
+using System.Text.RegularExpressions;
 using System.Threading;
-using HDL_ON.DAL.Server;
+using System.Collections.Generic;
 using HDL_ON.UI.CSS;
 using Shared;
 
@@ -17,11 +18,11 @@
             LoadPage_SwitchLoginType();
             LoadMethod_VisiblePassword();
             LoadPage_SwitchLoginMode();
-            LoadMethod_LoginMethod();
+            LoadEvent_Login();
             LoadPage_SelectionEditText();
             LoadPage_RegisterPage();
             GetVerificationCode();
-
+            LoadMethod_ForgetPassword();
         }
 
         /// <summary>
@@ -31,33 +32,32 @@
         {
             btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
             {
-#if DEBUG
-                etAccount.Text = "17576024298";
-#endif
-                string phoneNumber = etAccount.Text.Trim();
-                btnGetVerificationCode.Enable = false;
-                btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
-                int time = 60;
-                new Thread(() =>
+                if (btnGetVerificationCode.IsSelected)
                 {
-                    while (time != 0)
+                    string phoneNumber = etAccount.Text.Trim();
+                    btnGetVerificationCode.IsSelected = false;
+                    btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
+                    int time = 60;
+                    new Thread(() =>
                     {
-                        time--;
+                        while (time < 0)
+                        {
+                            time--;
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnGetVerificationCode.Text = time.ToString() + "s";
+                            });
+                            Thread.Sleep(1000);
+                        }
                         Application.RunOnMainThread(() =>
                         {
-                            btnGetVerificationCode.Text = time.ToString() + "s";
+                            btnGetVerificationCode.IsSelected = true;
+                            btnGetVerificationCode.TextID = InternationalizationString.GetVerificationCode;
                         });
-                        Thread.Sleep(1000);
-                    }
-                })
-                { IsBackground = true }.Start();
-                //妫�鏌ユ墜鏈烘槸鍚﹀凡缁忚娉ㄥ唽
-                var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim());
-                //鎵嬫満宸茬粡琚敞鍐�
-                if (checkPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                {
+                    })
+                    { IsBackground = true }.Start();
                     //鑾峰彇楠岃瘉鐮�
-                    pm.GetPhoneVerificationCode(phoneNumber,MainPage.Company);
+                    pm.GetPhoneLoginVerCode(phoneNumber);
                 }
             };
         }
@@ -248,7 +248,7 @@
         /// <summary>
         /// 鐧诲綍鎸夐挳鐐瑰嚮浜嬩欢
         /// </summary>
-        void LoadMethod_LoginMethod()
+        void LoadEvent_Login()
         {
             btnLogin.MouseUpEventHandler += (sender, e) =>
             {
@@ -256,9 +256,40 @@
                 {
                     account = etAccount.Text.Trim();
                     password = etPassword.Text.Trim();
+
+                    if (logintType == 0)
+                    {
+                        if (!Regex.IsMatch(account, @"^[1]+\d{9}"))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber),
+                                CloseTime = 3,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            return;
+                        }
+                    }
+                    else
+                    {
+                        if(! Regex.IsMatch(account, "^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$"))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress),
+                                CloseTime = 3,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            return;
+                        }
+                    }
+
                     //鍒涘缓鐧诲綍绾跨▼
-                    var loginThread = LoadMethod_LoginThread();
-                    LoadPage_WaitPage(loginThread);
+                    var loginThread = LoadThread_Login();
+                    waitPage = new Loading();
+                    new WaitPageMothed().LoadPage_WaitPage(loginThread, bodyView, waitPage);
 
                 }
             };
@@ -289,96 +320,37 @@
         }
 
         /// <summary>
-        /// 鍔犺浇绛夊緟鐣岄潰
-        /// </summary>
-        void LoadPage_WaitPage(Thread thread)
-        {
-            waitPage = new Loading();
-            bodyView.AddChidren(waitPage);
-            waitPage.Start(Language.StringByID(InternationalizationString.PleaseWait));
-            var showedTime = DateTime.Now;
-            //濡傛灉绛夊緟浜嬩欢杩囬暱锛屽彲浠ュ厑璁哥敤鎴峰彇娑堝綋鍓嶆搷浣�
-            waitPage.MouseUpEventHandler += (sender, e) =>
-            {
-                if (showedTime.AddSeconds(30) > DateTime.Now)
-                {
-                    waitPage.RemoveFromParent();
-                    waitPage = null;
-                    thread.Abort();
-                }
-            };
-            thread.Start();
-        }
-
-        /// <summary>
         /// 鍔犺浇鐧诲綍绾跨▼
         /// </summary>
-        Thread LoadMethod_LoginThread()
+        Thread LoadThread_Login()
         {
             var loginThread = new Thread(() =>
             {
                 try
                 {
-                    var loginResult = pm.LoginByPassword(account,password,MainPage.Company);
-                    Application.RunOnMainThread(() =>
+                    //鐧诲綍
+                    var loginResult = LoadMethod_Login();
+                    if (loginResult)
                     {
-                        waitPage.RemoveFromParent();
-                        waitPage = null;
-                    });
-                    //鐧诲綍鎴愬姛
-                    if (loginResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        var loginResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(loginResult.ResponseData.ToString());
-                        //璁板綍鐢ㄦ埛鏁版嵁
-                        MainPage.LoginUser = new UserInfo
+                        //鑾峰彇浣忓畢淇℃伅
+                        var getResidencesResult = LoadMethod_GetResidences();
+                        if (getResidencesResult)
                         {
-                            ID = loginResponseData.UserId,
-                            MasterID = loginResponseData.MainUserId,
-                            AccountType = loginResponseData.UserType,
-                            AccountString = account,
-                            Password = password,
-                            LastTime = DateTime.Now,
-                            SIP_Account = loginResponseData.AllVisionRegisterDevUserNameGuid,
-                        };
-                        MainPage.LoginUser.SaveUserInfo();
-                        MainPage.Log("鐧诲綍鎴愬姛銆�");
-                        //璺宠浆椤甸潰----
-                        Application.RunOnMainThread(() =>
-                        {
-                            var personalCenterPage = new UI2.PersonalCenterPage();
-                            personalCenterPage.BackgroundColor = CSS_Color.MainBackgroundColor;
-                            MainPage.BaseView.AddChidren(personalCenterPage);
-                            personalCenterPage.LoadView();
-                        });
+                            /*
+                             * Wait : 鎺ㄩ�佹敞鍐�
+                             */
 
-                        /*
-                         * Wait : 鎺ㄩ�佹敞鍐�
-                         */
-                    }
-                    //鐧诲綍澶辫触
-                    else
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            //鎻愮ず鍘熷洜
-                            var tip = new Tip()
+                            Application.RunOnMainThread(() =>
                             {
-                                Text = loginResult.ErrorInfo,
-                                CloseTime = 3,
-                                Direction = AMPopTipDirection.None
-                            };
-                            tip.Show(bodyView);
-                            //if (loginResult.StateCode == HttpRequesResult.LoginFailed_AccountErorr.ToString())
-                            {
-                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
-                                //}
-                                //else if (loginResult.StateCode == HttpRequesResult.LoginFailed_PasswordErorr.ToString())
-                                //{
-                                btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                                btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
-                            }
-                        });
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+
+                                //璺宠浆椤甸潰----
+                                var ss = new UserPage();
+                                MainPage.BaseView.AddChidren(ss);
+                                ss.LoadPage();
+                            });
+                        }
                     }
                 }
                 catch (Exception ex)
@@ -388,6 +360,122 @@
             })
             { IsBackground = true };
             return loginThread;
+        }
+        /// <summary>
+        /// 璋冪敤鐧诲綍鎺ュ彛鐧诲綍
+        /// </summary>
+        bool LoadMethod_Login()
+        {
+            var result = false;
+            //璋冪敤鐧诲綍鎺ュ彛
+            var loginResult = pm.LoginByPassword(account, password);
+            if (loginResult.StateCode == "SUCCESS")
+            {
+                var loginDataStr = Newtonsoft.Json.Linq.JObject.FromObject(loginResult.ResponseData);
+
+                //璁板綍鐢ㄦ埛鏁版嵁
+                MainPage.LoginUser = new UserInfo
+                {
+                    ID = (int)loginDataStr.GetValue("UserID"),
+                    MasterID = (int)loginDataStr.GetValue("MainUserID"),
+                    AccountType = (int)loginDataStr.GetValue("UserType"),
+                    AccountString = account,
+                    Password = password,
+                    LastTime = DateTime.Now,
+                    SIP_Account = loginDataStr.GetValue("AllVisionRegisterDevUserNameGuid").ToString(),
+                };
+                MainPage.LoginUser.SaveUserInfo();
+                MainPage.Log("鐧诲綍鎴愬姛銆�");
+                result = true;
+            }
+            //鐧诲綍澶辫触
+            else
+            {
+                string tipStr = "Sever erorr";
+                switch (loginResult.StateCode)
+                {
+                    case "USERNAMEORPWDERROR":
+                        tipStr = Language.StringByID(InternationalizationString.LoginFailed_AccountOrPasswordError);
+                        break;
+                    case "Self:Net_Error":
+                        tipStr = Language.StringByID(InternationalizationString.NetworkAnomaly);
+                        break;
+                }
+                //璐﹀彿鎴栬�呭瘑鐮侀敊璇�
+                Application.RunOnMainThread(() =>
+                {
+                    //鎻愮ず鍘熷洜
+                    var tip = new Tip()
+                    {
+                        Text = tipStr,
+                        CloseTime = 3,
+                        Direction = AMPopTipDirection.None
+                    };
+                    tip.Show(bodyView);
+                    btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                    btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                });
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// 鑾峰彇浣忓畢鍒楄〃
+        /// </summary>
+        bool LoadMethod_GetResidences()
+        {
+            var result = false;
+            var responsePack = pm.GetHomePager();
+            if(responsePack.StateCode == "Success")
+            {
+                var dataStr = Newtonsoft.Json.Linq.JObject.FromObject(responsePack.ResponseData);
+                //娌℃湁浣忓畢
+                if (dataStr.GetValue("PageData").ToString() == "[]")
+                {
+
+                }
+                else
+                {
+                    MainPage.LoginUser.HomeLists = new List<RegionInfoRes>();
+                    foreach (var jsonData in dataStr.GetValue("PageData"))
+                    {
+                        var homeJsonStr = Newtonsoft.Json.Linq.JObject.FromObject(jsonData);
+                        var home = new RegionInfoRes()
+                        {
+                            RegionID = homeJsonStr.GetValue("Id").ToString(),
+                            RegionName = homeJsonStr.GetValue("RegionName").ToString(),
+                            Name = homeJsonStr.GetValue("Name").ToString(),
+                        };
+                        MainPage.LoginUser.HomeLists.Add(home);
+                    }
+                    UserConfig.Instance.ChangeResidence(MainPage.LoginUser.HomeLists[0]);
+                    UserConfig.Instance.SaveUserConfig();
+                }
+                result = true;
+            }
+            else
+            {
+                var tipStr = "Server erorr";
+                switch (responsePack.StateCode)
+                {
+                    case "NoLogin":
+                        tipStr = Language.StringByID(InternationalizationString.InvalidLoginCertificate);
+                        break;
+                }
+                Application.RunOnMainThread(() =>
+                {
+                    //鎻愮ず鍘熷洜
+                    var tip = new Tip()
+                    {
+                        Text = tipStr,
+                        CloseTime = 3,
+                        Direction = AMPopTipDirection.None
+                    };
+                    tip.Show(bodyView);
+                });
+
+            }
+            return result;
         }
 
         /// <summary>
@@ -399,13 +487,17 @@
                 //鍥炶皟浜嬩欢
                 Action<string> callBackAction = (callBackPar_Action) =>
                 {
-                    try
+                    Application.RunOnMainThread(() =>
                     {
-                        etAccount.Text = callBackPar_Action;
-                    }
-                    catch (Exception ex) {
-                        MainPage.Log($"login callBackAction : {ex.Message}");
-                    }
+                        try
+                        {
+                            etAccount.Text = callBackPar_Action;
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"login callBackAction : {ex.Message}");
+                        }
+                    });
                 };
 
                 var registerPage = new RegisterPage(callBackAction);
@@ -413,5 +505,33 @@
                 registerPage.ShowDialog();
             };
         }
+
+        /// <summary>
+        /// 蹇樿瀵嗙爜
+        /// </summary>
+        void LoadMethod_ForgetPassword()
+        {
+            btnForgetPassword.MouseUpEventHandler += (sender, e) =>
+            {
+                Action<string> callBackAction = (callBackPar_Action) =>
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        try
+                        {
+                            etAccount.Text = callBackPar_Action;
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"login callBackAction : {ex.Message}");
+                        }
+                    });
+                };
+                var forgetPasswordDialog = new ForgetPasswordPage(callBackAction);
+                forgetPasswordDialog.Show();
+                forgetPasswordDialog.ShowDialog();
+
+            };
+        }
     }
 }
diff --git a/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs b/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs
index 69578ca..2eefeb0 100644
--- a/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs
@@ -19,6 +19,28 @@
             LoadEvent_ChangeTextVisble();
             LoadEvent_GetVerificationCode();
             LoadEvent_Register();
+
+            LoadEvent_TextChange();
+            //var areaCodeList = pm.GetAreaCode();
+        }
+        /// <summary>
+        /// 鍔犺浇鏂囨湰鍙樺寲浜嬩欢
+        /// </summary>
+        void LoadEvent_TextChange()
+        {
+            etAccount.TextChangeEventHandler += (sender, e) =>
+            {
+                Regex reg = new Regex(@"^[1]+\d{9}");
+                var mFalg = reg.Match(etAccount.Text.Trim());
+                if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
+                {
+                    btnGetVerificationCode.IsSelected = false;
+                }
+                else
+                {
+                    btnGetVerificationCode.IsSelected = true;
+                }
+            };
         }
 
         /// <summary>
@@ -29,6 +51,10 @@
             //閫夋嫨鎵嬫満娉ㄥ唽
             btnPhoneLogin.MouseUpEventHandler += (sender, e) =>
             {
+#if DEBUG
+                etAccount.Text = "17576024298";
+#endif
+
                 #region 鍒囨崲閫変腑鎸夐挳
                 btnEmailLogin.TextColor = CSS_Color.PromptingColor1;
                 btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
@@ -70,7 +96,6 @@
             };
         }
 
-
         /// <summary>
         /// 鍔犺浇鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
         /// </summary>
@@ -91,56 +116,61 @@
                     btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
                     //鎵嬫満娉ㄥ唽-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘
-                    if (registerType == 0)
+                    if (etAccount.Text.Trim().Length > 0)
                     {
-                        Regex reg = new Regex("^\\d+$");
-                        var mFalg = reg.Match(etAccount.Text.Trim());
-                        if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
+                        if (registerType == 0)
                         {
-                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
-                            new Tip()
+
+                            Regex reg = new Regex(@"^[1]+\d{9}");
+                            var mFalg = reg.Match(etAccount.Text.Trim());
+                            if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
                             {
-                                CloseTime = 3,
-                                Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber),
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                        else
-                        {
-                            //鏍囪鎵嬫満鍙风爜鏈夋晥
-                            btnGetVerificationCode.IsSelected = true;
-                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
-                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                                new Tip()
+                                {
+                                    CloseTime = 3,
+                                    Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber),
+                                    Direction = AMPopTipDirection.None,
+                                }.Show(bodyView);
+                            }
+                            else
                             {
-                                btnRegister.IsSelected = true;
+                                //鏍囪鎵嬫満鍙风爜鏈夋晥
+                                btnGetVerificationCode.IsSelected = true;
+                                //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
+                                if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                                {
+                                    btnRegister.IsSelected = true;
+                                }
                             }
                         }
-                    }
-                    else if (registerType == 1)
-                    {
-                        //閭娉ㄥ唽-楠岃瘉閭鏄惁姝g‘
-                        var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$");
-                        var mFalg = reg.Match(etAccount.Text.Trim());
-                        if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
+                        else if (registerType == 1)
                         {
-                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
-                            new Tip()
+                            //閭娉ㄥ唽-楠岃瘉閭鏄惁姝g‘
+                            var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$");
+                            Regex.IsMatch(etAccount.Text.Trim(), "^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");
+                            var mFalg = reg.Match(etAccount.Text.Trim());
+                            if (!mFalg.Success)
                             {
-                                CloseTime = 3,
-                                Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress),
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                        else
-                        {
-                            //鏍囪鎵嬫満鍙风爜鏈夋晥
-                            btnGetVerificationCode.IsSelected = true;
-                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
-                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                                new Tip()
+                                {
+                                    CloseTime = 3,
+                                    Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress),
+                                    Direction = AMPopTipDirection.None,
+                                }.Show(bodyView);
+                            }
+                            else
                             {
-                                btnRegister.IsSelected = true;
+                                //鏍囪鎵嬫満鍙风爜鏈夋晥
+                                btnGetVerificationCode.IsSelected = true;
+                                //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
+                                if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                                {
+                                    btnRegister.IsSelected = true;
+                                }
                             }
                         }
                     }
@@ -148,7 +178,8 @@
             };
 
             //瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
-            etPassword.FoucsChanged += (sender, e) => {
+            etPassword.FoucsChanged += (sender, e) =>
+            {
                 if (etPassword.Foucs)
                 {
                     btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -156,23 +187,30 @@
                 }
                 else
                 {
-                    btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
-                    btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
-                    //鏍¢獙瀵嗙爜鏄惁绗﹀悎瑕佹眰
-                    if (etPassword.Text.Trim().Length < 6)
+                    //闇�瑕佽緭鍏�6浣嶄互涓婄殑瀵嗙爜
+                    if (etPassword.Text.Length < 6)
                     {
+                        btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+                        btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
+
                         new Tip()
                         {
                             CloseTime = 3,
                             Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
+                            Text = Language.StringByID(InternationalizationString.PlsRegisterPassword)
                         }.Show(bodyView);
+                    }
+                    else
+                    {
+                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                     }
                 }
             };
 
             //纭瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
-            etRepeatPassword.FoucsChanged += (sender, e) => {
+            etRepeatPassword.FoucsChanged += (sender, e) =>
+            {
                 if (etRepeatPassword.Foucs)
                 {
                     btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -183,31 +221,35 @@
                     btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
                     //鏍¢獙涓ゆ杈撳叆鐨勫瘑鐮佹槸鍚︿竴鑷�
-                    if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim())
+                    if (etPassword.Text.Trim().Length > 5)
                     {
-                        btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                        btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
-                        new Tip()
+                        if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim())
                         {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
-                        }.Show(bodyView);
-                    }
-                    else
-                    {
-                        ValidPassword = true;
-                        //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
-                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                            btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                            new Tip()
+                            {
+                                CloseTime = 3,
+                                Direction = AMPopTipDirection.None,
+                                Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword)
+                            }.Show(bodyView);
+                        }
+                        else
                         {
-                            btnRegister.IsSelected = true;
+                            ValidPassword = true;
+                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
+                            if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                            {
+                                btnRegister.IsSelected = true;
+                            }
                         }
                     }
                 }
             };
 
             //楠岃瘉鐮佹枃鏈鐒︾偣鍙樺寲浜嬩欢
-            etVerificationCode.FoucsChanged += (sender, e) => {
+            etVerificationCode.FoucsChanged += (sender, e) =>
+            {
                 if (etVerificationCode.Foucs)
                 {
                     btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor;
@@ -217,10 +259,10 @@
                 {
                     btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1);
-                    if (etVerificationCode.Text.Length > 4)
+                    if (etVerificationCode.Text.Length > 1)
                     {
                         //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽
-                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
+                        if (btnGetVerificationCode.IsSelected && ValidPassword)
                         {
                             btnRegister.IsSelected = true;
                         }
@@ -235,12 +277,14 @@
         void LoadEvent_ChangeTextVisble()
         {
             //瀵嗙爜鏂囨湰鍙鎬у彉鍖�
-            btnVisiblePassword.MouseUpEventHandler += (sender, e) => {
+            btnVisiblePassword.MouseUpEventHandler += (sender, e) =>
+            {
                 btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected;
                 etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected;
             };
             //閲嶅瀵嗙爜鏂囨湰鍙鎬у彉鍖�
-            btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => {
+            btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) =>
+            {
                 btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected;
                 etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected;
             };
@@ -251,46 +295,58 @@
         /// </summary>
         void LoadEvent_GetVerificationCode()
         {
-            btnGetVerificationCode.MouseUpEventHandler += (sender, e) => {
+            btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
+            {
                 if (btnGetVerificationCode.IsSelected)
                 {
-                    //鐭俊鍙戦�侀棿闅�60s
-                    btnGetVerificationCode.IsSelected = false;
-                    int time = 60;
-                    new Thread(() =>
+                    //鑾峰彇楠岃瘉鐮�
+                    var result = pm.GetPhoneRegisterVerCode(etAccount.Text.Trim());
+                    if (result.StateCode == "Success")
                     {
-                        while (time == 0)
+                        //鐭俊鍙戦�侀棿闅�60s
+                        btnGetVerificationCode.IsSelected = false;
+                        int time = 60;
+                        new Thread(() =>
                         {
-                            time--;
+                            while (time > 0)
+                            {
+                                time--;
+                                Application.RunOnMainThread(() =>
+                                {
+                                    btnGetVerificationCode.Text = time.ToString() + "s";
+                                });
+                                Thread.Sleep(1000);
+                            }
                             Application.RunOnMainThread(() =>
                             {
-                                btnGetVerificationCode.Text = time.ToString() + "s";
+                                //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
+                                btnGetVerificationCode.IsSelected = true;
+                                btnGetVerificationCode.TextID = InternationalizationString.GetVerificationCode;
                             });
-                            Thread.Sleep(1000);
-                        }
-                        Application.RunOnMainThread(() =>
-                        {
-                            //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
-                            btnGetVerificationCode.IsSelected = true;
-                        });
-                    })
-                    { IsBackground = true }.Start();
-                    //妫�鏌ユ墜鏈烘槸鍚﹀凡缁忚娉ㄥ唽
-                    var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim());
-                    //鎵嬫満鏈娉ㄥ唽
-                    if (checkPhoneResult.StateCode != HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //鑾峰彇楠岃瘉鐮�
-                        pm.GetPhoneVerificationCode(etAccount.Text.Trim(), MainPage.Company);
+                        })
+                        { IsBackground = true }.Start();
                     }
-                    else
+                    else 
                     {
-                        //鎻愮ず鎵嬫満鍙风爜宸茬粡娉ㄥ唽
+                        string tipString = "Server error";
+                        switch (result.StateCode)
+                        {
+                            case "Exist":
+                                tipString = Language.StringByID(InternationalizationString.AccountAlreadyExists);
+                                break;
+                            case "SendFail":
+                                tipString = Language.StringByID(InternationalizationString.FailedToSendVerificationCode);
+                                break;
+                            case "Self:Net_Error":
+                                tipString = Language.StringByID(InternationalizationString.NetworkAnomaly);
+                                break;
+                        }
+
                         new Tip()
                         {
                             CloseTime = 3,
                             Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.AccountAlreadyExists)
+                            Text = tipString
                         }.Show(bodyView);
                     }
                 }
@@ -304,84 +360,79 @@
         {
             btnRegister.MouseUpEventHandler += (sender, e) =>
             {
-                //鎵嬫満娉ㄥ唽
-                if (registerType == 0)
+                if (btnRegister.IsSelected)
                 {
-                    //鏍¢獙楠岃瘉鐮�
-                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //娉ㄥ唽璐﹀彿
-                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
-                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                        {
-                            //娉ㄥ唽鎴愬姛
-                            //鎵ц鍥炶皟浜嬩欢
-                            callbackAction?.Invoke(etAccount.Text.Trim());
-                        }
-                        else
-                        {
-                            //娉ㄥ唽澶辫触
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Text = registerPhoneResult.ErrorInfo,
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                    }
-                    else
-                    {
-                        //楠岃瘉鐮佹牎楠屽け璐�
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
-                        }.Show(bodyView);
-                    }
-                }
-                else if(registerType == 1)
-                {
-                    //閭娉ㄥ唽
-                    //鏍¢獙楠岃瘉鐮�
-                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //娉ㄥ唽璐﹀彿
-                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
-                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                        {
-                            //娉ㄥ唽鎴愬姛
-                            //鎵ц鍥炶皟浜嬩欢
-                            callbackAction?.Invoke(etAccount.Text.Trim());
-                        }
-                        else
-                        {
-                            //娉ㄥ唽澶辫触
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Text = registerPhoneResult.ErrorInfo,
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                    }
-                    else
-                    {
-                        //楠岃瘉鐮佹牎楠屽け璐�
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
-                        }.Show(bodyView);
-                    }
+                    waitPage = new Loading();
+                    new WaitPageMothed().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage);
                 }
             };
         }
 
+        /// <summary>
+        /// 鍔犺浇娉ㄥ唽鏂规硶
+        /// </summary>
+        Thread LoadMethod_RegisterThread()
+        {
+            string account = etAccount.Text.Trim();
+            string password = etPassword.Text.Trim();
+            string entryPassword = etRepeatPassword.Text.Trim();
+            string verCode = etVerificationCode.Text.Trim();
+            return new Thread(() =>
+             {
+                 try
+                 {
+                     //鏍¢獙楠岃瘉鐮�/娉ㄥ唽璐﹀彿
+                     var validateSmsResult = pm.ValidataCodeAndRegister(account, password, entryPassword, verCode, 86);
+                     //楠岃瘉鐮佹牎楠屾垚鍔�
+                     if (validateSmsResult.StateCode == "Success")
+                     {
+                         //娉ㄥ唽鎴愬姛
+                         //鎵ц鍥炶皟浜嬩欢
+                         this.Close();
+                         callbackAction?.Invoke(account);
+                     }
+                     else//娉ㄥ唽澶辫触
+                     {
+                         string erorrInfo = "";
+                         switch (validateSmsResult.StateCode)
+                         {
+                             case "Exist":
+                                 erorrInfo = Language.StringByID(InternationalizationString.AccountAlreadyExists);
+                                 break;
+                             case "PwdNoConfirm":
+                                 erorrInfo = Language.StringByID(InternationalizationString.IncorrectRepeatPassword);
+                                 break;
+                             case "ValidCodeAndPhoneNoEqual":
+                                 erorrInfo = Language.StringByID(InternationalizationString.VerificationCodeWrong);
+                                 break;
+                             default:
+                                 erorrInfo = Language.StringByID(InternationalizationString.RegistrationFailedPleaseTryAgain);
+                                 break;
+                         }
+                         Application.RunOnMainThread(() =>
+                         {
+                             new Tip()
+                             {
+                                 CloseTime = 3,
+                                 Direction = AMPopTipDirection.None,
+                                 Text = erorrInfo,
+                             }.Show(bodyView);
+                         });
+                     }
+                 }
+                 catch (Exception ex)
+                 {
+                     MainPage.Log("Exception 1 : " + ex.Message);
+                 }
+                 finally
+                 {
+                     Application.RunOnMainThread(() =>
+                     {
+                         waitPage.Hide();
+                     });
+                 }
+             });
+        }
+
     }
-}
+}
\ No newline at end of file
diff --git a/HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs b/HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs
index a6c11be..872412d 100644
--- a/HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs
+++ b/HDL_ON/UI/UI1-Login/UI/ForgetPasswordPage.cs
@@ -9,6 +9,10 @@
     {
         #region 鎺т欢鍒楄〃
         /// <summary>
+        /// 绛夊緟鎻愮ず
+        /// </summary>
+        Loading waitPage;
+        /// <summary>
         /// 褰撳墠鐣岄潰
         /// </summary>
         FrameLayout bodyView;
@@ -16,10 +20,6 @@
         /// 閫夋嫨鎵嬫満鐧诲綍鎸夐挳
         /// </summary>
         Button btnPhoneLogin;
-        /// <summary>
-        /// 鐧诲綍绫诲瀷閫変腑鎻愮ず绾�
-        /// </summary>
-        Button btnChooseBottomLine;
         /// <summary>
         /// 閫夋嫨閭鐧诲綍鎸夐挳
         /// </summary>
@@ -124,7 +124,7 @@
         /// <summary>
         /// 淇敼鎸夐挳
         /// </summary>
-        Button btnRegister;
+        Button btnReset;
 
         #endregion
 
@@ -135,14 +135,6 @@
         /// 1:閭
         /// </summary>
         int accountType = 0;
-        /// <summary>
-        /// 鎵嬫満鍙风爜鏄惁鏈夋晥
-        /// </summary>
-        bool ValidMobileNumber = false;
-        /// <summary>
-        /// 瀵嗙爜鏄惁鏈夋晥
-        /// </summary>
-        bool ValidPassword = false;
         /// <summary>
         /// 鏈嶅姟鍣ㄨ姹傚璞�
         /// </summary>
@@ -158,8 +150,9 @@
         /// </summary>
         int registerType;
         #endregion
-        public ForgetPasswordPage()
+        public ForgetPasswordPage(Action<string> action)
         {
+            callbackAction = action;
             bodyView = new FrameLayout()
             {
                 BackgroundColor = CSS_Color.BackgroundColor,
@@ -171,7 +164,7 @@
 
         public void ShowDialog()
         {
-            new PublicAssmebly().LoadTopView(this, bodyView, Language.StringByID(InternationalizationString.Register));
+            new PublicAssmebly().LoadTopView(this, bodyView, Language.StringByID(InternationalizationString.ForgetPassword));
 
             #region 淇敼鏂瑰紡閫夋嫨
             btnPhoneLogin = new Button()
@@ -186,18 +179,6 @@
                 TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
             };
             bodyView.AddChidren(btnPhoneLogin);
-
-            btnChooseBottomLine = new Button()
-            {
-                Width = Application.GetRealWidth(46),
-                Height = Application.GetRealHeight(4),
-                X = btnPhoneLogin.X + Application.GetRealWidth(27),
-                Y = btnPhoneLogin.Bottom,
-                Radius = (uint)Application.GetRealHeight(2),
-                BorderWidth = 0,
-                BackgroundColor = CSS_Color.MainColor,
-            };
-            bodyView.AddChidren(btnChooseBottomLine);
 
             btnEmailLogin = new Button()
             {
@@ -236,16 +217,6 @@
             {
                 accountView.AddChidren(btnGlobalRoaming);
             }
-
-            //btnDividingLineVertical_AccountView = new Button()
-            //{
-            //    X = Application.GetRealWidth(65),
-            //    Gravity = Gravity.CenterVertical,
-            //    Width = 1,
-            //    Height = Application.GetRealHeight(20),
-            //    BackgroundColor = CSS_Color.DividingLineColor,
-            //};
-            //accountView.AddChidren(btnDividingLineVertical_AccountView);
 
             etAccount = new EditText()
             {
@@ -417,7 +388,7 @@
             repeatPasswordView = new FrameLayout()
             {
                 X = Application.GetRealWidth(28),
-                Y = Application.GetRealHeight(279),
+                Y = Application.GetRealHeight(335),
                 Width = Application.GetRealWidth(335),
                 Height = Application.GetRealHeight(44),
             };
@@ -481,7 +452,7 @@
 
             #endregion
 
-            btnRegister = new Button()
+            btnReset = new Button()
             {
                 Gravity = Gravity.CenterHorizontal,
                 Y = Application.GetRealHeight(421),
@@ -490,14 +461,14 @@
                 Radius = (uint)Application.GetRealHeight(22),
                 SelectedBackgroundColor = CSS_Color.MainColor,
                 BackgroundColor = CSS_Color.PromptingColor1,
-                TextID = InternationalizationString.Register,
+                TextID = InternationalizationString.ConfirmReset,
                 TextSize = CSS_FontSize.SubheadingFontSize,
                 TextColor = CSS_Color.MainBackgroundColor,
                 TextAlignment = TextAlignment.Center,
             };
-            bodyView.AddChidren(btnRegister);
+            bodyView.AddChidren(btnReset);
 
-            //LoadEventList();
+            LoadEventList();
         }
     }
 }
\ No newline at end of file
diff --git a/HDL_ON/UI/UI1-Login/UI/LoginPage.cs b/HDL_ON/UI/UI1-Login/UI/LoginPage.cs
index 81e2830..4666e47 100644
--- a/HDL_ON/UI/UI1-Login/UI/LoginPage.cs
+++ b/HDL_ON/UI/UI1-Login/UI/LoginPage.cs
@@ -171,6 +171,7 @@
 #if DEBUG
                 etAccount.Text = "464027401@qq.com";
                 etPassword.Text = "qqqqqq";
+                btnLogin.IsSelected = true;
 #endif
             };
 
diff --git a/HDL_ON/UI/UI1-Login/UI/RegisterPage.cs b/HDL_ON/UI/UI1-Login/UI/RegisterPage.cs
index 33b35ea..643c66c 100644
--- a/HDL_ON/UI/UI1-Login/UI/RegisterPage.cs
+++ b/HDL_ON/UI/UI1-Login/UI/RegisterPage.cs
@@ -9,6 +9,10 @@
     {
         #region 鎺т欢鍒楄〃
         /// <summary>
+        /// 绛夊緟鎻愮ず
+        /// </summary>
+        Loading waitPage;
+        /// <summary>
         /// 褰撳墠鐣岄潰
         /// </summary>
         FrameLayout bodyView;
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs
index 9924a8e..da05712 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/BLL/PersonalCenterPageBLL.cs
@@ -1,7 +1,101 @@
 锘縰sing System;
+using Shared;
+
 namespace HDL_ON.UI2
 {
     public partial class PersonalCenterPage
     {
+        /// <summary>
+        /// 鍔犺浇浜嬩欢鍒楄〃
+        /// </summary>
+        void LoadEventList()
+        {
+            LoadEvent_SwitchHome();
+        }
+
+        /// <summary>
+        /// 浣忓畢鍒楄〃鐐瑰嚮浜嬩欢
+        /// </summary>
+        void LoadEvent_SwitchHome()
+        {
+            btnCurResidenceName.MouseUpEventHandler += (sender, e) => {
+                var dialog = new Dialog();
+                var dialogBody = new FrameLayout();
+                dialog.AddChidren(dialogBody);
+                dialogBody.MouseUpEventHandler += (sender1, e1) => {
+                    dialog.Close();
+                };
+
+                var dispalyView = new FrameLayout()
+                {
+                    X = Application.GetRealWidth(22),
+                    Y = Application.GetRealHeight(268),
+                    Width = Application.GetRealWidth(160),
+                    Height = Application.GetRealHeight(190),
+                    BackgroundImagePath = "PersonalCenter/HomeListbg.png",
+                };
+                dialogBody.AddChidren(dispalyView);
+
+                var contentView = new VerticalScrolViewLayout() {
+                    X = Application.GetRealWidth(8),
+                    Y = Application.GetRealHeight(16),
+                    Width = Application.GetRealWidth(144),
+                    Height = Application.GetRealHeight(45*4),
+                };
+                dispalyView.AddChidren(contentView);
+
+          
+                foreach(var home in MainPage.LoginUser.HomeLists)
+                {
+                    var btnHomeName = new Button()
+                    {
+                        Gravity = Gravity.CenterHorizontal,
+                        Width = Application.GetRealWidth(112),
+                        Height = Application.GetRealHeight(44),
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = UI.CSS.CSS_Color.MainBackgroundColor,
+                        SelectedTextColor = UI.CSS.CSS_Color.MainColor,
+                        Text = home.Name,
+                        TextSize = UI.CSS.CSS_FontSize.SubheadingFontSize,
+                        IsSelected = UserConfig.Instance.CurrentRegion.RegionID == home.RegionID,
+                        IsMoreLines = true,
+                        Tag = home
+                    };
+                    contentView.AddChidren(btnHomeName);
+                    var btnContentLine = new Button()
+                    {
+                        Gravity = Gravity.CenterHorizontal,
+                        Width = Application.GetRealWidth(112),
+                        Height = Application.GetRealHeight(1),
+                        BackgroundColor = UI.CSS.CSS_Color.SecondLevelTitleColor
+                    };
+                    contentView.AddChidren(btnContentLine);
+
+                    btnHomeName.MouseUpEventHandler += (senderH, en) =>
+                    {
+                        var regionInfo = btnHomeName.Tag as RegionInfoRes;
+                        //LoadMothed_SwitchHome(regionInfo);
+
+                        UserConfig.Instance.CurrentRegion = regionInfo;
+                        btnCurResidenceName.Text = regionInfo.Name;
+                        UserConfig.Instance.SaveUserConfig();
+                    };
+                }
+
+                dialog.Show();
+            };
+        }
+
+        /// <summary>
+        /// 鍒囨崲浣忓畢
+        /// </summary>
+        /// <param name="regionInfo"></param>
+        void LoadMothed_SwitchHome(RegionInfoRes regionInfo)
+        {
+            UserConfig.Instance.CurrentRegion = regionInfo;
+            btnCurResidenceName.Text = regionInfo.Name;
+            UserConfig.Instance.SaveUserConfig();
+        }
+
     }
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs
index 436605c..26026db 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalCenterPage.cs
@@ -177,9 +177,9 @@
             #region 涓汉淇℃伅
             topbg = new FrameLayout()
             {
-                Y = Application.GetRealHeight(-10),
-                Height = Application.GetRealHeight(150),
-                Radius = 12,
+                Y = Application.GetRealHeight(-20),
+                Height = Application.GetRealHeight(160),
+                Radius = 16,
                 BorderColor = 0x00FFFFFF,
                 BorderWidth = 0,
                 BackgroundColor = CSS_Color.MainColor,
@@ -206,10 +206,13 @@
                 TextAlignment = TextAlignment.Center,
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextSize = CSS_FontSize.SubheadingFontSize,
-                Text = MainPage.LoginUser.UserName,
+                Text ="涓嶆効鎰忛�忛湶濮撳悕鐨勭敤鎴�"
             };
             personalInfoView.AddChidren(btnUserName);
-
+            if (!string.IsNullOrEmpty(MainPage.LoginUser.UserName))
+            {
+                btnUserName.Text = MainPage.LoginUser.UserName;
+            }
             btnEmail = new Button()
             {
                 Y = btnUserName.Bottom,
@@ -279,12 +282,12 @@
             btnCurResidenceName = new Button() {
                 X = btnResidenceDownIcon.Right+ Application.GetRealWidth(1),
                 Y = Application.GetRealHeight(10),
-                Width = Application.GetRealWidth(120),
+                Width = Application.GetRealWidth(240),
                 Height = Application.GetRealHeight(45),
                 TextAlignment = TextAlignment.CenterLeft,
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
-                Text = UserConfig.Instance.CurrentRegion.RegionName,
+                Text = UserConfig.Instance.CurrentRegion.Name,
             };
             residenceInfoView.AddChidren(btnCurResidenceName);
 
@@ -595,9 +598,6 @@
                 residenceAuxiliaryFunctionView.AddChidren(residenceAuxiliaryFunctionText);
                 #endregion
 
-                
-
-
             }
             #endregion
 
@@ -720,6 +720,8 @@
 
             #endregion
 
+
+            LoadEventList();
         }
     }
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalDataPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalDataPage.cs
new file mode 100644
index 0000000..435af8b
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/UI/PersonalDataPage.cs
@@ -0,0 +1,39 @@
+锘縰sing System;
+using HDL_ON.UI;
+using Shared;
+
+namespace HDL_ON.UI2
+{
+    public class PersonalDataPage : FrameLayout
+    {
+        #region 鎺т欢鍒楄〃
+        /// <summary>
+        /// 褰撳墠
+        /// </summary>
+        FrameLayout bodyView;
+        /// <summary>
+        /// 澶村儚鍖哄煙
+        /// </summary>
+        FrameLayout headPortraitView;
+        #endregion
+
+        public PersonalDataPage()
+        {
+            bodyView = this;
+        }
+
+        public void LoadView()
+        {
+            new PublicAssmebly().LoadTopView(bodyView, Language.StringByID(InternationalizationString.PersonalCenter));
+
+            headPortraitView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(124)
+            };
+
+        }
+
+
+    }
+}
diff --git a/HDL_ON/UI/UI2/UserPage.cs b/HDL_ON/UI/UI2/UserPage.cs
index 21695fc..c15a939 100644
--- a/HDL_ON/UI/UI2/UserPage.cs
+++ b/HDL_ON/UI/UI2/UserPage.cs
@@ -3,14 +3,14 @@
 
 namespace HDL_ON.UI
 {
-    public class UserPage : FrameLayout
+    public partial class UserPage : PageLayout
     {
 
         #region 鎺т欢鍒楄〃
         /// <summary>
         /// 褰撳墠鍖哄煙
         /// </summary>
-        FrameLayout bodyView;
+        static PageLayout bodyView;
         /// <summary>
         /// 鍐呭鍖哄煙
         /// </summary>
@@ -18,7 +18,7 @@
         /// <summary>
         /// 瀵艰埅鏍忓尯鍩�
         /// </summary>
-        FrameLayout NavigationView;
+        FrameLayout navigationView;
         /// <summary>
         /// 瀵艰埅鏍忕偣鍑诲尯鍩�
         /// </summary>
@@ -75,40 +75,48 @@
         /// <summary>
         /// 閫変腑鍖哄煙
         /// </summary>
-        FrameLayout NavigationSelectionView;
+        FrameLayout navigationSelectionView;
+        /// <summary>
+        /// 閫変腑鍖哄煙鍥炬爣
+        /// </summary>
+        Button btnNavigationSelectionIcon;
         #endregion
         #endregion
 
-        public UserPage()
+        public void LoadPage()
         {
             bodyView = this;
             ContextView = new FrameLayout()
             {
                 Height = Application.GetRealHeight(618),
+                BackgroundColor = CSS.CSS_Color.BackgroundColor
             };
             bodyView.AddChidren(ContextView);
 
-            NavigationView = new FrameLayout()
+            navigationView = new FrameLayout()
             {
                 Y = Application.GetRealHeight(607),
                 Height = Application.GetRealHeight(60),
             };
-            bodyView.AddChidren(NavigationView);
+            bodyView.AddChidren(navigationView);
 
+            InitBottomView();
+
+            LoadEventList();
         }
 
         /// <summary>
-        /// 閫変腑涓汉涓績
+        /// 鍒濆鍖栧簳閮ㄥ尯鍩�
         /// </summary>
-        public void ChoosePersonalCenter()
-        {
+        void InitBottomView()
+        { 
             NavigationSubView = new FrameLayout()
             {
                 Y = Application.GetRealHeight(11),
                 Height = Application.GetRealHeight(49),
                 BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
             };
-            NavigationView.AddChidren(NavigationSubView);
+            navigationView.AddChidren(NavigationSubView);
 
             #region 鏀惰棌鍖哄煙
             collectionView = new FrameLayout() {
@@ -167,7 +175,7 @@
             classificationView.AddChidren(btnClassificationText);
             #endregion
 
-            #region 鍒嗙被鍖哄煙
+            #region 鏅鸿兘鍖哄煙
             intellectualizationView = new FrameLayout()
             {
                 Width = Application.GetRealWidth(94),
@@ -191,7 +199,7 @@
                 TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                 SelectedTextColor = CSS.CSS_Color.MainColor,
                 TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
-                TextID = InternationalizationString.Classification,
+                TextID = InternationalizationString.Intellectualization,
                 TextAlignment = TextAlignment.Center,
             };
             intellectualizationView.AddChidren(btnIntellectualizationText);
@@ -224,37 +232,262 @@
                 TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                 SelectedTextColor = CSS.CSS_Color.MainColor,
                 TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
-                TextID = InternationalizationString.Classification,
+                TextID = InternationalizationString.Personal,
                 TextAlignment = TextAlignment.Center,
             };
             personalCenterView.AddChidren(btnPersonalCenterText);
             #endregion
 
 
-            btnPersonalCenterIcon.RemoveFromParent();
-            btnPersonalCenterText.IsSelected = true;
-
-
-            NavigationSelectionView = new FrameLayout()
+            navigationSelectionView = new FrameLayout()
             {
-                X = personalCenterView.X,
+                X = Application.GetRealWidth(0),
                 Width = Application.GetRealWidth(94),
                 Height = Application.GetRealHeight(40),
                 BackgroundImagePath = "Navigation/UserPageNavbg.png",
             };
-            NavigationView.AddChidren(NavigationSelectionView);
-            btnPersonalCenterIcon.IsSelected = true;
-            btnPersonalCenterIcon.Y = Application.GetRealHeight(6);
+            navigationView.AddChidren(navigationSelectionView);
 
-            NavigationSelectionView.AddChidren(btnPersonalCenterIcon);
+            btnNavigationSelectionIcon = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(6),
+                Width = Application.GetMinRealAverage(22),
+                Height = Application.GetMinRealAverage(22),
+                UnSelectedImagePath = "Navigation/CollectionIconOn.png",
+            };
+            navigationSelectionView.AddChidren(btnNavigationSelectionIcon);
+        }
 
+
+        /// <summary>
+        /// 鍒囨崲鍒版敹钘忕晫闈�
+        /// </summary>
+        void ChooseCollection()
+        {
+            btnCollectionText.IsSelected = false;
+            btnClassificationText.IsSelected = false;
+            btnIntellectualizationText.IsSelected = false;
+            btnPersonalCenterText.IsSelected = false;
+            #region 绉诲姩鍔ㄧ敾
+            var distance = navigationSelectionView.X - collectionView.X;
+            int total = 10;
+            int sleepTime = 300;
+            if (distance > 200)
+            {
+                sleepTime = 600;
+                total = 30;
+            }
+            else if (distance > 100)
+            {
+                sleepTime = 450;
+                total = 20;
+            }
+            distance /= total;
+            new System.Threading.Thread(() => {
+                int index = 0;
+                while (index < total+1) {
+                    Application.RunOnMainThread(() =>
+                    {
+                        //绉诲姩
+                        if (index < total)
+                        {
+                            navigationSelectionView.X -= distance;
+                        }
+                        else
+                        {
+                            navigationSelectionView.X = collectionView.X;
+                            btnCollectionText.IsSelected = true;
+                        }
+                        if (index == (total/2))
+                        {
+                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/CollectionIconOn.png";
+                        }
+                        //鏃嬭浆
+                        btnNavigationSelectionIcon.SetRotation(-36f * index);
+                    });
+                    System.Threading.Thread.Sleep(sleepTime / total);
+                    index++;
+                }
+            }) { IsBackground = true }.Start();
+            #endregion
+        }
+        /// <summary>
+        /// 鍒囨崲鍒板垎绫荤晫闈�
+        /// </summary>
+        void ChooseClassification()
+        {
+            btnCollectionText.IsSelected = false;
+            btnClassificationText.IsSelected = false;
+            btnIntellectualizationText.IsSelected = false;
+            btnPersonalCenterText.IsSelected = false;
+            #region 绉诲姩鍔ㄧ敾
+            var distance = navigationSelectionView.X - classificationView.X;
+            int total = 10;
+            int sleepTime = 300;
+            if (distance > 100 || distance < -100)
+            {
+                sleepTime = 450;
+                total = 20;
+            }
+            distance /= total;
+            new System.Threading.Thread(() =>
+            {
+                int index = 0;
+                while (index < total+1)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        //绉诲姩
+                        if (index < total)
+                        {
+                            navigationSelectionView.X -= distance;
+                        }
+                        else
+                        {
+                            navigationSelectionView.X = classificationView.X;
+                            btnClassificationText.IsSelected = true;
+                        }
+                        if (index == (total / 2 ))
+                        {
+                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/ClassificationIconOn.png";
+                        }
+                        //鏃嬭浆
+                        if (distance < 0)
+                        {
+                            btnNavigationSelectionIcon.SetRotation(36f * index);
+                        }
+                        else
+                        {
+                            btnNavigationSelectionIcon.SetRotation(-36f * index);
+                        }
+                    });
+                    System.Threading.Thread.Sleep(sleepTime / total);
+                    index++;
+                }
+            })
+            { IsBackground = true }.Start();
+            #endregion
+
+
+
+        }
+        /// <summary>
+        /// 鍒囨崲鍒版櫤鑳界晫闈�
+        /// </summary>
+        void ChooseIntellectualization()
+        {
+            btnCollectionText.IsSelected = false;
+            btnClassificationText.IsSelected = false;
+            btnIntellectualizationText.IsSelected = false;
+            btnPersonalCenterText.IsSelected = false;
+            #region 绉诲姩鍔ㄧ敾
+            var distance = navigationSelectionView.X - intellectualizationView.X;
+            int total = 10;
+            int sleepTime = 300;
+            if (distance > 100 || distance < -100)
+            {
+                sleepTime = 450;
+                total = 20;
+            }
+            distance /= total;
+            new System.Threading.Thread(() => {
+                int index = 0;
+                while (index < total+1)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        //绉诲姩
+                        if (index < total)
+                        {
+                            navigationSelectionView.X -= distance;
+                        }
+                        else
+                        {
+                            navigationSelectionView.X = intellectualizationView.X;
+                            btnIntellectualizationText.IsSelected = true;
+                        }
+                        if (index == (total / 2 ))
+                        {
+                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/IntellectualizationIconOn.png";
+                        }
+                        //鏃嬭浆
+                        if (distance < 0)
+                        {
+                            btnNavigationSelectionIcon.SetRotation(36f * index);
+                        }
+                        else
+                        {
+                            btnNavigationSelectionIcon.SetRotation(-36f * index);
+                        }
+                    });
+                    System.Threading.Thread.Sleep(sleepTime / total);
+                    index++;
+                }
+            })
+            { IsBackground = true }.Start();
+            #endregion
+        }
+
+        /// <summary>
+        /// 鍒囨崲鍒颁釜浜轰腑蹇冪晫闈�
+        /// </summary>
+        void ChoosePersonalCenter()
+        {
+            btnCollectionText.IsSelected = false;
+            btnClassificationText.IsSelected = false;
+            btnIntellectualizationText.IsSelected = false;
+            btnPersonalCenterText.IsSelected = false;
+            #region 绉诲姩鍔ㄧ敾
+            var distance = navigationSelectionView.X - personalCenterView.X;
+            int total = 10;
+            int sleepTime = 300;
+            if (distance < -200)
+            {
+                sleepTime = 600;
+                total = 30;
+            }
+            else if (distance < -100)
+            {
+                sleepTime = 450;
+                total = 20;
+            }
+            distance /= total;
+            new System.Threading.Thread(() => {
+                int index = 0;
+                while (index < total+1)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        //绉诲姩
+                        if (index < total)
+                        {
+                            navigationSelectionView.X -= distance;
+                        }
+                        else
+                        {
+                            navigationSelectionView.X = personalCenterView.X;
+                            btnPersonalCenterText.IsSelected = true;
+                        }
+                        if (index == (total / 2 ))
+                        {
+                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/PersonalCenterIconOn.png";
+                        }
+                        //鏃嬭浆
+                        btnNavigationSelectionIcon.SetRotation(36f * index);
+                    });
+                    System.Threading.Thread.Sleep(sleepTime / total);
+                    index++;
+                }
+            })
+            { IsBackground = true }.Start();
+            #endregion
 
 
             var personalCenterPage = new UI2.PersonalCenterPage();
             ContextView.AddChidren(personalCenterPage);
             personalCenterPage.LoadView();
         }
-
 
     }
 }
diff --git a/HDL_ON/UI/UI2/UserPageBLL.cs b/HDL_ON/UI/UI2/UserPageBLL.cs
new file mode 100644
index 0000000..a342131
--- /dev/null
+++ b/HDL_ON/UI/UI2/UserPageBLL.cs
@@ -0,0 +1,52 @@
+锘縰sing System;
+using Shared;
+
+namespace HDL_ON.UI
+{
+    public partial class UserPage
+    {
+        /// <summary>
+        /// 鍔犺浇浜嬩欢
+        /// </summary>
+        void LoadEventList()
+        {
+            LoadEvent_NavigationSelection();
+        }
+        /// <summary>
+        /// 鍔犺浇瀵艰埅鏍忕偣鍑讳簨浠�
+        /// </summary>
+        void LoadEvent_NavigationSelection()
+        {
+            EventHandler<MouseEventArgs> collectionEvent = (sender, e) => {
+                ChooseCollection();
+            };
+            collectionView.MouseUpEventHandler = collectionEvent;
+            btnCollectionIcon.MouseUpEventHandler = collectionEvent;
+            btnCollectionText.MouseUpEventHandler = collectionEvent;
+
+            EventHandler<MouseEventArgs> ClassificationEvent = (sender, e) => {
+                ChooseClassification();
+            };
+            classificationView.MouseUpEventHandler = ClassificationEvent;
+            btnClassificationIcon.MouseUpEventHandler = ClassificationEvent;
+            btnClassificationText.MouseUpEventHandler = ClassificationEvent;
+
+            EventHandler<MouseEventArgs> IntellectualizationEvent = (sender, e) => {
+                ChooseIntellectualization();
+            };
+            intellectualizationView.MouseUpEventHandler = IntellectualizationEvent;
+            btnIntellectualizationIcon.MouseUpEventHandler = IntellectualizationEvent;
+            btnIntellectualizationText.MouseUpEventHandler = IntellectualizationEvent;
+
+
+            EventHandler<MouseEventArgs> PersonalCenterEvent = (sender, e) => {
+                ChoosePersonalCenter();
+            };
+            personalCenterView.MouseUpEventHandler = PersonalCenterEvent;
+            btnPersonalCenterIcon.MouseUpEventHandler = PersonalCenterEvent;
+            btnPersonalCenterText.MouseUpEventHandler = PersonalCenterEvent;
+        }
+
+
+    }
+}
diff --git a/Shared.IOS.TBL/ApiDefinition.cs b/Shared.IOS.TBL/ApiDefinition.cs
new file mode 100644
index 0000000..8bc8567
--- /dev/null
+++ b/Shared.IOS.TBL/ApiDefinition.cs
@@ -0,0 +1,1753 @@
+锘縰sing CoreGraphics;
+using Foundation;
+using ObjCRuntime;
+using UIKit;
+using LocalAuthentication;
+using System;
+
+namespace Shared.IOS.TBL
+{
+    
+
+
+
+
+
+
+
+
+
+
+    //******************************************HDLArcSeekbar******************************************//
+    // @protocol HDLArcSeekbarProgressChangedDelegate <NSObject>
+    [Protocol, Model(AutoGeneratedName = true)]
+    [BaseType(typeof(NSObject))]
+    interface HDLArcSeekbarProgressChangedDelegate
+    {
+        // @required -(void)onStartTrackingTouch;
+        [Abstract]
+        [Export("onStartTrackingTouch")]
+        void OnStartTrackingTouch();
+
+        // @required -(void)onProgressChanged:(int)mProgress;
+        [Abstract]
+        [Export("onProgressChanged:")]
+        void OnProgressChanged(int mProgress);
+
+        // @required -(void)onStopTrackingTouch:(int)mProgress;
+        [Abstract]
+        [Export("onStopTrackingTouch:")]
+        void OnStopTrackingTouch(int mProgress);
+    }
+
+    // @interface HDLArcSeekbar : UIControl
+    [BaseType(typeof(UIControl))]
+    interface HDLArcSeekbar
+    {
+        // @property (assign, nonatomic) BOOL isClickable;
+        [Export("isClickable")]
+        bool IsClickable { get; set; }
+
+        // @property (nonatomic, strong) UIColor * mArcBackBarColor;
+        [Export("mArcBackBarColor", ArgumentSemantic.Strong)]
+        UIColor MArcBackBarColor { get; set; }
+
+        // @property (nonatomic, strong) UIColor * mThumbColor;
+        [Export("mThumbColor", ArgumentSemantic.Strong)]
+        UIColor MThumbColor { get; set; }
+
+        // @property (assign, nonatomic) float mProgressCurrentValue;
+        [Export("mProgressCurrentValue")]
+        float MProgressCurrentValue { get; set; }
+
+        // @property (assign, nonatomic) float mArcWidth;
+        [Export("mArcWidth")]
+        float MArcWidth { get; set; }
+
+        // @property (assign, nonatomic) float mThumbWidth;
+        [Export("mThumbWidth")]
+        float MThumbWidth { get; set; }
+
+        // @property (assign, nonatomic) HDLThumbMode mThumbMode;
+        [Export("mThumbMode", ArgumentSemantic.Assign)]
+        HDLThumbMode MThumbMode { get; set; }
+
+        // @property (nonatomic, strong) UIColor * mProgressTextColor;
+        [Export("mProgressTextColor", ArgumentSemantic.Strong)]
+        UIColor MProgressTextColor { get; set; }
+
+        // @property (assign, nonatomic) int mProgressTextSize;
+        [Export("mProgressTextSize")]
+        int MProgressTextSize { get; set; }
+
+        // @property (assign, nonatomic) int mTextDefaultDistance;
+        [Export("mTextDefaultDistance")]
+        int MTextDefaultDistance { get; set; }
+
+        [Wrap("WeakMProgressChangedDelegate")]
+        HDLArcSeekbarProgressChangedDelegate MProgressChangedDelegate { get; set; }
+
+        // @property (nonatomic, weak) id<HDLArcSeekbarProgressChangedDelegate> mProgressChangedDelegate;
+        [NullAllowed, Export("mProgressChangedDelegate", ArgumentSemantic.Weak)]
+        NSObject WeakMProgressChangedDelegate { get; set; }
+
+        // -(void)setProgress:(int)mProgress;
+        [Export("setProgress:")]
+        void SetProgress(int mProgress);
+
+        // -(void)setOpenAngle:(float)mOpenAngle;
+        [Export("setOpenAngle:")]
+        void SetOpenAngle(float mOpenAngle);
+
+        // -(void)setProgressBarUnitSring:(NSString *)mString;
+        [Export("setProgressBarUnitSring:")]
+        void SetProgressBarUnitSring(string mString);
+
+        // -(void)setMinAndMaxValue:(float)mMinValue mMaxValue:(float)mMaxValue;
+        [Export("setMinAndMaxValue:mMaxValue:")]
+        void SetMinAndMaxValue(float mMinValue, float mMaxValue);
+
+        // -(void)initWithFrameArc:(CGRect)mCGRect;
+        [Export("initWithFrameArc:")]
+        void InitWithFrameArc(CGRect mCGRect);
+
+        // -(void)setProgressBarColors:(UIColor *)startColor endColor:(UIColor *)endColor;
+        [Export("setProgressBarColors:endColor:")]
+        void SetProgressBarColors(UIColor startColor, UIColor endColor);
+
+        // -(void)setProgressBarColor:(UIColor *)oneColor;
+        [Export("setProgressBarColor:")]
+        void SetProgressBarColor(UIColor oneColor);
+    }
+
+
+    //******************************************HDLTouchID******************************************//
+    // @interface HDLTouchID : LAContext
+    [BaseType(typeof(LAContext))]
+    interface HDLTouchID
+    {
+        // +(HDLTouchID *)sharedInstance;
+        [Static]
+        [Export("sharedInstance")]
+        //[Verify(MethodToProperty)]
+        HDLTouchID SharedInstance { get; }
+
+        // -(void)HDL_showTouchIDWithDescribe:(NSString *)descTitle mlocalizedReason:(NSString *)mlocalizedReason blockState:(StateBlock)block;
+        [Export("HDL_showTouchIDWithDescribe:mlocalizedReason:blockState:")]
+        void HDL_showTouchIDWithDescribe(string descTitle, string mlocalizedReason, StateBlock block);
+
+        // -(void)HDL_showFaceIDWithDescribe:(NSString *)mlocalizedReason blockState:(faceIDStateBlock)block;
+        [Export("HDL_showFaceIDWithDescribe:blockState:")]
+        void HDL_showFaceIDWithDescribe(string mlocalizedReason, faceIDStateBlock block);
+
+        // -(HDLTouchIDSupperType)HDL_canSupperBiometrics;
+        [Export("HDL_canSupperBiometrics")]
+        //[Verify(MethodToProperty)]
+        HDLTouchIDSupperType HDL_canSupperBiometrics { get; }
+    }
+
+    // typedef void (^StateBlock)(HDLTouchIDState, NSError *);
+    delegate void StateBlock(HDLTouchIDState arg0, NSError arg1);
+
+    // typedef void (^faceIDStateBlock)(HDLFaceIDState, NSError *);
+    delegate void faceIDStateBlock(HDLFaceIDState arg0, NSError arg1);
+
+
+    //******************************************ZJPickerView******************************************//
+    // @interface ZJPickerView : UIView
+    [BaseType(typeof(UIView))]
+    interface ZJPickerView
+    {
+        // +(void)zj_showWithDataList:(NSArray * _Nonnull)dataList propertyDict:(NSDictionary * _Nullable)propertyDict completion:(void (^ _Nullable)(NSInteger, NSInteger, NSInteger))completion;
+        [Static]
+        [Export("zj_showWithDataList:propertyDict:completion:")]
+        //[Verify(StronglyTypedNSArray)]
+        //void Zj_showWithDataList(NSObject[] dataList, [NullAllowed] NSDictionary propertyDict, [NullAllowed] Action<nint, nint, nint> completion);
+        void Zj_showWithDataList(NSArray dataList, [NullAllowed] NSDictionary propertyDict, [NullAllowed] Action<nint, nint, nint> completion);
+
+        // +(void)zj_showWithDataListWithNotLinked:(NSArray * _Nonnull)dataList mSecondList:(NSArray * _Nonnull)mSecondLis mThirdList:(NSArray * _Nullable)mThirdList propertyDict:(NSDictionary * _Nullable)propertyDict completion:(void (^ _Nullable)(NSInteger, NSInteger, NSInteger))completion;
+        [Static]
+        [Export("zj_showWithDataListWithNotLinked:mSecondList:mThirdList:propertyDict:completion:")]
+        //[Verify(StronglyTypedNSArray), Verify(StronglyTypedNSArray), Verify(StronglyTypedNSArray)]
+        void Zj_showWithDataListWithNotLinked(NSArray dataList, NSArray mSecondLis, [NullAllowed] NSArray mThirdList, [NullAllowed] NSDictionary propertyDict, [NullAllowed] Action<nint, nint, nint> completion);
+
+    }
+
+    [Static]
+    //[Verify(ConstantsInterfaceAssociation)]
+    partial interface Constants
+    {
+        // extern NSString *const _Nonnull ZJPickerViewPropertyCanceBtnTitleKey;
+        [Field("ZJPickerViewPropertyCanceBtnTitleKey", "__Internal")]
+        NSString ZJPickerViewPropertyCanceBtnTitleKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertySureBtnTitleKey;
+        [Field("ZJPickerViewPropertySureBtnTitleKey", "__Internal")]
+        NSString ZJPickerViewPropertySureBtnTitleKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyTipLabelTextKey;
+        [Field("ZJPickerViewPropertyTipLabelTextKey", "__Internal")]
+        NSString ZJPickerViewPropertyTipLabelTextKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyDividedSymbolKey;
+        [Field("ZJPickerViewPropertyDividedSymbolKey", "__Internal")]
+        NSString ZJPickerViewPropertyDividedSymbolKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyCanceBtnTitleColorKey;
+        [Field("ZJPickerViewPropertyCanceBtnTitleColorKey", "__Internal")]
+        NSString ZJPickerViewPropertyCanceBtnTitleColorKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertySureBtnTitleColorKey;
+        [Field("ZJPickerViewPropertySureBtnTitleColorKey", "__Internal")]
+        NSString ZJPickerViewPropertySureBtnTitleColorKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyTipLabelTextColorKey;
+        [Field("ZJPickerViewPropertyTipLabelTextColorKey", "__Internal")]
+        NSString ZJPickerViewPropertyTipLabelTextColorKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyLineViewBackgroundColorKey;
+        [Field("ZJPickerViewPropertyLineViewBackgroundColorKey", "__Internal")]
+        NSString ZJPickerViewPropertyLineViewBackgroundColorKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyCanceBtnTitleFontKey;
+        [Field("ZJPickerViewPropertyCanceBtnTitleFontKey", "__Internal")]
+        NSString ZJPickerViewPropertyCanceBtnTitleFontKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertySureBtnTitleFontKey;
+        [Field("ZJPickerViewPropertySureBtnTitleFontKey", "__Internal")]
+        NSString ZJPickerViewPropertySureBtnTitleFontKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyTipLabelTextFontKey;
+        [Field("ZJPickerViewPropertyTipLabelTextFontKey", "__Internal")]
+        NSString ZJPickerViewPropertyTipLabelTextFontKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyPickerViewHeightKey;
+        [Field("ZJPickerViewPropertyPickerViewHeightKey", "__Internal")]
+        NSString ZJPickerViewPropertyPickerViewHeightKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyOneComponentRowHeightKey;
+        [Field("ZJPickerViewPropertyOneComponentRowHeightKey", "__Internal")]
+        NSString ZJPickerViewPropertyOneComponentRowHeightKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertySelectRowTitleAttrKey;
+        [Field("ZJPickerViewPropertySelectRowTitleAttrKey", "__Internal")]
+        NSString ZJPickerViewPropertySelectRowTitleAttrKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyUnSelectRowTitleAttrKey;
+        [Field("ZJPickerViewPropertyUnSelectRowTitleAttrKey", "__Internal")]
+        NSString ZJPickerViewPropertyUnSelectRowTitleAttrKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertySelectRowLineBackgroundColorKey;
+        [Field("ZJPickerViewPropertySelectRowLineBackgroundColorKey", "__Internal")]
+        NSString ZJPickerViewPropertySelectRowLineBackgroundColorKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyIsTouchBackgroundHideKey;
+        [Field("ZJPickerViewPropertyIsTouchBackgroundHideKey", "__Internal")]
+        NSString ZJPickerViewPropertyIsTouchBackgroundHideKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyIsShowTipLabelKey;
+        [Field("ZJPickerViewPropertyIsShowTipLabelKey", "__Internal")]
+        NSString ZJPickerViewPropertyIsShowTipLabelKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyIsShowSelectContentKey;
+        [Field("ZJPickerViewPropertyIsShowSelectContentKey", "__Internal")]
+        NSString ZJPickerViewPropertyIsShowSelectContentKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyIsScrollToSelectedRowKey;
+        [Field("ZJPickerViewPropertyIsScrollToSelectedRowKey", "__Internal")]
+        NSString ZJPickerViewPropertyIsScrollToSelectedRowKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyIsDividedSelectContentKey;
+        [Field("ZJPickerViewPropertyIsDividedSelectContentKey", "__Internal")]
+        NSString ZJPickerViewPropertyIsDividedSelectContentKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyIsAnimationShowKey;
+        [Field("ZJPickerViewPropertyIsAnimationShowKey", "__Internal")]
+        NSString ZJPickerViewPropertyIsAnimationShowKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyBackgroundAlphaKey;
+        [Field("ZJPickerViewPropertyBackgroundAlphaKey", "__Internal")]
+        NSString ZJPickerViewPropertyBackgroundAlphaKey { get; }
+
+        // extern NSString *const _Nonnull ZJPickerViewPropertyDefaultSelectedIndexKey;
+        [Field("ZJPickerViewPropertyDefaultSelectedIndexKey", "__Internal")]
+        NSString ZJPickerViewPropertyDefaultSelectedIndexKey { get; }
+    }
+
+
+
+    //******************************************HDLWaveSeekbar******************************************//
+    // @protocol HDLWaveSeekbarProgressChangedDelegate <NSObject>
+    [Protocol, Model(AutoGeneratedName = true)]
+    [BaseType(typeof(NSObject))]
+    interface HDLWaveSeekbarProgressChangedDelegate
+    {
+        // @required -(void)onStartTrackingTouch;
+        [Abstract]
+        [Export("onStartTrackingTouch")]
+        void OnStartTrackingTouch();
+
+        // @required -(void)onProgressChanged:(int)mProgress;
+        [Abstract]
+        [Export("onProgressChanged:")]
+        void OnProgressChanged(int mProgress);
+
+        // @required -(void)onStopTrackingTouch:(int)mProgress;
+        [Abstract]
+        [Export("onStopTrackingTouch:")]
+        void OnStopTrackingTouch(int mProgress);
+    }
+
+    // @interface HDLWaveSeekbar : UIControl
+    [BaseType(typeof(UIControl))]
+    interface HDLWaveSeekbar
+    {
+        // @property (assign, nonatomic) BOOL isClickable;
+        [Export("isClickable")]
+        bool IsClickable { get; set; }
+
+        // @property (assign, nonatomic) int mProgress;
+        [Export("mProgress")]
+        int MProgress { get; set; }
+
+        // @property (assign, nonatomic) BOOL isProgressTextShow;
+        [Export("isProgressTextShow")]
+        bool IsProgressTextShow { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull mProgressTextColor;
+        [Export("mProgressTextColor", ArgumentSemantic.Strong)]
+        UIColor MProgressTextColor { get; set; }
+
+        // @property (assign, nonatomic) int mProgressTextSize;
+        [Export("mProgressTextSize")]
+        int MProgressTextSize { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull mWaveProgressBarColor;
+        [Export("mWaveProgressBarColor", ArgumentSemantic.Strong)]
+        UIColor MWaveProgressBarColor { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull mWaveBorderColor;
+        [Export("mWaveBorderColor", ArgumentSemantic.Strong)]
+        UIColor MWaveBorderColor { get; set; }
+
+        // @property (assign, nonatomic) int mCornerRadius;
+        [Export("mCornerRadius")]
+        int MCornerRadius { get; set; }
+
+        [Wrap("WeakMProgressChangedDelegate")]
+        [NullAllowed]
+        HDLWaveSeekbarProgressChangedDelegate MProgressChangedDelegate { get; set; }
+
+        // @property (nonatomic, weak) id<HDLWaveSeekbarProgressChangedDelegate> _Nullable mProgressChangedDelegate;
+        [NullAllowed, Export("mProgressChangedDelegate", ArgumentSemantic.Weak)]
+        NSObject WeakMProgressChangedDelegate { get; set; }
+
+        // -(void)setProgress:(int)mProgress;
+        [Export("setProgress:")]
+        void SetProgress(int mProgress);
+
+        // -(void)setProgressBarUnitSring:(NSString * _Nonnull)mString;
+        [Export("setProgressBarUnitSring:")]
+        void SetProgressBarUnitSring(string mString);
+
+        // -(void)setMinAndMaxValue:(float)mMinValue mMaxValue:(float)mMaxValue;
+        [Export("setMinAndMaxValue:mMaxValue:")]
+        void SetMinAndMaxValue(float mMinValue, float mMaxValue);
+
+        // -(void)initWithFrameWaveSeekBar:(CGRect)mCGRect;
+        [Export("initWithFrameWaveSeekBar:")]
+        void InitWithFrameWaveSeekBar(CGRect mCGRect);
+
+        // -(void)setProgressBarColor:(UIColor * _Nonnull)oneColor;
+        [Export("setProgressBarColor:")]
+        void SetProgressBarColor(UIColor oneColor);
+
+        // -(void)setWavePadding:(int)Padding;
+        [Export("setWavePadding:")]
+        void SetWavePadding(int Padding);
+
+        // -(void)setBorderWidth:(int)borderWidth;
+        [Export("setBorderWidth:")]
+        void SetBorderWidth(int borderWidth);
+    }
+
+
+
+    //******************************************楂樺痉鍦板浘 鍦扮悊鍥存爮******************************************//
+    // typedef void (^SaveButtonCallBack)(double, double, int, NSString * _Nonnull);
+    delegate void SaveButtonCallBack(double mLatitude, double mLongitude, int mRadius, string addressName);
+
+    // @interface GDMapViewController : UIViewController
+    [BaseType(typeof(UIViewController))]
+    interface GDMapViewController
+    {
+        // @property (assign, nonatomic) NSInteger mRadius;
+        [Export("mRadius")]
+        nint MRadius { get; set; }
+
+        // @property (nonatomic, strong) NSString * _Nonnull titleName;
+        [Export("titleName", ArgumentSemantic.Strong)]
+        string TitleName { get; set; }
+
+        // @property (copy, nonatomic) SaveButtonCallBack _Nonnull mSaveButtonCallBack;
+        [Export("mSaveButtonCallBack", ArgumentSemantic.Copy)]
+        SaveButtonCallBack MSaveButtonCallBack { get; set; }
+
+        // -(void)setmHomeCoordinate:(double)mLatitude mLongitude:(double)mLongitude mRadius:(int)mRadius;
+        [Export("setmHomeCoordinate:mLongitude:mRadius:")]
+        void SetmHomeCoordinate(double mLatitude, double mLongitude, int mRadius);
+    }
+
+    // @interface AMapServices : NSObject
+    [BaseType(typeof(NSObject))]
+    interface AMapServices
+    {
+        // +(AMapServices *)sharedServices;
+        [Static]
+        [Export("sharedServices")]
+        //[Verify(MethodToProperty)]
+        AMapServices SharedServices { get; }
+
+        // @property (copy, nonatomic) NSString * apiKey;
+        [Export("apiKey")]
+        string ApiKey { get; set; }
+
+        //// @property (assign, nonatomic) BOOL enableHTTPS;
+        //[Export("enableHTTPS")]
+        //bool EnableHTTPS { get; set; }
+
+        //// @property (assign, nonatomic) BOOL crashReportEnabled;
+        //[Export("crashReportEnabled")]
+        //bool CrashReportEnabled { get; set; }
+    }
+
+
+    //******************************************HDLPickerView******************************************//
+    // @protocol HDLPickerviewChangedDelegate <NSObject>
+    [Protocol, Model(AutoGeneratedName = true)]
+    [BaseType(typeof(NSObject))]
+    interface HDLPickerviewChangedDelegate
+    {
+        // @required -(void)onOptionsSelectChangeListener:(NSInteger)selectIndex1 selectIndex2:(NSInteger)selectIndex2 selectIndex3:(NSInteger)selectIndex3;
+        [Abstract]
+        [Export("onOptionsSelectChangeListener:selectIndex2:selectIndex3:")]
+        void SelectIndex2(nint selectIndex1, nint selectIndex2, nint selectIndex3);
+    }
+
+    // @interface HDLPickerView : UIView
+    [BaseType(typeof(UIView))]
+    interface HDLPickerView
+    {
+        [Wrap("WeakMChangedDelegate")]
+        [NullAllowed]
+        HDLPickerviewChangedDelegate MChangedDelegate { get; set; }
+
+        // @property (nonatomic, weak) id<HDLPickerviewChangedDelegate> _Nullable mChangedDelegate;
+        [NullAllowed, Export("mChangedDelegate", ArgumentSemantic.Weak)]
+        NSObject WeakMChangedDelegate { get; set; }
+
+        // -(void)setNPicker:(NSArray * _Nonnull)dataList mSecondList:(NSArray * _Nonnull)mSecondList mThirdList:(NSArray * _Nullable)mThirdList;
+        [Export("setNPicker:mSecondList:mThirdList:")]
+        //[Verify(StronglyTypedNSArray), Verify(StronglyTypedNSArray), Verify(StronglyTypedNSArray)]
+        void SetNPicker(NSArray dataList, [NullAllowed] NSArray mSecondList, [NullAllowed] NSArray mThirdList);
+
+        // -(void)setCurrentItems:(NSInteger)selectIndex1 selectIndex2:(NSInteger)selectIndex2 selectIndex3:(NSInteger)selectIndex3;
+        [Export("setCurrentItems:selectIndex2:selectIndex3:")]
+        void SetCurrentItems(nint selectIndex1, nint selectIndex2, nint selectIndex3);
+
+        // -(void)initWithFrameArc:(CGRect)mCGRect;
+        [Export("initWithFrameArc:")]
+        void InitWithFrameArc(CGRect mCGRect);
+
+        // -(void)setTextColorCenter:(UIColor * _Nonnull)mColor optionId:(NSInteger)optionId;
+        [Export("setTextColorCenter:optionId:")]
+        void SetTextColorCenter(UIColor mColor, nint optionId);
+
+        // -(void)setTextColorCenterAll:(UIColor * _Nonnull)mColor;
+        [Export("setTextColorCenterAll:")]
+        void SetTextColorCenterAll(UIColor mColor);
+
+        // -(void)setTextColorCenterAlone:(UIColor * _Nonnull)mColor0 mColor1:(UIColor * _Nonnull)mColor1 mColor2:(UIColor * _Nonnull)mColor2;
+        [Export("setTextColorCenterAlone:mColor1:mColor2:")]
+        void SetTextColorCenterAlone(UIColor mColor0, UIColor mColor1, UIColor mColor2);
+
+        // -(void)setPicker:(NSArray * _Nonnull)dataList;
+        [Export("setPicker:")]
+        //[Verify(StronglyTypedNSArray)]
+        void SetPicker(NSArray dataList);
+    }
+
+
+
+    //******************************************HDLCoverFlow******************************************//
+    // @protocol SelectItemDelegate <NSObject>
+    [Protocol, Model(AutoGeneratedName = true)]
+    [BaseType(typeof(NSObject))]
+    interface SelectItemDelegate
+    {
+        // @required -(void)onSelectItem:(NSInteger)mSelectIndex;
+        [Abstract]
+        [Export("onSelectItem:")]
+        void OnSelectItem(nint mSelectIndex);
+    }
+
+    // @interface HDLCoverFlow : UIView
+    [BaseType(typeof(UIView))]
+    interface HDLCoverFlow
+    {
+        [Wrap("WeakMSelectItemDelegate")]
+        [NullAllowed]
+        SelectItemDelegate MSelectItemDelegate { get; set; }
+
+        // @property (nonatomic, weak) id<SelectItemDelegate> _Nullable mSelectItemDelegate;
+        [NullAllowed, Export("mSelectItemDelegate", ArgumentSemantic.Weak)]
+        NSObject WeakMSelectItemDelegate { get; set; }
+
+        // -(void)addCoverFlowViewDatas:(NSArray<UIView *> * _Nonnull)viewsData;
+        [Export("addCoverFlowViewDatas:")]
+        void AddCoverFlowViewDatas(UIView[] viewsData);
+
+        // -(void)setCoverFlowSelectIndex:(NSInteger)selectIndex;
+        [Export("setCoverFlowSelectIndex:")]
+        void SetCoverFlowSelectIndex(nint selectIndex);
+
+        // -(void)initWithFrameArc:(CGRect)mCGRect;
+        [Export("initWithFrameArc:")]
+        void InitWithFrameArc(CGRect mCGRect);
+
+
+ 
+    }
+
+
+    //******************************************HDLCropImageUtlis******************************************//
+    // @interface CropImageUtlis : NSObject
+    [BaseType(typeof(NSObject))]
+    interface CropImageUtlis
+    {
+        // @property (assign, nonatomic) int openType;
+        [Export("openType")]
+        int OpenType { get; set; }
+
+        // -(instancetype _Nonnull)initWithController:(UIViewController * _Nonnull)mUIViewController openType:(int)openType fileName:(NSString * _Nonnull)fileName mRATIO_X:(int)mRATIO_X mRATIO_Y:(int)mRATIO_Y callBackBlock:(void (^ _Nonnull)(NSString * _Nonnull))callBackBlock;
+        [Export("initWithController:openType:fileName:mRATIO_X:mRATIO_Y:callBackBlock:")]
+        IntPtr Constructor(UIViewController mUIViewController, int openType, string fileName, int mRATIO_X, int mRATIO_Y, Action<NSString> callBackBlock);
+    }
+
+    //浠ヤ笅鏄井淇$櫥褰曠殑
+    // @protocol WechatAuthAPIDelegate <NSObject>
+    [Protocol, Model(AutoGeneratedName = true)]
+        [BaseType(typeof(NSObject))]
+        interface WechatAuthAPIDelegate
+        {
+            // @optional -(void)onAuthGotQrcode:(UIImage * _Nonnull)image;
+            [Export("onAuthGotQrcode:")]
+            void OnAuthGotQrcode(UIImage image);
+
+            // @optional -(void)onQrcodeScanned;
+            [Export("onQrcodeScanned")]
+            void OnQrcodeScanned();
+
+            // @optional -(void)onAuthFinish:(int)errCode AuthCode:(NSString * _Nullable)authCode;
+            [Export("onAuthFinish:AuthCode:")]
+            void OnAuthFinish(int errCode, [NullAllowed] string authCode);
+        }
+
+        // @interface WechatAuthSDK : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WechatAuthSDK
+        {
+            [Wrap("WeakDelegate")]
+            [NullAllowed]
+            WechatAuthAPIDelegate Delegate { get; set; }
+
+            // @property (nonatomic, weak) id<WechatAuthAPIDelegate> _Nullable delegate;
+            [NullAllowed, Export("delegate", ArgumentSemantic.Weak)]
+            NSObject WeakDelegate { get; set; }
+
+            // @property (readonly, nonatomic) NSString * _Nonnull sdkVersion;
+            [Export("sdkVersion")]
+            string SdkVersion { get; }
+
+            // -(BOOL)Auth:(NSString * _Nonnull)appId nonceStr:(NSString * _Nonnull)nonceStr timeStamp:(NSString * _Nonnull)timeStamp scope:(NSString * _Nonnull)scope signature:(NSString * _Nonnull)signature schemeData:(NSString * _Nullable)schemeData;
+            [Export("Auth:nonceStr:timeStamp:scope:signature:schemeData:")]
+            bool Auth(string appId, string nonceStr, string timeStamp, string scope, string signature, [NullAllowed] string schemeData);
+
+            // -(BOOL)StopAuth;
+            [Export("StopAuth")]
+            bool StopAuth { get; }
+        }
+
+        // typedef void (^WXLogBolock)(NSString * _Nonnull);
+        delegate void WXLogBolock(string arg0);
+
+        // @interface BaseReq : NSObject
+        [BaseType(typeof(NSObject))]
+        interface BaseReq
+        {
+            // @property (assign, nonatomic) int type;
+            [Export("type")]
+            int Type { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull openID;
+            [Export("openID")]
+            string OpenID { get; set; }
+        }
+
+        // @interface BaseResp : NSObject
+        [BaseType(typeof(NSObject))]
+        interface BaseResp
+        {
+            // @property (assign, nonatomic) int errCode;
+            [Export("errCode")]
+            int ErrCode { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull errStr;
+            [Export("errStr")]
+            string ErrStr { get; set; }
+
+            // @property (assign, nonatomic) int type;
+            [Export("type")]
+            int Type { get; set; }
+        }
+
+        // @interface SendAuthReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface SendAuthReq
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull scope;
+            [Export("scope")]
+            string Scope { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull state;
+            [Export("state")]
+            string State { get; set; }
+        }
+
+        // @interface SendAuthResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface SendAuthResp
+        {
+            // @property (copy, nonatomic) NSString * _Nullable code;
+            [NullAllowed, Export("code")]
+            string Code { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable state;
+            [NullAllowed, Export("state")]
+            string State { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable lang;
+            [NullAllowed, Export("lang")]
+            string Lang { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable country;
+            [NullAllowed, Export("country")]
+            string Country { get; set; }
+        }
+
+        // @interface SendMessageToWXReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface SendMessageToWXReq
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull text;
+            [Export("text")]
+            string Text { get; set; }
+
+            // @property (nonatomic, strong) WXMediaMessage * _Nonnull message;
+            [Export("message", ArgumentSemantic.Strong)]
+            WXMediaMessage Message { get; set; }
+
+            // @property (assign, nonatomic) BOOL bText;
+            [Export("bText")]
+            bool BText { get; set; }
+
+            // @property (assign, nonatomic) int scene;
+            [Export("scene")]
+            int Scene { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable toUserOpenId;
+            [NullAllowed, Export("toUserOpenId")]
+            string ToUserOpenId { get; set; }
+        }
+
+        // @interface SendMessageToWXResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface SendMessageToWXResp
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull lang;
+            [Export("lang")]
+            string Lang { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull country;
+            [Export("country")]
+            string Country { get; set; }
+        }
+
+        // @interface GetMessageFromWXReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface GetMessageFromWXReq
+        {
+            // @property (nonatomic, strong) NSString * _Nonnull lang;
+            [Export("lang", ArgumentSemantic.Strong)]
+            string Lang { get; set; }
+
+            // @property (nonatomic, strong) NSString * _Nonnull country;
+            [Export("country", ArgumentSemantic.Strong)]
+            string Country { get; set; }
+        }
+
+        // @interface GetMessageFromWXResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface GetMessageFromWXResp
+        {
+            // @property (nonatomic, strong) NSString * _Nonnull text;
+            [Export("text", ArgumentSemantic.Strong)]
+            string Text { get; set; }
+
+            // @property (nonatomic, strong) WXMediaMessage * _Nonnull message;
+            [Export("message", ArgumentSemantic.Strong)]
+            WXMediaMessage Message { get; set; }
+
+            // @property (assign, nonatomic) BOOL bText;
+            [Export("bText")]
+            bool BText { get; set; }
+        }
+
+        // @interface ShowMessageFromWXReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface ShowMessageFromWXReq
+        {
+            // @property (nonatomic, strong) WXMediaMessage * _Nonnull message;
+            [Export("message", ArgumentSemantic.Strong)]
+            WXMediaMessage Message { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull lang;
+            [Export("lang")]
+            string Lang { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull country;
+            [Export("country")]
+            string Country { get; set; }
+        }
+
+        // @interface ShowMessageFromWXResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface ShowMessageFromWXResp
+        {
+        }
+
+        // @interface LaunchFromWXReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface LaunchFromWXReq
+        {
+            // @property (nonatomic, strong) WXMediaMessage * _Nonnull message;
+            [Export("message", ArgumentSemantic.Strong)]
+            WXMediaMessage Message { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull lang;
+            [Export("lang")]
+            string Lang { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull country;
+            [Export("country")]
+            string Country { get; set; }
+        }
+
+        // @interface OpenWebviewReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface OpenWebviewReq
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull url;
+            [Export("url")]
+            string Url { get; set; }
+        }
+
+        // @interface OpenWebviewResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface OpenWebviewResp
+        {
+        }
+
+        // @interface WXOpenBusinessWebViewReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface WXOpenBusinessWebViewReq
+        {
+            // @property (assign, nonatomic) UInt32 businessType;
+            [Export("businessType")]
+            uint BusinessType { get; set; }
+
+            // @property (nonatomic, strong) NSDictionary * _Nullable queryInfoDic;
+            [NullAllowed, Export("queryInfoDic", ArgumentSemantic.Strong)]
+            NSDictionary QueryInfoDic { get; set; }
+        }
+
+        // @interface WXOpenBusinessWebViewResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface WXOpenBusinessWebViewResp
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull result;
+            [Export("result")]
+            string Result { get; set; }
+
+            // @property (assign, nonatomic) UInt32 businessType;
+            [Export("businessType")]
+            uint BusinessType { get; set; }
+        }
+
+        // @interface OpenRankListReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface OpenRankListReq
+        {
+        }
+
+        // @interface OpenRankListResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface OpenRankListResp
+        {
+        }
+
+        // @interface WXCardItem : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXCardItem
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull cardId;
+            [Export("cardId")]
+            string CardId { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable extMsg;
+            [NullAllowed, Export("extMsg")]
+            string ExtMsg { get; set; }
+
+            // @property (assign, nonatomic) UInt32 cardState;
+            [Export("cardState")]
+            uint CardState { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull encryptCode;
+            [Export("encryptCode")]
+            string EncryptCode { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull appID;
+            [Export("appID")]
+            string AppID { get; set; }
+        }
+
+        // @interface WXInvoiceItem : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXInvoiceItem
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull cardId;
+            [Export("cardId")]
+            string CardId { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable extMsg;
+            [NullAllowed, Export("extMsg")]
+            string ExtMsg { get; set; }
+
+            // @property (assign, nonatomic) UInt32 cardState;
+            [Export("cardState")]
+            uint CardState { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull encryptCode;
+            [Export("encryptCode")]
+            string EncryptCode { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull appID;
+            [Export("appID")]
+            string AppID { get; set; }
+        }
+
+        // @interface AddCardToWXCardPackageReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface AddCardToWXCardPackageReq
+        {
+            // @property (nonatomic, strong) NSArray * _Nonnull cardAry;
+            [Export("cardAry", ArgumentSemantic.Strong)]
+            NSObject[] CardAry { get; set; }
+        }
+
+        // @interface AddCardToWXCardPackageResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface AddCardToWXCardPackageResp
+        {
+            // @property (nonatomic, strong) NSArray * _Nonnull cardAry;
+            [Export("cardAry", ArgumentSemantic.Strong)]
+            NSObject[] CardAry { get; set; }
+        }
+
+        // @interface WXChooseCardReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface WXChooseCardReq
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull appID;
+            [Export("appID")]
+            string AppID { get; set; }
+
+            // @property (assign, nonatomic) UInt32 shopID;
+            [Export("shopID")]
+            uint ShopID { get; set; }
+
+            // @property (assign, nonatomic) UInt32 canMultiSelect;
+            [Export("canMultiSelect")]
+            uint CanMultiSelect { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull cardType;
+            [Export("cardType")]
+            string CardType { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull cardTpID;
+            [Export("cardTpID")]
+            string CardTpID { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull signType;
+            [Export("signType")]
+            string SignType { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull cardSign;
+            [Export("cardSign")]
+            string CardSign { get; set; }
+
+            // @property (assign, nonatomic) UInt32 timeStamp;
+            [Export("timeStamp")]
+            uint TimeStamp { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull nonceStr;
+            [Export("nonceStr")]
+            string NonceStr { get; set; }
+        }
+
+        // @interface WXChooseCardResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface WXChooseCardResp
+        {
+            // @property (nonatomic, strong) NSArray * _Nonnull cardAry;
+            [Export("cardAry", ArgumentSemantic.Strong)]
+            NSObject[] CardAry { get; set; }
+        }
+
+        // @interface WXChooseInvoiceReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface WXChooseInvoiceReq
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull appID;
+            [Export("appID")]
+            string AppID { get; set; }
+
+            // @property (assign, nonatomic) UInt32 shopID;
+            [Export("shopID")]
+            uint ShopID { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull signType;
+            [Export("signType")]
+            string SignType { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull cardSign;
+            [Export("cardSign")]
+            string CardSign { get; set; }
+
+            // @property (assign, nonatomic) UInt32 timeStamp;
+            [Export("timeStamp")]
+            uint TimeStamp { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull nonceStr;
+            [Export("nonceStr")]
+            string NonceStr { get; set; }
+        }
+
+        // @interface WXChooseInvoiceResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface WXChooseInvoiceResp
+        {
+            // @property (nonatomic, strong) NSArray * _Nonnull cardAry;
+            [Export("cardAry", ArgumentSemantic.Strong)]
+            NSObject[] CardAry { get; set; }
+        }
+
+        // @interface WXSubscribeMsgReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface WXSubscribeMsgReq
+        {
+            // @property (assign, nonatomic) UInt32 scene;
+            [Export("scene")]
+            uint Scene { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull templateId;
+            [Export("templateId")]
+            string TemplateId { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable reserved;
+            [NullAllowed, Export("reserved")]
+            string Reserved { get; set; }
+        }
+
+        // @interface WXSubscribeMsgResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface WXSubscribeMsgResp
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull templateId;
+            [Export("templateId")]
+            string TemplateId { get; set; }
+
+            // @property (assign, nonatomic) UInt32 scene;
+            [Export("scene")]
+            uint Scene { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull action;
+            [Export("action")]
+            string Action { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull reserved;
+            [Export("reserved")]
+            string Reserved { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable openId;
+            [NullAllowed, Export("openId")]
+            string OpenId { get; set; }
+        }
+
+        // @interface WXSubscribeMiniProgramMsgReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface WXSubscribeMiniProgramMsgReq
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull miniProgramAppid;
+            [Export("miniProgramAppid")]
+            string MiniProgramAppid { get; set; }
+        }
+
+        // @interface WXSubscribeMiniProgramMsgResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface WXSubscribeMiniProgramMsgResp
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull openId;
+            [Export("openId")]
+            string OpenId { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull unionId;
+            [Export("unionId")]
+            string UnionId { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull nickName;
+            [Export("nickName")]
+            string NickName { get; set; }
+        }
+
+        // @interface WXInvoiceAuthInsertReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface WXInvoiceAuthInsertReq
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull urlString;
+            [Export("urlString")]
+            string UrlString { get; set; }
+        }
+
+        // @interface WXInvoiceAuthInsertResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface WXInvoiceAuthInsertResp
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull wxOrderId;
+            [Export("wxOrderId")]
+            string WxOrderId { get; set; }
+        }
+
+        // @interface WXMediaMessage : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXMediaMessage
+        {
+            // +(WXMediaMessage * _Nonnull)message;
+            [Static]
+            [Export("message")]
+            WXMediaMessage Message { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull title;
+            [Export("title")]
+            string Title { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull description;
+            [Export("description")]
+            string Description { get; set; }
+
+            // @property (nonatomic, strong) NSData * _Nullable thumbData;
+            [NullAllowed, Export("thumbData", ArgumentSemantic.Strong)]
+            NSData ThumbData { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable mediaTagName;
+            [NullAllowed, Export("mediaTagName")]
+            string MediaTagName { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable messageExt;
+            [NullAllowed, Export("messageExt")]
+            string MessageExt { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable messageAction;
+            [NullAllowed, Export("messageAction")]
+            string MessageAction { get; set; }
+
+            // @property (nonatomic, strong) id _Nonnull mediaObject;
+            [Export("mediaObject", ArgumentSemantic.Strong)]
+            NSObject MediaObject { get; set; }
+
+            // -(void)setThumbImage:(UIImage * _Nonnull)image;
+            [Export("setThumbImage:")]
+            void SetThumbImage(UIImage image);
+        }
+
+        // @interface WXImageObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXImageObject
+        {
+            // +(WXImageObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXImageObject Object { get; }
+
+            // @property (nonatomic, strong) NSData * _Nonnull imageData;
+            [Export("imageData", ArgumentSemantic.Strong)]
+            NSData ImageData { get; set; }
+        }
+
+        // @interface WXMusicObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXMusicObject
+        {
+            // +(WXMusicObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXMusicObject Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull musicUrl;
+            [Export("musicUrl")]
+            string MusicUrl { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull musicLowBandUrl;
+            [Export("musicLowBandUrl")]
+            string MusicLowBandUrl { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull musicDataUrl;
+            [Export("musicDataUrl")]
+            string MusicDataUrl { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull musicLowBandDataUrl;
+            [Export("musicLowBandDataUrl")]
+            string MusicLowBandDataUrl { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull songAlbumUrl;
+            [Export("songAlbumUrl")]
+            string SongAlbumUrl { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable songLyric;
+            [NullAllowed, Export("songLyric")]
+            string SongLyric { get; set; }
+        }
+
+        // @interface WXVideoObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXVideoObject
+        {
+            // +(WXVideoObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXVideoObject Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull videoUrl;
+            [Export("videoUrl")]
+            string VideoUrl { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull videoLowBandUrl;
+            [Export("videoLowBandUrl")]
+            string VideoLowBandUrl { get; set; }
+        }
+
+        // @interface WXWebpageObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXWebpageObject
+        {
+            // +(WXWebpageObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXWebpageObject Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull webpageUrl;
+            [Export("webpageUrl")]
+            string WebpageUrl { get; set; }
+        }
+
+        // @interface WXAppExtendObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXAppExtendObject
+        {
+            // +(WXAppExtendObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXAppExtendObject Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull url;
+            [Export("url")]
+            string Url { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable extInfo;
+            [NullAllowed, Export("extInfo")]
+            string ExtInfo { get; set; }
+
+            // @property (nonatomic, strong) NSData * _Nullable fileData;
+            [NullAllowed, Export("fileData", ArgumentSemantic.Strong)]
+            NSData FileData { get; set; }
+        }
+
+        // @interface WXEmoticonObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXEmoticonObject
+        {
+            // +(WXEmoticonObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXEmoticonObject Object { get; }
+
+            // @property (nonatomic, strong) NSData * _Nonnull emoticonData;
+            [Export("emoticonData", ArgumentSemantic.Strong)]
+            NSData EmoticonData { get; set; }
+        }
+
+        // @interface WXFileObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXFileObject
+        {
+            // +(WXFileObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXFileObject Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull fileExtension;
+            [Export("fileExtension")]
+            string FileExtension { get; set; }
+
+            // @property (nonatomic, strong) NSData * _Nonnull fileData;
+            [Export("fileData", ArgumentSemantic.Strong)]
+            NSData FileData { get; set; }
+        }
+
+        // @interface WXLocationObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXLocationObject
+        {
+            // +(WXLocationObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXLocationObject Object { get; }
+
+            // @property (assign, nonatomic) double lng;
+            [Export("lng")]
+            double Lng { get; set; }
+
+            // @property (assign, nonatomic) double lat;
+            [Export("lat")]
+            double Lat { get; set; }
+        }
+
+        // @interface WXTextObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXTextObject
+        {
+            // +(WXTextObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXTextObject Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull contentText;
+            [Export("contentText")]
+            string ContentText { get; set; }
+        }
+
+        // @interface WXMiniProgramObject : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXMiniProgramObject
+        {
+            // +(WXMiniProgramObject * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXMiniProgramObject Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull webpageUrl;
+            [Export("webpageUrl")]
+            string WebpageUrl { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull userName;
+            [Export("userName")]
+            string UserName { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable path;
+            [NullAllowed, Export("path")]
+            string Path { get; set; }
+
+            // @property (nonatomic, strong) NSData * _Nullable hdImageData;
+            [NullAllowed, Export("hdImageData", ArgumentSemantic.Strong)]
+            NSData HdImageData { get; set; }
+
+            // @property (assign, nonatomic) BOOL withShareTicket;
+            [Export("withShareTicket")]
+            bool WithShareTicket { get; set; }
+
+            // @property (assign, nonatomic) WXMiniProgramType miniProgramType;
+            [Export("miniProgramType", ArgumentSemantic.Assign)]
+            WXMiniProgramType MiniProgramType { get; set; }
+
+            // @property (assign, nonatomic) BOOL disableForward;
+            [Export("disableForward")]
+            bool DisableForward { get; set; }
+        }
+
+        // @interface WXLaunchMiniProgramReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface WXLaunchMiniProgramReq
+        {
+            // +(WXLaunchMiniProgramReq * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXLaunchMiniProgramReq Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull userName;
+            [Export("userName")]
+            string UserName { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable path;
+            [NullAllowed, Export("path")]
+            string Path { get; set; }
+
+            // @property (assign, nonatomic) WXMiniProgramType miniProgramType;
+            [Export("miniProgramType", ArgumentSemantic.Assign)]
+            WXMiniProgramType MiniProgramType { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable extMsg;
+            [NullAllowed, Export("extMsg")]
+            string ExtMsg { get; set; }
+
+            // @property (copy, nonatomic) NSDictionary * _Nullable extDic;
+            [NullAllowed, Export("extDic", ArgumentSemantic.Copy)]
+            NSDictionary ExtDic { get; set; }
+        }
+
+        // @interface WXLaunchMiniProgramResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface WXLaunchMiniProgramResp
+        {
+            // @property (copy, nonatomic) NSString * _Nullable extMsg;
+            [NullAllowed, Export("extMsg")]
+            string ExtMsg { get; set; }
+        }
+
+        // @interface WXOpenBusinessViewReq : BaseReq
+        [BaseType(typeof(BaseReq))]
+        interface WXOpenBusinessViewReq
+        {
+            // +(WXOpenBusinessViewReq * _Nonnull)object;
+            [Static]
+            [Export("object")]
+            WXOpenBusinessViewReq Object { get; }
+
+            // @property (copy, nonatomic) NSString * _Nonnull businessType;
+            [Export("businessType")]
+            string BusinessType { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable query;
+            [NullAllowed, Export("query")]
+            string Query { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable extInfo;
+            [NullAllowed, Export("extInfo")]
+            string ExtInfo { get; set; }
+
+            // @property (nonatomic, strong) NSData * _Nullable extData;
+            [NullAllowed, Export("extData", ArgumentSemantic.Strong)]
+            NSData ExtData { get; set; }
+        }
+
+        // @interface WXOpenBusinessViewResp : BaseResp
+        [BaseType(typeof(BaseResp))]
+        interface WXOpenBusinessViewResp
+        {
+            // @property (copy, nonatomic) NSString * _Nonnull businessType;
+            [Export("businessType")]
+            string BusinessType { get; set; }
+
+            // @property (copy, nonatomic) NSString * _Nullable extMsg;
+            [NullAllowed, Export("extMsg")]
+            string ExtMsg { get; set; }
+        }
+
+        // @protocol WXApiDelegate <NSObject>
+        [Protocol, Model(AutoGeneratedName = true)]
+        [BaseType(typeof(NSObject))]
+        interface WXApiDelegate
+        {
+            // @optional -(void)onReq:(BaseReq * _Nonnull)req;
+            [Export("onReq:")]
+            void OnReq(BaseReq req);
+
+            // @optional -(void)onResp:(BaseResp * _Nonnull)resp;
+            [Export("onResp:")]
+            void OnResp(BaseResp resp);
+        }
+
+        // @protocol WXApiLogDelegate <NSObject>
+        [Protocol, Model(AutoGeneratedName = true)]
+        [BaseType(typeof(NSObject))]
+        interface WXApiLogDelegate
+        {
+            // @required -(void)onLog:(NSString * _Nonnull)log logLevel:(WXLogLevel)level;
+            [Abstract]
+            [Export("onLog:logLevel:")]
+            void LogLevel(string log, WXLogLevel level);
+        }
+
+        // @interface WXApi : NSObject
+        [BaseType(typeof(NSObject))]
+        interface WXApi
+        {
+            // +(BOOL)registerApp:(NSString * _Nonnull)appid universalLink:(NSString * _Nonnull)universalLink;
+            [Static]
+            [Export("registerApp:universalLink:")]
+            bool RegisterApp(string appid, string universalLink);
+
+            // +(BOOL)handleOpenURL:(NSURL * _Nonnull)url delegate:(id<WXApiDelegate> _Nullable)delegate;
+            [Static]
+            [Export("handleOpenURL:delegate:")]
+            bool HandleOpenURL(NSUrl url, [NullAllowed] WXApiDelegate @delegate);
+
+            // +(BOOL)handleOpenUniversalLink:(NSUserActivity * _Nonnull)userActivity delegate:(id<WXApiDelegate> _Nullable)delegate;
+            [Static]
+            [Export("handleOpenUniversalLink:delegate:")]
+            bool HandleOpenUniversalLink(NSUserActivity userActivity, [NullAllowed] WXApiDelegate @delegate);
+
+            // +(BOOL)isWXAppInstalled;
+            [Static]
+            [Export("isWXAppInstalled")]
+            bool IsWXAppInstalled { get; }
+
+            // +(BOOL)isWXAppSupportApi;
+            [Static]
+            [Export("isWXAppSupportApi")]
+            bool IsWXAppSupportApi { get; }
+
+            // +(NSString * _Nonnull)getWXAppInstallUrl;
+            [Static]
+            [Export("getWXAppInstallUrl")]
+            string WXAppInstallUrl { get; }
+
+            // +(NSString * _Nonnull)getApiVersion;
+            [Static]
+            [Export("getApiVersion")]
+            string ApiVersion { get; }
+
+            // +(BOOL)openWXApp;
+            [Static]
+            [Export("openWXApp")]
+            bool OpenWXApp { get; }
+
+            // +(void)sendReq:(BaseReq * _Nonnull)req completion:(void (^ _Nullable)(BOOL))completion;
+            [Static]
+            [Export("sendReq:completion:")]
+            void SendReq(BaseReq req, [NullAllowed] Action<bool> completion);
+
+            // +(void)sendResp:(BaseResp * _Nonnull)resp completion:(void (^ _Nullable)(BOOL))completion;
+            [Static]
+            [Export("sendResp:completion:")]
+            void SendResp(BaseResp resp, [NullAllowed] Action<bool> completion);
+
+            // +(void)sendAuthReq:(SendAuthReq * _Nonnull)req viewController:(UIViewController * _Nonnull)viewController delegate:(id<WXApiDelegate> _Nullable)delegate completion:(void (^ _Nullable)(BOOL))completion;
+            [Static]
+            [Export("sendAuthReq:viewController:delegate:completion:")]
+            void SendAuthReq(SendAuthReq req, UIViewController viewController, [NullAllowed] WXApiDelegate @delegate, [NullAllowed] Action<bool> completion);
+
+            // +(void)startLogByLevel:(WXLogLevel)level logBlock:(WXLogBolock _Nonnull)logBlock;
+            [Static]
+            [Export("startLogByLevel:logBlock:")]
+            void StartLogByLevel(WXLogLevel level, WXLogBolock logBlock);
+
+            // +(void)startLogByLevel:(WXLogLevel)level logDelegate:(id<WXApiLogDelegate> _Nonnull)logDelegate;
+            [Static]
+            [Export("startLogByLevel:logDelegate:")]
+            void StartLogByLevel(WXLogLevel level, WXApiLogDelegate logDelegate);
+
+            // +(void)stopLog;
+            [Static]
+            [Export("stopLog")]
+            void StopLog();
+        }
+
+
+    //******************************************HDLGestureLockView 鎵嬪娍瑙i攣******************************************//
+    // @protocol SSGestureLockViewDelegate <NSObject>
+    [Protocol, Model(AutoGeneratedName = true)]
+    [BaseType(typeof(NSObject))]
+    interface SSGestureLockViewDelegate
+    {
+        // @optional -(void)didSelectedGestureLockView:(NSString * _Nonnull)selectNumStr selectCount:(int)selectCount;
+        [Export("didSelectedGestureLockView:selectCount:")]
+        void onDidSelectedGestureLockView(string selectNumStr, int selectCount);
+    }
+
+    // @interface HDLGestureLockView : UIView
+    [BaseType(typeof(UIView))]
+    interface HDLGestureLockView
+    {
+        // @property (assign, nonatomic) CGFloat verticalSpace;
+        [Export("verticalSpace")]
+        nfloat VerticalSpace { get; set; }
+
+        // @property (assign, nonatomic) CGFloat horizontalSpace;
+        [Export("horizontalSpace")]
+        nfloat HorizontalSpace { get; set; }
+
+        // @property (assign, nonatomic) CGFloat lineWidth;
+        [Export("lineWidth")]
+        nfloat LineWidth { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull selectedLineColor;
+        [Export("selectedLineColor", ArgumentSemantic.Strong)]
+        UIColor SelectedLineColor { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull errorLineColor;
+        [Export("errorLineColor", ArgumentSemantic.Strong)]
+        UIColor ErrorLineColor { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull normalColor;
+        [Export("normalColor", ArgumentSemantic.Strong)]
+        UIColor NormalColor { get; set; }
+
+        // @property (assign, nonatomic) int resetDelayMillis;
+        [Export("resetDelayMillis")]
+        int ResetDelayMillis { get; set; }
+
+        [Wrap("WeakDelegate")]
+        [NullAllowed]
+        SSGestureLockViewDelegate Delegate { get; set; }
+
+        // @property (nonatomic, weak) id<SSGestureLockViewDelegate> _Nullable delegate;
+        [NullAllowed, Export("delegate", ArgumentSemantic.Weak)]
+        NSObject WeakDelegate { get; set; }
+
+        // @property (assign, nonatomic) BOOL showErrorStatus;
+        [Export("showErrorStatus")]
+        bool ShowErrorStatus { get; set; }
+
+        // -(void)initWithFrameLockView:(CGRect)mCGRect;
+        [Export("initWithFrameLockView:")]
+        void InitWithFrameLockView(CGRect mCGRect);
+    }
+
+
+    //******************************************HDLOACCurtainSeekBar 寮�鍚堝笜*****************************************//
+    // @protocol HDLSeekBarProgressChangedDelegate <NSObject>
+    [Protocol, Model(AutoGeneratedName = true)]
+    [BaseType(typeof(NSObject))]
+    interface HDLSeekBarProgressChangedDelegate
+    {
+        // @required -(void)onStartTrackingTouch;
+        [Abstract]
+        [Export("onStartTrackingTouch")]
+        void OnStartTrackingTouch();
+
+        // @required -(void)onProgressChanged:(int)mProgress;
+        [Abstract]
+        [Export("onProgressChanged:")]
+        void OnProgressChanged(int mProgress);
+
+        // @required -(void)onStopTrackingTouch:(int)mProgress;
+        [Abstract]
+        [Export("onStopTrackingTouch:")]
+        void OnStopTrackingTouch(int mProgress);
+    }
+
+    // @interface SeekBarDelegate : NSObject
+    [BaseType(typeof(NSObject))]
+    interface SeekBarDelegate
+    {
+    }
+
+    // @interface HDLOACCurtainSeekBar : UIControl
+    [BaseType(typeof(UIControl))]
+    interface HDLOACCurtainSeekBar
+    {
+        // @property (assign, nonatomic) BOOL isClickable;
+        [Export("isClickable")]
+        bool IsClickable { get; set; }
+
+        // @property (assign, nonatomic) int mProgress;
+        [Export("mProgress")]
+        int MProgress { get; set; }
+
+        // @property (assign, nonatomic) BOOL isProgressTextShow;
+        [Export("isProgressTextShow")]
+        bool IsProgressTextShow { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull mProgressTextColor;
+        [Export("mProgressTextColor", ArgumentSemantic.Strong)]
+        UIColor MProgressTextColor { get; set; }
+
+        // @property (assign, nonatomic) int mProgressTextSize;
+        [Export("mProgressTextSize")]
+        int MProgressTextSize { get; set; }
+
+        [Wrap("WeakMProgressChangedDelegate")]
+        [NullAllowed]
+        HDLSeekBarProgressChangedDelegate MProgressChangedDelegate { get; set; }
+
+        // @property (nonatomic, weak) id<HDLSeekBarProgressChangedDelegate> _Nullable mProgressChangedDelegate;
+        [NullAllowed, Export("mProgressChangedDelegate", ArgumentSemantic.Weak)]
+        NSObject WeakMProgressChangedDelegate { get; set; }
+
+        // -(void)setProgress:(int)mProgress;
+        [Export("setProgress:")]
+        void SetProgress(int mProgress);
+
+        // -(void)setProgressBarUnitSring:(NSString * _Nonnull)mString;
+        [Export("setProgressBarUnitSring:")]
+        void SetProgressBarUnitSring(string mString);
+
+        // -(void)setMinAndMaxValue:(float)mMinValue mMaxValue:(float)mMaxValue;
+        [Export("setMinAndMaxValue:mMaxValue:")]
+        void SetMinAndMaxValue(float mMinValue, float mMaxValue);
+
+        // -(void)initWithFrameSeekBar:(CGRect)mCGRect;
+        [Export("initWithFrameSeekBar:")]
+        void InitWithFrameSeekBar(CGRect mCGRect);
+
+        // -(void)setCurtainPadding:(int)Padding;
+        [Export("setCurtainPadding:")]
+        void SetCurtainPadding(int Padding);
+
+        // -(void)setCurtainPaddingTop:(int)Padding;
+        [Export("setCurtainPaddingTop:")]
+        void SetCurtainPaddingTop(int Padding);
+
+        // -(void)setOffline:(BOOL)isOffline;
+        [Export("setOffline:")]
+        void SetOffline(bool isOffline);
+    }
+
+
+    //******************************************HDLRollCurtainSeekBar 鍗峰笜*****************************************//
+    // @interface HDLRollCurtainSeekBar : UIControl
+    [BaseType(typeof(UIControl))]
+    interface HDLRollCurtainSeekBar
+    {
+        // @property (assign, nonatomic) BOOL isClickable;
+        [Export("isClickable")]
+        bool IsClickable { get; set; }
+
+        // @property (assign, nonatomic) int mProgress;
+        [Export("mProgress")]
+        int MProgress { get; set; }
+
+        // @property (assign, nonatomic) BOOL isProgressTextShow;
+        [Export("isProgressTextShow")]
+        bool IsProgressTextShow { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull mProgressTextColor;
+        [Export("mProgressTextColor", ArgumentSemantic.Strong)]
+        UIColor MProgressTextColor { get; set; }
+
+        // @property (assign, nonatomic) int mProgressTextSize;
+        [Export("mProgressTextSize")]
+        int MProgressTextSize { get; set; }
+
+        [Wrap("WeakMProgressChangedDelegate")]
+        [NullAllowed]
+        HDLSeekBarProgressChangedDelegate MProgressChangedDelegate { get; set; }
+
+        // @property (nonatomic, weak) id<HDLSeekBarProgressChangedDelegate> _Nullable mProgressChangedDelegate;
+        [NullAllowed, Export("mProgressChangedDelegate", ArgumentSemantic.Weak)]
+        NSObject WeakMProgressChangedDelegate { get; set; }
+
+        // -(void)setProgress:(int)mProgress;
+        [Export("setProgress:")]
+        void SetProgress(int mProgress);
+
+        // -(void)setProgressBarUnitSring:(NSString * _Nonnull)mString;
+        [Export("setProgressBarUnitSring:")]
+        void SetProgressBarUnitSring(string mString);
+
+        // -(void)setMinAndMaxValue:(float)mMinValue mMaxValue:(float)mMaxValue;
+        [Export("setMinAndMaxValue:mMaxValue:")]
+        void SetMinAndMaxValue(float mMinValue, float mMaxValue);
+
+        // -(void)initWithFrameSeekBar:(CGRect)mCGRect;
+        [Export("initWithFrameSeekBar:")]
+        void InitWithFrameSeekBar(CGRect mCGRect);
+
+        // -(void)setCurtainPadding:(int)Padding;
+        [Export("setCurtainPadding:")]
+        void SetCurtainPadding(int Padding);
+
+        // -(void)setCurtainPaddingTop:(int)Padding;
+        [Export("setCurtainPaddingTop:")]
+        void SetCurtainPaddingTop(int Padding);
+
+        // -(void)setOffline:(BOOL)isOffline;
+        [Export("setOffline:")]
+        void SetOffline(bool isOffline);
+    }
+
+
+
+    //******************************************HDLArcScaleSeekBar 绌鸿皟鍒诲害鍦嗗姬*****************************************//
+    // @interface HDLArcScaleSeekBar : UIControl
+    [BaseType(typeof(UIControl))]
+    interface HDLArcScaleSeekBar
+    {
+        // @property (assign, nonatomic) BOOL isClickable;
+        [Export("isClickable")]
+        bool IsClickable { get; set; }
+
+        // @property (assign, nonatomic) int mProgress;
+        [Export("mProgress")]
+        int MProgress { get; set; }
+
+        // @property (assign, nonatomic) BOOL isProgressTextShow;
+        [Export("isProgressTextShow")]
+        bool IsProgressTextShow { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull mProgressTextColor;
+        [Export("mProgressTextColor", ArgumentSemantic.Strong)]
+        UIColor MProgressTextColor { get; set; }
+
+        // @property (assign, nonatomic) int mProgressTextSize;
+        [Export("mProgressTextSize")]
+        int MProgressTextSize { get; set; }
+
+        // @property (nonatomic, strong) UIColor * _Nonnull pathBackColor;
+        [Export("pathBackColor", ArgumentSemantic.Strong)]
+        UIColor PathBackColor { get; set; }
+
+        [Wrap("WeakMProgressChangedDelegate")]
+        [NullAllowed]
+        HDLSeekBarProgressChangedDelegate MProgressChangedDelegate { get; set; }
+
+        // @property (nonatomic, weak) id<HDLSeekBarProgressChangedDelegate> _Nullable mProgressChangedDelegate;
+        [NullAllowed, Export("mProgressChangedDelegate", ArgumentSemantic.Weak)]
+        NSObject WeakMProgressChangedDelegate { get; set; }
+
+        // -(void)setProgress:(int)mProgress;
+        [Export("setProgress:")]
+        void SetProgress(int mProgress);
+
+        // -(void)setProgressBarUnitSring:(NSString * _Nonnull)mString;
+        [Export("setProgressBarUnitSring:")]
+        void SetProgressBarUnitSring(string mString);
+
+        // -(void)setMinAndMaxValue:(CGFloat)mMinValue mMaxValue:(CGFloat)mMaxValue;
+        [Export("setMinAndMaxValue:mMaxValue:")]
+        void SetMinAndMaxValue(nfloat mMinValue, nfloat mMaxValue);
+
+        // -(void)initWithFrameSeekBar:(CGRect)mCGRect;
+        [Export("initWithFrameSeekBar:")]
+        void InitWithFrameSeekBar(CGRect mCGRect);
+
+        // -(void)setOffline:(BOOL)isOffline;
+        [Export("setOffline:")]
+        void SetOffline(bool isOffline);
+
+        // -(void)setProgressBarColors:(UIColor * _Nonnull)startColor endColor:(UIColor * _Nonnull)endColor;
+        [Export("setProgressBarColors:endColor:")]
+        void SetProgressBarColors(UIColor startColor, UIColor endColor);
+    }
+}
+
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3d_sky_day.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3d_sky_day.data
new file mode 100755
index 0000000..26a3693
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3d_sky_day.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3d_sky_night.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3d_sky_night.data
new file mode 100755
index 0000000..e2d5b91
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3d_sky_night.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3dlandscape.xml b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3dlandscape.xml
new file mode 100755
index 0000000..91b03f4
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3dlandscape.xml
@@ -0,0 +1,101 @@
+<Xml>
+  <XmlVerSion>v1.0</XmlVerSion>
+  <NavigationParam>
+    <!--妯睆:1-->
+    <ScreenDirection>1</ScreenDirection>
+    <!--鐩告満瑙掑害澶氬皯甯т細璺熼殢閬撹矾鏈濆悜锛屽崟浣嶁�滃抚鈥濓紝10甯�/绉�-->
+    <InterpolationFrame>30</InterpolationFrame>
+    <!--鐩告満榛樿浠拌(20-80)-->
+    <DefaultTitle>70</DefaultTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑榛樿鍒濆璺濈(绫�)-->
+    <DefaultCamerah>40</DefaultCamerah>
+    <!--鐩告満瑙掑害鍓嶇疆杞︽爣澶氬皯绫�-->
+    <ForwardDis0>20</ForwardDis0>
+    <!--鐩告満瑙掑害鍓嶇疆杞︽爣澶氬皯绫�(閽堝鎺夊ご)-->
+    <ForwardDis1>10</ForwardDis1>
+
+    <!--璺濈璇煶鐐瑰灏戠背寮�濮嬩笅鍘�,0涓嶆娴嬭闊崇偣-->
+    <DisBeforeSound>100</DisBeforeSound>
+    <!--璧拌繃璇煶鐐瑰灏戠背鍚庡紑濮嬫姮璧�-->
+    <DisAfterSound>100</DisAfterSound>
+    <!--璺彛涓夌淮鎺ㄨ繎浠拌(20-80)-->
+    <SoundTitle>70</SoundTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑鏈�灏忚窛绂�(绫�)-->
+    <SoundCamerah>40</SoundCamerah>
+
+    <!--璺濈Pick鐐瑰灏戠背寮�濮嬩笅鍘�,0涓嶆娴婸ick鐐�-->
+    <DisBeforePick>100</DisBeforePick>
+    <!--璧拌繃Pick鐐瑰灏戠背鍚庡紑濮嬫姮璧�-->
+    <DisAfterPick>100</DisAfterPick>
+    <!--Pick鎺ㄨ繎鏈�灏忎话瑙�(20-80)-->
+    <PickTitle>75</PickTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑鏈�灏忚窛绂�(绫�)-->
+    <PickCamerah>3.0</PickCamerah>
+    <!--璺濈DisBeforePick鍓嶇殑Pick閲囨牱闂撮殧(绫�/甯�)锛屽疄闄呴噰鏍烽棿闅斿啀鍔犱笂杞﹂��-->
+    <PickInterval>4</PickInterval>
+
+    <!--瀹屾垚涓嬪帇鐨勯檺鍒惰窛绂�(绫�)-->
+    <LimitDis>10</LimitDis>
+    
+    <!--杞集绠ご璺濈杞︿綅缃杩滃紑濮嬫樉绀�-->
+    <TrunPicMaxDis>250</TrunPicMaxDis>
+    <!--杞集鎻愮ず鏂囧瓧璺濈杞︿綅缃杩滃紑濮嬩笉鏄剧ず-->
+    <TrunPicMinDis>25</TrunPicMinDis>
+    <!--杞集鎻愮ず鏂囧瓧鐨勫ぇ灏忥紝鍗曚綅"鍍忕礌"-->
+    <TrunPicSize>50</TrunPicSize>
+
+    <!--10绫虫瘮渚嬪昂杞︽爣瀹藉害锛屽崟浣�"绫�"-->
+    <CarWidth>6.5</CarWidth>
+
+    <!--杞﹂亾绾垮锛屽崟浣�"绫�"-->
+    <RoadLineWidth>7.0</RoadLineWidth>
+    <!--杞﹂亾绾块鑹�-->
+    <LineColorRed>0</LineColorRed>
+    <LineColorGreen>174</LineColorGreen>
+    <LineColorBlue>255</LineColorBlue>
+    <LineColorAlpha>204</LineColorAlpha>
+
+    <!--鏂瑰悜绾垮悜鍓嶉暱搴︼紝鍗曚綅"绫�"-->
+    <LineforwardLength>50</LineforwardLength>
+    <!--鏂瑰悜绾垮悜鍚庨暱搴︼紝鍗曚綅"绫�"-->
+    <LinebackLength>60</LinebackLength>
+    <!--鏂瑰悜绾垮搴︼紝鍗曚綅"绫�"-->
+    <LineWidth>7.0</LineWidth>
+    <!--杞﹂亾绾胯瀺鍚�(0-255,0鍏ㄩ��,鏆傛棤鏁�)-->
+    <LineAlpha>100</LineAlpha>
+    
+  </NavigationParam>
+  <AnimateParam>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茬孩鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInRed>29</ColorInRed>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茬豢鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInGreed>30</ColorInGreed>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茶摑鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInBlue>26</ColorInBlue>
+    <!--浜岀淮鍔ㄧ敾甯ф暟-->
+    <FrameIn2d>4</FrameIn2d>
+    <!--涓夌淮鍔ㄧ敾甯ф暟-->
+    <FrameIn3d>6</FrameIn3d>
+
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊绾㈣壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutRed>29</ColorOutRed>
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊缁胯壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutGreed>30</ColorOutGreed>
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊钃濊壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutBlue>26</ColorOutBlue>
+    <!--浜岀淮鍔ㄧ敾甯ф暟-->
+    <FrameOut2d>2</FrameOut2d>
+    <!--涓夌淮鍔ㄧ敾甯ф暟-->
+    <FrameOut3d>3</FrameOut3d>
+
+    <!--2d閫忔槑搴﹀彉鍖栬寖鍥磋捣濮嬪�糩0,255]-->
+    <AlphaBegin2d>60</AlphaBegin2d>
+    <!--2d閫忔槑搴﹀彉鍖栬寖鍥寸粨鏉熷�糩0,255]-->
+    <AlphaEnd2d>120</AlphaEnd2d>
+    <!--閫忔槑搴﹀彉鍖栬寖鍥磋捣濮嬪�糩0,255]-->
+    <AlphaBegin3d>180</AlphaBegin3d>
+    <!--閫忔槑搴﹀彉鍖栬寖鍥寸粨鏉熷�糩0,255]-->
+    <AlphaEnd3d>100</AlphaEnd3d>
+    
+  </AnimateParam> 
+</Xml>
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3dportrait.xml b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3dportrait.xml
new file mode 100755
index 0000000..53a85d0
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/3dportrait.xml
@@ -0,0 +1,101 @@
+<Xml>
+  <XmlVerSion>v1.0</XmlVerSion>
+  <NavigationParam>
+    <!--绔栧睆:0-->
+    <ScreenDirection>0</ScreenDirection>
+    <!--鐩告満瑙掑害澶氬皯甯т細璺熼殢閬撹矾鏈濆悜锛屽崟浣嶁�滃抚鈥濓紝10甯�/绉�-->
+    <InterpolationFrame>30</InterpolationFrame>
+    <!--鐩告満榛樿浠拌(20-80)-->
+    <DefaultTitle>65</DefaultTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑榛樿鍒濆璺濈(绫�)-->
+    <DefaultCamerah>50</DefaultCamerah>
+    <!--鐩告満瑙掑害鍓嶇疆杞︽爣澶氬皯绫�-->
+    <ForwardDis0>20</ForwardDis0>
+    <!--鐩告満瑙掑害鍓嶇疆杞︽爣澶氬皯绫�(閽堝鎺夊ご)-->
+    <ForwardDis1>10</ForwardDis1>
+
+    <!--璺濈璇煶鐐瑰灏戠背寮�濮嬩笅鍘�,0涓嶆娴嬭闊崇偣-->
+    <DisBeforeSound>100</DisBeforeSound>
+    <!--璧拌繃璇煶鐐瑰灏戠背鍚庡紑濮嬫姮璧�-->
+    <DisAfterSound>100</DisAfterSound>
+    <!--璺彛涓夌淮鎺ㄨ繎浠拌(20-80)-->
+    <SoundTitle>65</SoundTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑鏈�灏忚窛绂�(绫�)-->
+    <SoundCamerah>50</SoundCamerah>
+
+    <!--璺濈Pick鐐瑰灏戠背寮�濮嬩笅鍘�,0涓嶆娴婸ick鐐�-->
+    <DisBeforePick>100</DisBeforePick>
+    <!--璧拌繃Pick鐐瑰灏戠背鍚庡紑濮嬫姮璧�-->
+    <DisAfterPick>100</DisAfterPick>
+    <!--Pick鎺ㄨ繎鏈�灏忎话瑙�(20-80)-->
+    <PickTitle>70</PickTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑鏈�灏忚窛绂�(绫�)-->
+    <PickCamerah>3.0</PickCamerah>
+    <!--璺濈DisBeforePick鍓嶇殑Pick閲囨牱闂撮殧(绫�/甯�)锛屽疄闄呴噰鏍烽棿闅斿啀鍔犱笂杞﹂��-->
+    <PickInterval>4</PickInterval>
+
+    <!--瀹屾垚涓嬪帇鐨勯檺鍒惰窛绂�(绫�)-->
+    <LimitDis>10</LimitDis>
+    
+    <!--杞集绠ご璺濈杞︿綅缃杩滃紑濮嬫樉绀�-->
+    <TrunPicMaxDis>250</TrunPicMaxDis>
+    <!--杞集鎻愮ず鏂囧瓧璺濈杞︿綅缃杩滃紑濮嬩笉鏄剧ず-->
+    <TrunPicMinDis>25</TrunPicMinDis>
+    <!--杞集鎻愮ず鏂囧瓧鐨勫ぇ灏忥紝鍗曚綅"鍍忕礌"-->
+    <TrunPicSize>50</TrunPicSize>
+
+    <!--10绫虫瘮渚嬪昂杞︽爣瀹藉害锛屽崟浣�"绫�"-->
+    <CarWidth>6.5</CarWidth>
+
+    <!--杞﹂亾绾垮锛屽崟浣�"绫�"-->
+    <RoadLineWidth>7.0</RoadLineWidth>
+    <!--杞﹂亾绾块鑹�-->
+    <LineColorRed>0</LineColorRed>
+    <LineColorGreen>174</LineColorGreen>
+    <LineColorBlue>255</LineColorBlue>
+    <LineColorAlpha>204</LineColorAlpha>
+
+    <!--鏂瑰悜绾垮悜鍓嶉暱搴︼紝鍗曚綅"绫�"-->
+    <LineforwardLength>60</LineforwardLength>
+    <!--鏂瑰悜绾垮悜鍚庨暱搴︼紝鍗曚綅"绫�"-->
+    <LinebackLength>60</LinebackLength>
+    <!--鏂瑰悜绾垮搴︼紝鍗曚綅"绫�"-->
+    <LineWidth>7.0</LineWidth>
+    <!--杞﹂亾绾胯瀺鍚�(0-255,0鍏ㄩ��,鏆傛棤鏁�)-->
+    <LineAlpha>100</LineAlpha>
+    
+  </NavigationParam>
+  <AnimateParam>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茬孩鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInRed>29</ColorInRed>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茬豢鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInGreed>30</ColorInGreed>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茶摑鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInBlue>26</ColorInBlue>
+    <!--浜岀淮鍔ㄧ敾甯ф暟-->
+    <FrameIn2d>4</FrameIn2d>
+    <!--涓夌淮鍔ㄧ敾甯ф暟-->
+    <FrameIn3d>6</FrameIn3d>
+
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊绾㈣壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutRed>29</ColorOutRed>
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊缁胯壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutGreed>30</ColorOutGreed>
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊钃濊壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutBlue>26</ColorOutBlue>
+    <!--浜岀淮鍔ㄧ敾甯ф暟-->
+    <FrameOut2d>2</FrameOut2d>
+    <!--涓夌淮鍔ㄧ敾甯ф暟-->
+    <FrameOut3d>3</FrameOut3d>
+
+    <!--2d閫忔槑搴﹀彉鍖栬寖鍥磋捣濮嬪�糩0,255]-->
+    <AlphaBegin2d>60</AlphaBegin2d>
+    <!--2d閫忔槑搴﹀彉鍖栬寖鍥寸粨鏉熷�糩0,255]-->
+    <AlphaEnd2d>120</AlphaEnd2d>
+    <!--閫忔槑搴﹀彉鍖栬寖鍥磋捣濮嬪�糩0,255]-->
+    <AlphaBegin3d>180</AlphaBegin3d>
+    <!--閫忔槑搴﹀彉鍖栬寖鍥寸粨鏉熷�糩0,255]-->
+    <AlphaEnd3d>100</AlphaEnd3d>
+    
+  </AnimateParam> 
+</Xml>
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png
new file mode 100755
index 0000000..286afca
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png
new file mode 100755
index 0000000..36fdf86
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png
new file mode 100755
index 0000000..7611299
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png
new file mode 100755
index 0000000..a5dab98
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png
new file mode 100755
index 0000000..a5dab98
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png
new file mode 100755
index 0000000..a5dab98
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png
new file mode 100755
index 0000000..8279257
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png
new file mode 100755
index 0000000..51b2515
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png
new file mode 100755
index 0000000..24a8b87
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png
new file mode 100755
index 0000000..24a8b87
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png
new file mode 100755
index 0000000..7d8b24e
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png
new file mode 100755
index 0000000..2f3f616
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png
new file mode 100755
index 0000000..2f3f616
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png
new file mode 100755
index 0000000..3923e57
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/bktile.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/bktile.data
new file mode 100755
index 0000000..5b91891
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/bktile.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/bktile_n.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/bktile_n.data
new file mode 100755
index 0000000..2db543c
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/bktile_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/building.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/building.data
new file mode 100755
index 0000000..28530a8
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/building.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data
new file mode 100755
index 0000000..5ed92ea
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data
@@ -0,0 +1 @@
+{"data":[{"mapmode":0,"maptime":0,"mapstate":0,"channel":0,"style":"0","stylefile":"style_1_10","iconsfile":"icons_1_10,icons_4_10"},{"mapmode":0,"maptime":0,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":0,"maptime":0,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":4,"channel":0,"style":"0","stylefile":"style_4_10","iconsfile":"icons_1_10"},{"mapmode":0,"maptime":0,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":0,"maptime":0,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":0,"channel":0,"style":"0","stylefile":"style_1_10","iconsfile":"icons_1_10,icons_4_10"},{"mapmode":0,"maptime":1,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":0,"maptime":1,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":4,"channel":0,"style":"0","stylefile":"style_5_10","iconsfile":"icons_2_10"},{"mapmode":0,"maptime":1,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":0,"maptime":1,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":0,"channel":0,"style":"0","stylefile":"style_3_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":0,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":0,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":4,"channel":0,"style":"0","stylefile":"style_4_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":0,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":1,"maptime":0,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":0,"channel":0,"style":"0","stylefile":"style_3_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":1,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":1,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":4,"channel":0,"style":"0","stylefile":"style_5_10","iconsfile":"icons_2_10"},{"mapmode":1,"maptime":1,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":1,"maptime":1,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":0,"channel":0,"style":"0","stylefile":"style_6_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":2,"maptime":0,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":4,"channel":0,"style":"0","stylefile":"style_4_10","iconsfile":"icons_1_10"},{"mapmode":2,"maptime":0,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":2,"maptime":0,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":0,"channel":0,"style":"0","stylefile":"style_6_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":2,"maptime":1,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":4,"channel":0,"style":"0","stylefile":"style_5_10","iconsfile":"icons_2_10"},{"mapmode":2,"maptime":1,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":2,"maptime":1,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"}]}
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data
new file mode 100755
index 0000000..eab962c
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data
@@ -0,0 +1 @@
+{"data":[{"mapmode":0,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":0,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":1,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":1,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":2,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":2,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"}]}
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash.data
new file mode 100755
index 0000000..64adba6
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash_cd.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash_cd.data
new file mode 100755
index 0000000..6c1c1b5
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash_cd.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash_tq.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash_tq.data
new file mode 100755
index 0000000..987ba3f
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/dash_tq.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data
new file mode 100755
index 0000000..387c622
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data
new file mode 100755
index 0000000..0e50f62
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data
new file mode 100755
index 0000000..7902c8c
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data
new file mode 100755
index 0000000..7531232
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data
new file mode 100755
index 0000000..b30bd37
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data
new file mode 100755
index 0000000..63aa754
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data
new file mode 100755
index 0000000..9cca65f
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data
new file mode 100755
index 0000000..88c74e6
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data
new file mode 100755
index 0000000..e49b33e
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data
new file mode 100755
index 0000000..314ca6f
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data
new file mode 100755
index 0000000..e763ea0
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data
new file mode 100755
index 0000000..0e50f62
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data
new file mode 100755
index 0000000..7da5132
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/lineround.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/lineround.data
new file mode 100755
index 0000000..25bc651
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/lineround.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/roadarrow.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/roadarrow.data
new file mode 100755
index 0000000..cdfb60b
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/roadarrow.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/search_scenic_icon.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/search_scenic_icon.data
new file mode 100755
index 0000000..2bfb5a8
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/search_scenic_icon.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data
new file mode 100755
index 0000000..9c24d46
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data
new file mode 100755
index 0000000..8e95aed
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data
new file mode 100755
index 0000000..e403976
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data
new file mode 100755
index 0000000..8eff55a
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data
new file mode 100755
index 0000000..20e6989
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data
new file mode 100755
index 0000000..6ce6320
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data
new file mode 100755
index 0000000..2c8999f
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data
new file mode 100755
index 0000000..3bbfeca
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data
new file mode 100755
index 0000000..a1db97c
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data
new file mode 100755
index 0000000..3ca3aae
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data
new file mode 100755
index 0000000..02e8c06
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data
new file mode 100755
index 0000000..dcf6c1d
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data
new file mode 100755
index 0000000..fef173b
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data
new file mode 100755
index 0000000..f7511b8
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data
new file mode 100755
index 0000000..8921ed8
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data
new file mode 100755
index 0000000..c127bda
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data
new file mode 100755
index 0000000..54eaf52
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data
new file mode 100755
index 0000000..f0103dc
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl.data
new file mode 100755
index 0000000..c696bfa
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl_l.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl_l.data
new file mode 100755
index 0000000..df71c96
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl_n.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl_n.data
new file mode 100755
index 0000000..32a08fa
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tbl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl.data
new file mode 100755
index 0000000..9a25ad2
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl_l.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl_l.data
new file mode 100755
index 0000000..cb8fee6
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl_n.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl_n.data
new file mode 100755
index 0000000..0250eb7
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tgl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data
new file mode 100755
index 0000000..127d135
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data
new file mode 100755
index 0000000..b4fd924
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_null.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_null.data
new file mode 100755
index 0000000..d0f2a27
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_null.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data
new file mode 100755
index 0000000..f15b240
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data
new file mode 100755
index 0000000..0861208
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl.data
new file mode 100755
index 0000000..ace95da
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl_l.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl_l.data
new file mode 100755
index 0000000..70f4109
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl_n.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl_n.data
new file mode 100755
index 0000000..0e84610
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tnl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl.data
new file mode 100755
index 0000000..8b79d7c
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl_l.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl_l.data
new file mode 100755
index 0000000..1c9d409
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl_n.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl_n.data
new file mode 100755
index 0000000..6dca977
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/trl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl.data
new file mode 100755
index 0000000..f1d568f
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl_l.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl_l.data
new file mode 100755
index 0000000..cc56901
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl_n.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl_n.data
new file mode 100755
index 0000000..77d9df6
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/tyl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/waterline.data b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/waterline.data
new file mode 100755
index 0000000..9bf5465
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/AMap3D.bundle/waterline.data
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/Bundle3D.plist b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/Bundle3D.plist
new file mode 100644
index 0000000..a007fbd
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/Bundle3D.plist
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>璇ユ枃浠跺姛鑳芥殏鍋滀娇鐢�</key>
+	<string></string>
+	<key>Style</key>
+	<dict>
+		<key>style-day</key>
+		<string>style_1_7_1445219169</string>
+		<key>style-night</key>
+		<string>style_5_7_1445391719</string>
+		<key>style-satellite</key>
+		<string>style_3_7_1445827513</string>
+		<key>style-navicar-day</key>
+		<string>style_4_7_1445391691</string>
+		<key>style-navicar-night</key>
+		<string>style_5_7_1445391719</string>
+		<key>style-bus</key>
+		<string>style_6_7_1445325996</string>
+		<key>style-indoor</key>
+		<string>style_50_7_1445670996</string>
+	</dict>
+	<key>Texture</key>
+	<dict>
+		<key>icon-day</key>
+		<string>icons_1_7_1444880368</string>
+		<key>icon-night</key>
+		<string>icons_2_7_1445580283</string>
+		<key>icon-bus</key>
+		<string>icons_3_7_1444880372</string>
+		<key>icon-indoor</key>
+		<string>icons_50_7_1444880375</string>
+		<key>background-day</key>
+		<string>bktile_1</string>
+		<key>background-night</key>
+		<string>bktile_2</string>
+		<key>roadarrow</key>
+		<string>roadarrow</string>
+		<key>lineround</key>
+		<string>lineround</string>
+		<key>dash-railway</key>
+		<string>dash</string>
+		<key>dash-overpass</key>
+		<string>dash_tq</string>
+		<key>dash-longandshort</key>
+		<string>dash_cd</string>
+		<key>tmc-green-day</key>
+		<string>tgl</string>
+		<key>tmc-green-night</key>
+		<string>tgl_n</string>
+		<key>tmc-yellow-day</key>
+		<string>tyl</string>
+		<key>tmc-yellow-night</key>
+		<string>tyl_n</string>
+		<key>tmc-red-day</key>
+		<string>trl</string>
+		<key>tmc-red-night</key>
+		<string>trl_n</string>
+		<key>tmc-blackred-day</key>
+		<string>tbl</string>
+		<key>tmc-blackred-night</key>
+		<string>tbl_n</string>
+		<key>tmc-gray-day</key>
+		<string>tnl</string>
+		<key>tmc-gray-night</key>
+		<string>tnl_n</string>
+		<key>sky-day</key>
+		<string>3d_sky_1</string>
+		<key>sky-night</key>
+		<string>3d_sky_2</string>
+	</dict>
+</dict>
+</plist>
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/arrow_line_inner.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/arrow_line_inner.png
new file mode 100644
index 0000000..f08c371
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/arrow_line_inner.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/calloutArrowMask.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/calloutArrowMask.png
new file mode 100644
index 0000000..a2a88f4
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/calloutArrowMask.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/calloutArrowMask@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/calloutArrowMask@2x.png
new file mode 100644
index 0000000..297d1a4
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/calloutArrowMask@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin.png
new file mode 100755
index 0000000..20d0424
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin@2x.png
new file mode 100755
index 0000000..54d0460
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin@3x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin@3x.png
new file mode 100755
index 0000000..da2fbf0
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift.png
new file mode 100755
index 0000000..b9bbe58
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift@2x.png
new file mode 100755
index 0000000..9b7e052
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift@3x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift@3x.png
new file mode 100755
index 0000000..69a5810
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/greenPin_lift@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineDashTexture.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineDashTexture.png
new file mode 100644
index 0000000..ec2166a
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineDashTexture.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineDashTextureThin.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineDashTextureThin.png
new file mode 100644
index 0000000..b3fd86d
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineDashTextureThin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineTexture.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineTexture.png
new file mode 100755
index 0000000..e43156a
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineTexture.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineTextureThin.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineTextureThin.png
new file mode 100644
index 0000000..f3aca31
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/lineTextureThin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/marker_blue.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/marker_blue.png
new file mode 100644
index 0000000..062dda4
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/marker_blue.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/marker_blue@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/marker_blue@2x.png
new file mode 100644
index 0000000..b2269d2
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/marker_blue@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow.png
new file mode 100755
index 0000000..4f85ff1
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow@2x.png
new file mode 100755
index 0000000..8acfc67
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow@3x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow@3x.png
new file mode 100755
index 0000000..fc16658
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/pin_shadow@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin.png
new file mode 100755
index 0000000..ffe3892
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin@2x.png
new file mode 100755
index 0000000..4a08cf2
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin@3x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin@3x.png
new file mode 100755
index 0000000..605de36
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift.png
new file mode 100755
index 0000000..d269981
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift@2x.png
new file mode 100755
index 0000000..1ff181c
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift@3x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift@3x.png
new file mode 100755
index 0000000..10fd539
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/purplePin_lift@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin.png
new file mode 100755
index 0000000..b7c701e
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin@2x.png
new file mode 100755
index 0000000..0882272
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin@3x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin@3x.png
new file mode 100755
index 0000000..ed85e11
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift.png
new file mode 100755
index 0000000..2ce7563
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift@2x.png
new file mode 100755
index 0000000..105070b
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift@3x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift@3x.png
new file mode 100755
index 0000000..04e9e34
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/redPin_lift@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_.png
new file mode 100644
index 0000000..b542248
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_@2x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_@2x.png
new file mode 100644
index 0000000..b542248
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_@3x.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_@3x.png
new file mode 100644
index 0000000..684d752
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/select_@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_blue.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_blue.png
new file mode 100755
index 0000000..4bbcf91
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_blue.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_darkred.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_darkred.png
new file mode 100755
index 0000000..b59cd11
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_darkred.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_gray.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_gray.png
new file mode 100755
index 0000000..83c24ac
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_gray.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_green.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_green.png
new file mode 100755
index 0000000..63898b3
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_green.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_red.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_red.png
new file mode 100755
index 0000000..f2fe6f1
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_red.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_yellow.png b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_yellow.png
new file mode 100755
index 0000000..9adf02a
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/images/traffic_texture_yellow.png
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/offline/offlinePackage.plist b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/offline/offlinePackage.plist
new file mode 100644
index 0000000..d72e6bd
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMap.bundle/offline/offlinePackage.plist
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMapFoundationKit.a b/Shared.IOS.TBL/Library/GDMapKit/AMapFoundationKit.a
new file mode 100644
index 0000000..6734ca5
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMapFoundationKit.a
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/AMapLocationKit.a b/Shared.IOS.TBL/Library/GDMapKit/AMapLocationKit.a
new file mode 100644
index 0000000..cd64562
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/AMapLocationKit.a
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/MAMapKit.a b/Shared.IOS.TBL/Library/GDMapKit/MAMapKit.a
new file mode 100644
index 0000000..c07fd5b
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/MAMapKit.a
Binary files differ
diff --git a/Shared.IOS.TBL/Library/GDMapKit/libGDMapKit.a b/Shared.IOS.TBL/Library/GDMapKit/libGDMapKit.a
new file mode 100644
index 0000000..0bd9ae1
--- /dev/null
+++ b/Shared.IOS.TBL/Library/GDMapKit/libGDMapKit.a
Binary files differ
diff --git a/Shared.IOS.TBL/Library/libHDLWidgetLibrary.a b/Shared.IOS.TBL/Library/libHDLWidgetLibrary.a
new file mode 100644
index 0000000..786fe94
--- /dev/null
+++ b/Shared.IOS.TBL/Library/libHDLWidgetLibrary.a
Binary files differ
diff --git a/Shared.IOS.TBL/Properties/AssemblyInfo.cs b/Shared.IOS.TBL/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..c6c114f
--- /dev/null
+++ b/Shared.IOS.TBL/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+
+using Foundation;
+
+// This attribute allows you to mark your assemblies as 鈥渟afe to link鈥�.
+// When the attribute is present, the linker鈥攊f enabled鈥攚ill process the assembly
+// even if you鈥檙e using the 鈥淟ink SDK assemblies only鈥� option, which is the default for device builds.
+
+[assembly: LinkerSafe]
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("Shared.IOS.TBL")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Shared.IOS.TBL")]
+[assembly: AssemblyCopyright("Copyright 漏  2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+//[assembly: AssemblyVersion("1.0.1")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyVersion("1.0.2.0")]
+[assembly: AssemblyFileVersion("1.2.0.0")]
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_day.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_day.data
new file mode 100755
index 0000000..26a3693
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_day.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_night.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_night.data
new file mode 100755
index 0000000..e2d5b91
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3d_sky_night.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dlandscape.xml b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dlandscape.xml
new file mode 100755
index 0000000..91b03f4
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dlandscape.xml
@@ -0,0 +1,101 @@
+<Xml>
+  <XmlVerSion>v1.0</XmlVerSion>
+  <NavigationParam>
+    <!--妯睆:1-->
+    <ScreenDirection>1</ScreenDirection>
+    <!--鐩告満瑙掑害澶氬皯甯т細璺熼殢閬撹矾鏈濆悜锛屽崟浣嶁�滃抚鈥濓紝10甯�/绉�-->
+    <InterpolationFrame>30</InterpolationFrame>
+    <!--鐩告満榛樿浠拌(20-80)-->
+    <DefaultTitle>70</DefaultTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑榛樿鍒濆璺濈(绫�)-->
+    <DefaultCamerah>40</DefaultCamerah>
+    <!--鐩告満瑙掑害鍓嶇疆杞︽爣澶氬皯绫�-->
+    <ForwardDis0>20</ForwardDis0>
+    <!--鐩告満瑙掑害鍓嶇疆杞︽爣澶氬皯绫�(閽堝鎺夊ご)-->
+    <ForwardDis1>10</ForwardDis1>
+
+    <!--璺濈璇煶鐐瑰灏戠背寮�濮嬩笅鍘�,0涓嶆娴嬭闊崇偣-->
+    <DisBeforeSound>100</DisBeforeSound>
+    <!--璧拌繃璇煶鐐瑰灏戠背鍚庡紑濮嬫姮璧�-->
+    <DisAfterSound>100</DisAfterSound>
+    <!--璺彛涓夌淮鎺ㄨ繎浠拌(20-80)-->
+    <SoundTitle>70</SoundTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑鏈�灏忚窛绂�(绫�)-->
+    <SoundCamerah>40</SoundCamerah>
+
+    <!--璺濈Pick鐐瑰灏戠背寮�濮嬩笅鍘�,0涓嶆娴婸ick鐐�-->
+    <DisBeforePick>100</DisBeforePick>
+    <!--璧拌繃Pick鐐瑰灏戠背鍚庡紑濮嬫姮璧�-->
+    <DisAfterPick>100</DisAfterPick>
+    <!--Pick鎺ㄨ繎鏈�灏忎话瑙�(20-80)-->
+    <PickTitle>75</PickTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑鏈�灏忚窛绂�(绫�)-->
+    <PickCamerah>3.0</PickCamerah>
+    <!--璺濈DisBeforePick鍓嶇殑Pick閲囨牱闂撮殧(绫�/甯�)锛屽疄闄呴噰鏍烽棿闅斿啀鍔犱笂杞﹂��-->
+    <PickInterval>4</PickInterval>
+
+    <!--瀹屾垚涓嬪帇鐨勯檺鍒惰窛绂�(绫�)-->
+    <LimitDis>10</LimitDis>
+    
+    <!--杞集绠ご璺濈杞︿綅缃杩滃紑濮嬫樉绀�-->
+    <TrunPicMaxDis>250</TrunPicMaxDis>
+    <!--杞集鎻愮ず鏂囧瓧璺濈杞︿綅缃杩滃紑濮嬩笉鏄剧ず-->
+    <TrunPicMinDis>25</TrunPicMinDis>
+    <!--杞集鎻愮ず鏂囧瓧鐨勫ぇ灏忥紝鍗曚綅"鍍忕礌"-->
+    <TrunPicSize>50</TrunPicSize>
+
+    <!--10绫虫瘮渚嬪昂杞︽爣瀹藉害锛屽崟浣�"绫�"-->
+    <CarWidth>6.5</CarWidth>
+
+    <!--杞﹂亾绾垮锛屽崟浣�"绫�"-->
+    <RoadLineWidth>7.0</RoadLineWidth>
+    <!--杞﹂亾绾块鑹�-->
+    <LineColorRed>0</LineColorRed>
+    <LineColorGreen>174</LineColorGreen>
+    <LineColorBlue>255</LineColorBlue>
+    <LineColorAlpha>204</LineColorAlpha>
+
+    <!--鏂瑰悜绾垮悜鍓嶉暱搴︼紝鍗曚綅"绫�"-->
+    <LineforwardLength>50</LineforwardLength>
+    <!--鏂瑰悜绾垮悜鍚庨暱搴︼紝鍗曚綅"绫�"-->
+    <LinebackLength>60</LinebackLength>
+    <!--鏂瑰悜绾垮搴︼紝鍗曚綅"绫�"-->
+    <LineWidth>7.0</LineWidth>
+    <!--杞﹂亾绾胯瀺鍚�(0-255,0鍏ㄩ��,鏆傛棤鏁�)-->
+    <LineAlpha>100</LineAlpha>
+    
+  </NavigationParam>
+  <AnimateParam>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茬孩鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInRed>29</ColorInRed>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茬豢鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInGreed>30</ColorInGreed>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茶摑鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInBlue>26</ColorInBlue>
+    <!--浜岀淮鍔ㄧ敾甯ф暟-->
+    <FrameIn2d>4</FrameIn2d>
+    <!--涓夌淮鍔ㄧ敾甯ф暟-->
+    <FrameIn3d>6</FrameIn3d>
+
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊绾㈣壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutRed>29</ColorOutRed>
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊缁胯壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutGreed>30</ColorOutGreed>
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊钃濊壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutBlue>26</ColorOutBlue>
+    <!--浜岀淮鍔ㄧ敾甯ф暟-->
+    <FrameOut2d>2</FrameOut2d>
+    <!--涓夌淮鍔ㄧ敾甯ф暟-->
+    <FrameOut3d>3</FrameOut3d>
+
+    <!--2d閫忔槑搴﹀彉鍖栬寖鍥磋捣濮嬪�糩0,255]-->
+    <AlphaBegin2d>60</AlphaBegin2d>
+    <!--2d閫忔槑搴﹀彉鍖栬寖鍥寸粨鏉熷�糩0,255]-->
+    <AlphaEnd2d>120</AlphaEnd2d>
+    <!--閫忔槑搴﹀彉鍖栬寖鍥磋捣濮嬪�糩0,255]-->
+    <AlphaBegin3d>180</AlphaBegin3d>
+    <!--閫忔槑搴﹀彉鍖栬寖鍥寸粨鏉熷�糩0,255]-->
+    <AlphaEnd3d>100</AlphaEnd3d>
+    
+  </AnimateParam> 
+</Xml>
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dportrait.xml b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dportrait.xml
new file mode 100755
index 0000000..53a85d0
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/3dportrait.xml
@@ -0,0 +1,101 @@
+<Xml>
+  <XmlVerSion>v1.0</XmlVerSion>
+  <NavigationParam>
+    <!--绔栧睆:0-->
+    <ScreenDirection>0</ScreenDirection>
+    <!--鐩告満瑙掑害澶氬皯甯т細璺熼殢閬撹矾鏈濆悜锛屽崟浣嶁�滃抚鈥濓紝10甯�/绉�-->
+    <InterpolationFrame>30</InterpolationFrame>
+    <!--鐩告満榛樿浠拌(20-80)-->
+    <DefaultTitle>65</DefaultTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑榛樿鍒濆璺濈(绫�)-->
+    <DefaultCamerah>50</DefaultCamerah>
+    <!--鐩告満瑙掑害鍓嶇疆杞︽爣澶氬皯绫�-->
+    <ForwardDis0>20</ForwardDis0>
+    <!--鐩告満瑙掑害鍓嶇疆杞︽爣澶氬皯绫�(閽堝鎺夊ご)-->
+    <ForwardDis1>10</ForwardDis1>
+
+    <!--璺濈璇煶鐐瑰灏戠背寮�濮嬩笅鍘�,0涓嶆娴嬭闊崇偣-->
+    <DisBeforeSound>100</DisBeforeSound>
+    <!--璧拌繃璇煶鐐瑰灏戠背鍚庡紑濮嬫姮璧�-->
+    <DisAfterSound>100</DisAfterSound>
+    <!--璺彛涓夌淮鎺ㄨ繎浠拌(20-80)-->
+    <SoundTitle>65</SoundTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑鏈�灏忚窛绂�(绫�)-->
+    <SoundCamerah>50</SoundCamerah>
+
+    <!--璺濈Pick鐐瑰灏戠背寮�濮嬩笅鍘�,0涓嶆娴婸ick鐐�-->
+    <DisBeforePick>100</DisBeforePick>
+    <!--璧拌繃Pick鐐瑰灏戠背鍚庡紑濮嬫姮璧�-->
+    <DisAfterPick>100</DisAfterPick>
+    <!--Pick鎺ㄨ繎鏈�灏忎话瑙�(20-80)-->
+    <PickTitle>70</PickTitle>
+    <!--鐩告満鎺ㄨ繎鍚庣殑鍒板湴闈㈢殑鏈�灏忚窛绂�(绫�)-->
+    <PickCamerah>3.0</PickCamerah>
+    <!--璺濈DisBeforePick鍓嶇殑Pick閲囨牱闂撮殧(绫�/甯�)锛屽疄闄呴噰鏍烽棿闅斿啀鍔犱笂杞﹂��-->
+    <PickInterval>4</PickInterval>
+
+    <!--瀹屾垚涓嬪帇鐨勯檺鍒惰窛绂�(绫�)-->
+    <LimitDis>10</LimitDis>
+    
+    <!--杞集绠ご璺濈杞︿綅缃杩滃紑濮嬫樉绀�-->
+    <TrunPicMaxDis>250</TrunPicMaxDis>
+    <!--杞集鎻愮ず鏂囧瓧璺濈杞︿綅缃杩滃紑濮嬩笉鏄剧ず-->
+    <TrunPicMinDis>25</TrunPicMinDis>
+    <!--杞集鎻愮ず鏂囧瓧鐨勫ぇ灏忥紝鍗曚綅"鍍忕礌"-->
+    <TrunPicSize>50</TrunPicSize>
+
+    <!--10绫虫瘮渚嬪昂杞︽爣瀹藉害锛屽崟浣�"绫�"-->
+    <CarWidth>6.5</CarWidth>
+
+    <!--杞﹂亾绾垮锛屽崟浣�"绫�"-->
+    <RoadLineWidth>7.0</RoadLineWidth>
+    <!--杞﹂亾绾块鑹�-->
+    <LineColorRed>0</LineColorRed>
+    <LineColorGreen>174</LineColorGreen>
+    <LineColorBlue>255</LineColorBlue>
+    <LineColorAlpha>204</LineColorAlpha>
+
+    <!--鏂瑰悜绾垮悜鍓嶉暱搴︼紝鍗曚綅"绫�"-->
+    <LineforwardLength>60</LineforwardLength>
+    <!--鏂瑰悜绾垮悜鍚庨暱搴︼紝鍗曚綅"绫�"-->
+    <LinebackLength>60</LinebackLength>
+    <!--鏂瑰悜绾垮搴︼紝鍗曚綅"绫�"-->
+    <LineWidth>7.0</LineWidth>
+    <!--杞﹂亾绾胯瀺鍚�(0-255,0鍏ㄩ��,鏆傛棤鏁�)-->
+    <LineAlpha>100</LineAlpha>
+    
+  </NavigationParam>
+  <AnimateParam>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茬孩鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInRed>29</ColorInRed>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茬豢鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInGreed>30</ColorInGreed>
+    <!--浜岀淮杩涘叆涓夌淮锛岃挋鏉块鑹茶摑鑹插垎閲忥蓟0锛�255锛�-->
+    <ColorInBlue>26</ColorInBlue>
+    <!--浜岀淮鍔ㄧ敾甯ф暟-->
+    <FrameIn2d>4</FrameIn2d>
+    <!--涓夌淮鍔ㄧ敾甯ф暟-->
+    <FrameIn3d>6</FrameIn3d>
+
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊绾㈣壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutRed>29</ColorOutRed>
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊缁胯壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutGreed>30</ColorOutGreed>
+    <!--涓夌淮閫�鍑轰簩缁达紝钂欐澘棰滆壊钃濊壊鍒嗛噺锛�0锛�255锛�-->
+    <ColorOutBlue>26</ColorOutBlue>
+    <!--浜岀淮鍔ㄧ敾甯ф暟-->
+    <FrameOut2d>2</FrameOut2d>
+    <!--涓夌淮鍔ㄧ敾甯ф暟-->
+    <FrameOut3d>3</FrameOut3d>
+
+    <!--2d閫忔槑搴﹀彉鍖栬寖鍥磋捣濮嬪�糩0,255]-->
+    <AlphaBegin2d>60</AlphaBegin2d>
+    <!--2d閫忔槑搴﹀彉鍖栬寖鍥寸粨鏉熷�糩0,255]-->
+    <AlphaEnd2d>120</AlphaEnd2d>
+    <!--閫忔槑搴﹀彉鍖栬寖鍥磋捣濮嬪�糩0,255]-->
+    <AlphaBegin3d>180</AlphaBegin3d>
+    <!--閫忔槑搴﹀彉鍖栬寖鍥寸粨鏉熷�糩0,255]-->
+    <AlphaEnd3d>100</AlphaEnd3d>
+    
+  </AnimateParam> 
+</Xml>
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png
new file mode 100755
index 0000000..286afca
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png
new file mode 100755
index 0000000..36fdf86
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png
new file mode 100755
index 0000000..7611299
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/cross_bg_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png
new file mode 100755
index 0000000..a5dab98
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png
new file mode 100755
index 0000000..a5dab98
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png
new file mode 100755
index 0000000..a5dab98
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/d_yellow_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png
new file mode 100755
index 0000000..8279257
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png
new file mode 100755
index 0000000..51b2515
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/grass_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png
new file mode 100755
index 0000000..24a8b87
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png
new file mode 100755
index 0000000..24a8b87
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png
new file mode 100755
index 0000000..7d8b24e
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/road_bottom_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png
new file mode 100755
index 0000000..2f3f616
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png
new file mode 100755
index 0000000..2f3f616
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_day.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png
new file mode 100755
index 0000000..3923e57
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/VM3DRes/roadbk_main_night.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile.data
new file mode 100755
index 0000000..5b91891
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile_n.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile_n.data
new file mode 100755
index 0000000..2db543c
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/bktile_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/building.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/building.data
new file mode 100755
index 0000000..28530a8
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/building.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data
new file mode 100755
index 0000000..5ed92ea
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_1_1_1470722888.data
@@ -0,0 +1 @@
+{"data":[{"mapmode":0,"maptime":0,"mapstate":0,"channel":0,"style":"0","stylefile":"style_1_10","iconsfile":"icons_1_10,icons_4_10"},{"mapmode":0,"maptime":0,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":0,"maptime":0,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":4,"channel":0,"style":"0","stylefile":"style_4_10","iconsfile":"icons_1_10"},{"mapmode":0,"maptime":0,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":0,"maptime":0,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":0,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":0,"channel":0,"style":"0","stylefile":"style_1_10","iconsfile":"icons_1_10,icons_4_10"},{"mapmode":0,"maptime":1,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":0,"maptime":1,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":4,"channel":0,"style":"0","stylefile":"style_5_10","iconsfile":"icons_2_10"},{"mapmode":0,"maptime":1,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":0,"maptime":1,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":0,"maptime":1,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":0,"channel":0,"style":"0","stylefile":"style_3_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":0,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":0,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":4,"channel":0,"style":"0","stylefile":"style_4_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":0,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":1,"maptime":0,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":0,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":0,"channel":0,"style":"0","stylefile":"style_3_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":1,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":1,"maptime":1,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":4,"channel":0,"style":"0","stylefile":"style_5_10","iconsfile":"icons_2_10"},{"mapmode":1,"maptime":1,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":1,"maptime":1,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":1,"maptime":1,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":0,"channel":0,"style":"0","stylefile":"style_6_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":2,"maptime":0,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":4,"channel":0,"style":"0","stylefile":"style_4_10","iconsfile":"icons_1_10"},{"mapmode":2,"maptime":0,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":2,"maptime":0,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":0,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":0,"channel":0,"style":"0","stylefile":"style_6_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1,"channel":0,"style":"0","stylefile":"style_8_10","iconsfile":"icons_1_10"},{"mapmode":2,"maptime":1,"mapstate":2,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":3,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":4,"channel":0,"style":"0","stylefile":"style_5_10","iconsfile":"icons_2_10"},{"mapmode":2,"maptime":1,"mapstate":5,"channel":0,"style":"0","stylefile":"style_13_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_14_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":7,"channel":0,"style":"0","stylefile":"style_10_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":8,"channel":0,"style":"0","stylefile":"style_100_10","iconsfile":"icons_6_10,icons_4_10"},{"mapmode":2,"maptime":1,"mapstate":10,"channel":0,"style":"0","stylefile":"style_15_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1001,"channel":0,"style":"0","stylefile":"style_30_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1002,"channel":0,"style":"0","stylefile":"style_31_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1003,"channel":0,"style":"0","stylefile":"style_32_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1004,"channel":0,"style":"0","stylefile":"style_33_10","iconsfile":"icons_3_10"},{"mapmode":2,"maptime":1,"mapstate":1005,"channel":0,"style":"0","stylefile":"style_34_10","iconsfile":"icons_3_10"}]}
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data
new file mode 100755
index 0000000..eab962c
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/config_2_1_1470363686.data
@@ -0,0 +1 @@
+{"data":[{"mapmode":0,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":0,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":1,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":1,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":2,"maptime":0,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"},{"mapmode":2,"maptime":1,"mapstate":6,"channel":0,"style":"0","stylefile":"style_17_10","iconsfile":"0"}]}
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash.data
new file mode 100755
index 0000000..64adba6
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_cd.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_cd.data
new file mode 100755
index 0000000..6c1c1b5
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_cd.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_tq.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_tq.data
new file mode 100755
index 0000000..987ba3f
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/dash_tq.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data
new file mode 100755
index 0000000..387c622
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_11_12_1488521704.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data
new file mode 100755
index 0000000..0e50f62
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_1_12_1498048291.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data
new file mode 100755
index 0000000..7902c8c
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_26_10_1476066932.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data
new file mode 100755
index 0000000..7531232
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_27_10_1475031813.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data
new file mode 100755
index 0000000..b30bd37
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_2_12_1498048312.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data
new file mode 100755
index 0000000..63aa754
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_3_12_1498048330.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data
new file mode 100755
index 0000000..9cca65f
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_4_12_1488521409.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data
new file mode 100755
index 0000000..88c74e6
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_50_10_1470645645.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data
new file mode 100755
index 0000000..e49b33e
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_5_12_1488354051.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data
new file mode 100755
index 0000000..314ca6f
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_6_12_1497253591.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data
new file mode 100755
index 0000000..e763ea0
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_7_12_1497253551.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data
new file mode 100755
index 0000000..0e50f62
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_8_12_1498048348.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data
new file mode 100755
index 0000000..7da5132
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/icons_9_10_1476066932.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/lineround.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/lineround.data
new file mode 100755
index 0000000..25bc651
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/lineround.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/roadarrow.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/roadarrow.data
new file mode 100755
index 0000000..cdfb60b
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/roadarrow.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/search_scenic_icon.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/search_scenic_icon.data
new file mode 100755
index 0000000..2bfb5a8
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/search_scenic_icon.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data
new file mode 100755
index 0000000..9c24d46
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_100_10_1497254453.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data
new file mode 100755
index 0000000..8e95aed
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_10_10_1472718686.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data
new file mode 100755
index 0000000..e403976
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_12_10_1467006104.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data
new file mode 100755
index 0000000..8eff55a
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_13_10_1497252546.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data
new file mode 100755
index 0000000..20e6989
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_14_10_1497252572.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data
new file mode 100755
index 0000000..6ce6320
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_15_10_1497583771.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data
new file mode 100755
index 0000000..2c8999f
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_17_10_1488360312.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data
new file mode 100755
index 0000000..3bbfeca
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_1_10_1498047646.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data
new file mode 100755
index 0000000..a1db97c
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_30_10_1498047712.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data
new file mode 100755
index 0000000..3ca3aae
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_31_10_1498047749.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data
new file mode 100755
index 0000000..02e8c06
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_32_10_1498047781.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data
new file mode 100755
index 0000000..dcf6c1d
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_33_10_1498047815.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data
new file mode 100755
index 0000000..fef173b
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_3_10_1497252336.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data
new file mode 100755
index 0000000..f7511b8
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_4_10_1498463093.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data
new file mode 100755
index 0000000..8921ed8
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_50_10_1470645645.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data
new file mode 100755
index 0000000..c127bda
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_5_10_1498463124.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data
new file mode 100755
index 0000000..54eaf52
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_6_10_1497252523.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data
new file mode 100755
index 0000000..f0103dc
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/style_8_10_1497252659.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl.data
new file mode 100755
index 0000000..c696bfa
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_l.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_l.data
new file mode 100755
index 0000000..df71c96
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_n.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_n.data
new file mode 100755
index 0000000..32a08fa
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tbl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl.data
new file mode 100755
index 0000000..9a25ad2
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_l.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_l.data
new file mode 100755
index 0000000..cb8fee6
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_n.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_n.data
new file mode 100755
index 0000000..0250eb7
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tgl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data
new file mode 100755
index 0000000..127d135
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_amble.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data
new file mode 100755
index 0000000..b4fd924
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_congestion.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_null.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_null.data
new file mode 100755
index 0000000..d0f2a27
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_null.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data
new file mode 100755
index 0000000..f15b240
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_severe_congestion.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data
new file mode 100755
index 0000000..0861208
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tmc_blind_smoothly.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl.data
new file mode 100755
index 0000000..ace95da
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_l.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_l.data
new file mode 100755
index 0000000..70f4109
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_n.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_n.data
new file mode 100755
index 0000000..0e84610
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tnl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl.data
new file mode 100755
index 0000000..8b79d7c
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_l.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_l.data
new file mode 100755
index 0000000..1c9d409
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_n.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_n.data
new file mode 100755
index 0000000..6dca977
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/trl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl.data
new file mode 100755
index 0000000..f1d568f
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_l.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_l.data
new file mode 100755
index 0000000..cc56901
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_l.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_n.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_n.data
new file mode 100755
index 0000000..77d9df6
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/tyl_n.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/waterline.data b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/waterline.data
new file mode 100755
index 0000000..9bf5465
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/AMap3D.bundle/waterline.data
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/Bundle3D.plist b/Shared.IOS.TBL/Resources/AMap.bundle/Bundle3D.plist
new file mode 100644
index 0000000..a007fbd
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/Bundle3D.plist
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>璇ユ枃浠跺姛鑳芥殏鍋滀娇鐢�</key>
+	<string></string>
+	<key>Style</key>
+	<dict>
+		<key>style-day</key>
+		<string>style_1_7_1445219169</string>
+		<key>style-night</key>
+		<string>style_5_7_1445391719</string>
+		<key>style-satellite</key>
+		<string>style_3_7_1445827513</string>
+		<key>style-navicar-day</key>
+		<string>style_4_7_1445391691</string>
+		<key>style-navicar-night</key>
+		<string>style_5_7_1445391719</string>
+		<key>style-bus</key>
+		<string>style_6_7_1445325996</string>
+		<key>style-indoor</key>
+		<string>style_50_7_1445670996</string>
+	</dict>
+	<key>Texture</key>
+	<dict>
+		<key>icon-day</key>
+		<string>icons_1_7_1444880368</string>
+		<key>icon-night</key>
+		<string>icons_2_7_1445580283</string>
+		<key>icon-bus</key>
+		<string>icons_3_7_1444880372</string>
+		<key>icon-indoor</key>
+		<string>icons_50_7_1444880375</string>
+		<key>background-day</key>
+		<string>bktile_1</string>
+		<key>background-night</key>
+		<string>bktile_2</string>
+		<key>roadarrow</key>
+		<string>roadarrow</string>
+		<key>lineround</key>
+		<string>lineround</string>
+		<key>dash-railway</key>
+		<string>dash</string>
+		<key>dash-overpass</key>
+		<string>dash_tq</string>
+		<key>dash-longandshort</key>
+		<string>dash_cd</string>
+		<key>tmc-green-day</key>
+		<string>tgl</string>
+		<key>tmc-green-night</key>
+		<string>tgl_n</string>
+		<key>tmc-yellow-day</key>
+		<string>tyl</string>
+		<key>tmc-yellow-night</key>
+		<string>tyl_n</string>
+		<key>tmc-red-day</key>
+		<string>trl</string>
+		<key>tmc-red-night</key>
+		<string>trl_n</string>
+		<key>tmc-blackred-day</key>
+		<string>tbl</string>
+		<key>tmc-blackred-night</key>
+		<string>tbl_n</string>
+		<key>tmc-gray-day</key>
+		<string>tnl</string>
+		<key>tmc-gray-night</key>
+		<string>tnl_n</string>
+		<key>sky-day</key>
+		<string>3d_sky_1</string>
+		<key>sky-night</key>
+		<string>3d_sky_2</string>
+	</dict>
+</dict>
+</plist>
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/arrow_line_inner.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/arrow_line_inner.png
new file mode 100644
index 0000000..f08c371
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/arrow_line_inner.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask.png
new file mode 100644
index 0000000..a2a88f4
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask@2x.png
new file mode 100644
index 0000000..297d1a4
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/calloutArrowMask@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin.png
new file mode 100755
index 0000000..20d0424
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@2x.png
new file mode 100755
index 0000000..54d0460
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@3x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@3x.png
new file mode 100755
index 0000000..da2fbf0
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift.png
new file mode 100755
index 0000000..b9bbe58
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@2x.png
new file mode 100755
index 0000000..9b7e052
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@3x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@3x.png
new file mode 100755
index 0000000..69a5810
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/greenPin_lift@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTexture.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTexture.png
new file mode 100644
index 0000000..ec2166a
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTexture.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTextureThin.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTextureThin.png
new file mode 100644
index 0000000..b3fd86d
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/lineDashTextureThin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/lineTexture.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/lineTexture.png
new file mode 100755
index 0000000..e43156a
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/lineTexture.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/lineTextureThin.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/lineTextureThin.png
new file mode 100644
index 0000000..f3aca31
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/lineTextureThin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue.png
new file mode 100644
index 0000000..062dda4
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue@2x.png
new file mode 100644
index 0000000..b2269d2
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/marker_blue@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow.png
new file mode 100755
index 0000000..4f85ff1
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@2x.png
new file mode 100755
index 0000000..8acfc67
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@3x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@3x.png
new file mode 100755
index 0000000..fc16658
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/pin_shadow@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin.png
new file mode 100755
index 0000000..ffe3892
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@2x.png
new file mode 100755
index 0000000..4a08cf2
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@3x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@3x.png
new file mode 100755
index 0000000..605de36
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift.png
new file mode 100755
index 0000000..d269981
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@2x.png
new file mode 100755
index 0000000..1ff181c
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@3x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@3x.png
new file mode 100755
index 0000000..10fd539
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/purplePin_lift@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin.png
new file mode 100755
index 0000000..b7c701e
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@2x.png
new file mode 100755
index 0000000..0882272
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@3x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@3x.png
new file mode 100755
index 0000000..ed85e11
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift.png
new file mode 100755
index 0000000..2ce7563
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@2x.png
new file mode 100755
index 0000000..105070b
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@3x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@3x.png
new file mode 100755
index 0000000..04e9e34
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/redPin_lift@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/select_.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/select_.png
new file mode 100644
index 0000000..b542248
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/select_.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/select_@2x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/select_@2x.png
new file mode 100644
index 0000000..b542248
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/select_@2x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/select_@3x.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/select_@3x.png
new file mode 100644
index 0000000..684d752
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/select_@3x.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_blue.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_blue.png
new file mode 100755
index 0000000..4bbcf91
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_blue.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_darkred.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_darkred.png
new file mode 100755
index 0000000..b59cd11
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_darkred.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_gray.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_gray.png
new file mode 100755
index 0000000..83c24ac
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_gray.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_green.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_green.png
new file mode 100755
index 0000000..63898b3
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_green.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_red.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_red.png
new file mode 100755
index 0000000..f2fe6f1
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_red.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_yellow.png b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_yellow.png
new file mode 100755
index 0000000..9adf02a
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/images/traffic_texture_yellow.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/AMap.bundle/offline/offlinePackage.plist b/Shared.IOS.TBL/Resources/AMap.bundle/offline/offlinePackage.plist
new file mode 100644
index 0000000..d72e6bd
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/AMap.bundle/offline/offlinePackage.plist
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_gdmap_add.png b/Shared.IOS.TBL/Resources/ic_gdmap_add.png
new file mode 100644
index 0000000..67c9c6b
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_gdmap_add.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_gdmap_back.png b/Shared.IOS.TBL/Resources/ic_gdmap_back.png
new file mode 100755
index 0000000..a6c705b
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_gdmap_back.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_gdmap_delete.png b/Shared.IOS.TBL/Resources/ic_gdmap_delete.png
new file mode 100644
index 0000000..557e0cc
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_gdmap_delete.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_gdmap_home.png b/Shared.IOS.TBL/Resources/ic_gdmap_home.png
new file mode 100755
index 0000000..70adc6e
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_gdmap_home.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_gdmap_myLocation.png b/Shared.IOS.TBL/Resources/ic_gdmap_myLocation.png
new file mode 100644
index 0000000..1a70029
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_gdmap_myLocation.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_gdmap_now.png b/Shared.IOS.TBL/Resources/ic_gdmap_now.png
new file mode 100644
index 0000000..b3c24de
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_gdmap_now.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_gdmap_search.png b/Shared.IOS.TBL/Resources/ic_gdmap_search.png
new file mode 100755
index 0000000..e8455ab
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_gdmap_search.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_gdmap_zoom_out.png b/Shared.IOS.TBL/Resources/ic_gdmap_zoom_out.png
new file mode 100644
index 0000000..0cb1561
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_gdmap_zoom_out.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_wd_curtain_bg_top.png b/Shared.IOS.TBL/Resources/ic_wd_curtain_bg_top.png
new file mode 100755
index 0000000..389b0c3
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_wd_curtain_bg_top.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_wd_curtain_h_bg.png b/Shared.IOS.TBL/Resources/ic_wd_curtain_h_bg.png
new file mode 100755
index 0000000..fa90dab
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_wd_curtain_h_bg.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_wd_curtain_h_open.png b/Shared.IOS.TBL/Resources/ic_wd_curtain_h_open.png
new file mode 100755
index 0000000..4093bea
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_wd_curtain_h_open.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_wd_curtain_h_progress.png b/Shared.IOS.TBL/Resources/ic_wd_curtain_h_progress.png
new file mode 100755
index 0000000..2ebc0a1
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_wd_curtain_h_progress.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_wd_curtain_open.png b/Shared.IOS.TBL/Resources/ic_wd_curtain_open.png
new file mode 100755
index 0000000..24240d0
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_wd_curtain_open.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_wd_curtain_roll_bg.png b/Shared.IOS.TBL/Resources/ic_wd_curtain_roll_bg.png
new file mode 100755
index 0000000..ba5c502
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_wd_curtain_roll_bg.png
Binary files differ
diff --git a/Shared.IOS.TBL/Resources/ic_wd_curtain_roll_progress.png b/Shared.IOS.TBL/Resources/ic_wd_curtain_roll_progress.png
new file mode 100755
index 0000000..217760a
--- /dev/null
+++ b/Shared.IOS.TBL/Resources/ic_wd_curtain_roll_progress.png
Binary files differ
diff --git a/Shared.IOS.TBL/Shared.IOS.TBL.csproj b/Shared.IOS.TBL/Shared.IOS.TBL.csproj
new file mode 100644
index 0000000..48a9d05
--- /dev/null
+++ b/Shared.IOS.TBL/Shared.IOS.TBL.csproj
@@ -0,0 +1,217 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ProjectGuid>{D623E902-D787-4886-9F17-38C062692326}</ProjectGuid>
+    <TemplateGuid>{b6f3ff35-79b2-4f25-a2fc-60a7cf61013b}</TemplateGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Shared.IOS.TBL</RootNamespace>
+    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
+    <AssemblyName>Shared.IOS.TBL</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>full</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="Xamarin.iOS" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Resources\" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ObjcBindingApiDefinition Include="ApiDefinition.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ObjcBindingCoreSource Include="Structs.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <NativeReference Include="Library\GDMapKit\AMapFoundationKit.a">
+      <Kind>Static</Kind>
+      <SmartLink>False</SmartLink>
+    </NativeReference>
+    <NativeReference Include="Library\GDMapKit\AMapLocationKit.a">
+      <Kind>Static</Kind>
+      <SmartLink>False</SmartLink>
+    </NativeReference>
+    <NativeReference Include="Library\GDMapKit\MAMapKit.a">
+      <Kind>Static</Kind>
+      <SmartLink>False</SmartLink>
+    </NativeReference>
+    <NativeReference Include="Library\libHDLWidgetLibrary.a">
+      <Kind>Static</Kind>
+      <SmartLink>False</SmartLink>
+    </NativeReference>
+    <NativeReference Include="Library\GDMapKit\libGDMapKit.a">
+      <Kind>Static</Kind>
+      <LinkerFlags>-lz -lstdc++ -lc++</LinkerFlags>
+      <Frameworks>SystemConfiguration CoreTelephony JavaScriptCore Security GLKit ExternalAccessory</Frameworks>
+    </NativeReference>
+    <NativeReference Include="..\CommonLib\libWeChatSDK.a">
+      <Kind>Static</Kind>
+      <SmartLink>False</SmartLink>
+    </NativeReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BundleResource Include="Resources\AMap.bundle\Bundle3D.plist" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\3d_sky_day.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\3d_sky_night.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\3dlandscape.xml" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\3dportrait.xml" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\bktile.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\bktile_n.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\building.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\config_1_1_1470722888.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\config_2_1_1470363686.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\dash.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\dash_cd.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\dash_tq.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_11_12_1488521704.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_1_12_1498048291.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_26_10_1476066932.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_27_10_1475031813.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_2_12_1498048312.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_3_12_1498048330.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_4_12_1488521409.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_50_10_1470645645.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_5_12_1488354051.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_6_12_1497253591.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_7_12_1497253551.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_8_12_1498048348.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\icons_9_10_1476066932.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\lineround.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\roadarrow.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\search_scenic_icon.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_100_10_1497254453.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_10_10_1472718686.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_12_10_1467006104.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_13_10_1497252546.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_14_10_1497252572.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_15_10_1497583771.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_17_10_1488360312.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_1_10_1498047646.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_30_10_1498047712.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_31_10_1498047749.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_32_10_1498047781.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_33_10_1498047815.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_3_10_1497252336.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_4_10_1498463093.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_50_10_1470645645.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_5_10_1498463124.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_6_10_1497252523.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\style_8_10_1497252659.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tbl.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tbl_l.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tbl_n.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tgl.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tgl_l.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tgl_n.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tmc_blind_amble.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tmc_blind_congestion.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tmc_blind_null.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tmc_blind_severe_congestion.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tmc_blind_smoothly.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tnl.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tnl_l.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tnl_n.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\trl.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\trl_l.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\trl_n.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tyl.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tyl_l.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\tyl_n.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\waterline.data" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\cross_bg.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\cross_bg_day.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\cross_bg_night.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\d_yellow.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\d_yellow_day.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\d_yellow_night.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\grass_day.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\grass_night.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\road_bottom.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\road_bottom_day.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\road_bottom_night.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\roadbk_main.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\roadbk_main_day.png" />
+    <BundleResource Include="Resources\AMap.bundle\AMap3D.bundle\VM3DRes\roadbk_main_night.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\arrow_line_inner.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\calloutArrowMask.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\calloutArrowMask%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\greenPin.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\greenPin%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\greenPin%403x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\greenPin_lift.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\greenPin_lift%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\greenPin_lift%403x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\lineDashTexture.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\lineDashTextureThin.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\lineTexture.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\lineTextureThin.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\marker_blue.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\marker_blue%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\pin_shadow.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\pin_shadow%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\pin_shadow%403x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\purplePin.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\purplePin%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\purplePin%403x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\purplePin_lift.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\purplePin_lift%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\purplePin_lift%403x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\redPin.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\redPin%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\redPin%403x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\redPin_lift.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\redPin_lift%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\redPin_lift%403x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\select_.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\select_%402x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\select_%403x.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\traffic_texture_blue.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\traffic_texture_darkred.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\traffic_texture_gray.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\traffic_texture_green.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\traffic_texture_red.png" />
+    <BundleResource Include="Resources\AMap.bundle\images\traffic_texture_yellow.png" />
+    <BundleResource Include="Resources\AMap.bundle\offline\offlinePackage.plist" />
+    <BundleResource Include="Resources\ic_gdmap_add.png" />
+    <BundleResource Include="Resources\ic_gdmap_back.png" />
+    <BundleResource Include="Resources\ic_gdmap_delete.png" />
+    <BundleResource Include="Resources\ic_gdmap_home.png" />
+    <BundleResource Include="Resources\ic_gdmap_myLocation.png" />
+    <BundleResource Include="Resources\ic_gdmap_now.png" />
+    <BundleResource Include="Resources\ic_gdmap_search.png" />
+    <BundleResource Include="Resources\ic_gdmap_zoom_out.png" />
+    <BundleResource Include="Resources\ic_wd_curtain_bg_top.png" />
+    <BundleResource Include="Resources\ic_wd_curtain_h_bg.png" />
+    <BundleResource Include="Resources\ic_wd_curtain_h_open.png" />
+    <BundleResource Include="Resources\ic_wd_curtain_h_progress.png" />
+    <BundleResource Include="Resources\ic_wd_curtain_open.png" />
+    <BundleResource Include="Resources\ic_wd_curtain_roll_bg.png" />
+    <BundleResource Include="Resources\ic_wd_curtain_roll_progress.png" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/Shared.IOS.TBL/Structs.cs b/Shared.IOS.TBL/Structs.cs
new file mode 100644
index 0000000..3814040
--- /dev/null
+++ b/Shared.IOS.TBL/Structs.cs
@@ -0,0 +1,105 @@
+锘縰sing System;
+
+namespace Shared.IOS.TBL
+{
+    public enum HDLThumbMode : uint
+    {
+        Fill,
+        Stroke
+    }
+
+
+    //[Native]
+    public enum HDLTouchIDState : ulong
+    {
+        NotSupport = 0,
+        Success = 1,
+        Fail = 2,
+        UserCancel = 3,
+        InputPassword = 4,
+        SystemCancel = 5,
+        PasswordNotSet = 6,
+        TouchIDNotSet = 7,
+        TouchIDNotAvailable = 8,
+        TouchIDLockout = 9,
+        AppCancel = 10,
+        InvalidContext = 11,
+        VersionNotSupport = 12
+    }
+
+    //[Native]
+    public enum HDLTouchIDSupperType : ulong
+    {
+        TouchID = 1,
+        FaceID,
+        None
+    }
+
+    //[Native]
+    public enum HDLFaceIDState : ulong
+    {
+        Success = 0,
+        Fail = 1
+    }
+
+
+	//寰俊鐧诲綍
+	public enum AuthErrCode
+	{
+		Ok = 0,
+		NormalErr = -1,
+		NetworkErr = -2,
+		GetQrcodeFailed = -3,
+		Cancel = -4,
+		Timeout = -5
+	}
+
+	public enum WXErrCode
+	{
+		Success = 0,
+		ErrCodeCommon = -1,
+		ErrCodeUserCancel = -2,
+		ErrCodeSentFail = -3,
+		ErrCodeAuthDeny = -4,
+		ErrCodeUnsupport = -5
+	}
+
+	public enum WXScene : uint
+	{
+		Session = 0,
+		Timeline = 1,
+		Favorite = 2,
+		SpecifiedSession = 3
+	}
+
+	public enum WXAPISupport : uint
+	{
+		WXAPISupportSession = 0
+	}
+
+	public enum WXBizProfileType : uint
+	{
+		Normal = 0,
+		Device = 1
+	}
+
+
+	public enum WXMiniProgramType : ulong
+	{
+		Release = 0,
+		Test = 1,
+		Preview = 2
+	}
+
+	public enum WXMPWebviewType : uint
+	{
+		WXMPWebviewType_Ad = 0
+	}
+
+	public enum WXLogLevel : long
+	{
+		Normal = 0,
+		Detail = 1
+	}
+}
+
diff --git a/Shared.IOS/ApiDefinition.cs b/Shared.IOS/ApiDefinition.cs
new file mode 100644
index 0000000..3c57975
--- /dev/null
+++ b/Shared.IOS/ApiDefinition.cs
@@ -0,0 +1,365 @@
+锘縰sing System;
+using CoreGraphics;
+using Foundation;
+using ObjCRuntime;
+using UIKit;
+
+
+namespace Shared
+{
+    // @interface GlobalInfo : NSObject
+    [BaseType(typeof(NSObject))]
+    interface GlobalInfo
+    {
+        // +(GlobalInfo *)sharedInstance;
+        [Static]
+        [Export("sharedInstance")]
+        //[Verify(MethodToProperty)]
+        GlobalInfo SharedInstance { get; }
+    }
+
+
+    //// @interface ZJPickerView : UIView
+    //[BaseType(typeof(UIView))]
+    //interface ZJPickerView
+    //{
+    //    // +(void)zj_showWithDataList:(NSArray * _Nonnull)dataList propertyDict:(NSDictionary * _Nullable)propertyDict completion:(void (^ _Nullable)(NSString * _Nullable))completion;
+    //    [Static]
+    //    [Export("zj_showWithDataList:propertyDict:completion:")]
+    //    //[Verify(StronglyTypedNSArray)]
+    //    //void Zj_showWithDataList(NSString[] dataList, [NullAllowed] NSDictionary propertyDict, [NullAllowed] Action<NSString> completion);
+    //    void Zj_showWithDataList(NSArray dataList, [NullAllowed] NSDictionary propertyDict, [NullAllowed] Action<NSString> completion);
+    //}
+
+    //[Static]
+    ////[Verify(ConstantsInterfaceAssociation)]
+    //partial interface Constants
+    //{
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyCanceBtnTitleKey;
+    //    [Field("ZJPickerViewPropertyCanceBtnTitleKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyCanceBtnTitleKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertySureBtnTitleKey;
+    //    [Field("ZJPickerViewPropertySureBtnTitleKey", "__Internal")]
+    //    NSString ZJPickerViewPropertySureBtnTitleKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyTipLabelTextKey;
+    //    [Field("ZJPickerViewPropertyTipLabelTextKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyTipLabelTextKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyCanceBtnTitleColorKey;
+    //    [Field("ZJPickerViewPropertyCanceBtnTitleColorKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyCanceBtnTitleColorKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertySureBtnTitleColorKey;
+    //    [Field("ZJPickerViewPropertySureBtnTitleColorKey", "__Internal")]
+    //    NSString ZJPickerViewPropertySureBtnTitleColorKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyTipLabelTextColorKey;
+    //    [Field("ZJPickerViewPropertyTipLabelTextColorKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyTipLabelTextColorKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyLineViewBackgroundColorKey;
+    //    [Field("ZJPickerViewPropertyLineViewBackgroundColorKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyLineViewBackgroundColorKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyCanceBtnTitleFontKey;
+    //    [Field("ZJPickerViewPropertyCanceBtnTitleFontKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyCanceBtnTitleFontKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertySureBtnTitleFontKey;
+    //    [Field("ZJPickerViewPropertySureBtnTitleFontKey", "__Internal")]
+    //    NSString ZJPickerViewPropertySureBtnTitleFontKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyTipLabelTextFontKey;
+    //    [Field("ZJPickerViewPropertyTipLabelTextFontKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyTipLabelTextFontKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyPickerViewHeightKey;
+    //    [Field("ZJPickerViewPropertyPickerViewHeightKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyPickerViewHeightKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyOneComponentRowHeightKey;
+    //    [Field("ZJPickerViewPropertyOneComponentRowHeightKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyOneComponentRowHeightKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertySelectRowTitleAttrKey;
+    //    [Field("ZJPickerViewPropertySelectRowTitleAttrKey", "__Internal")]
+    //    NSString ZJPickerViewPropertySelectRowTitleAttrKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyUnSelectRowTitleAttrKey;
+    //    [Field("ZJPickerViewPropertyUnSelectRowTitleAttrKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyUnSelectRowTitleAttrKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyIsTouchBackgroundHideKey;
+    //    [Field("ZJPickerViewPropertyIsTouchBackgroundHideKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyIsTouchBackgroundHideKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyIsShowSelectContentKey;
+    //    [Field("ZJPickerViewPropertyIsShowSelectContentKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyIsShowSelectContentKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyIsScrollToSelectedRowKey;
+    //    [Field("ZJPickerViewPropertyIsScrollToSelectedRowKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyIsScrollToSelectedRowKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyIsAnimationShowKey;
+    //    [Field("ZJPickerViewPropertyIsAnimationShowKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyIsAnimationShowKey { get; }
+
+    //    // extern NSString *const _Nonnull ZJPickerViewPropertyBackgroundAlphaKey;
+    //    [Field("ZJPickerViewPropertyBackgroundAlphaKey", "__Internal")]
+    //    NSString ZJPickerViewPropertyBackgroundAlphaKey { get; }
+    //}
+
+
+
+    // @interface MyIpAddress : NSObject
+    [BaseType(typeof(NSObject))]
+    interface MyIpAddress
+    {
+        // +(NSString *)getIPAddress:(BOOL)preferIPv4;
+        [Static]
+        [Export("getCurrentLocalIP")]
+        string GetIPAddress();
+
+        [Static]
+        [Export("getCurrentBroadcastIP")]
+        string GetCurrentBroadcastIP();
+    }
+
+    #region AMPopTip
+    // @interface AMPopTip : UIView
+    [BaseType(typeof(UIView))]
+    internal interface AMPopTip
+    {
+        // +(instancetype)popTip;
+        [Static]
+        [Export("popTip")]
+        AMPopTip PopTip();
+
+        // -(void)showText:(NSString *)text direction:(AMPopTipDirection)direction maxWidth:(CGFloat)maxWidth inView:(UIView *)view fromFrame:(CGRect)frame;
+        [Export("showText:direction:maxWidth:inView:fromFrame:")]
+        void ShowText(string text, AMPopTipDirection direction, nfloat maxWidth, UIView view, CGRect frame);
+
+        // -(void)showAttributedText:(NSAttributedString *)text direction:(AMPopTipDirection)direction maxWidth:(CGFloat)maxWidth inView:(UIView *)view fromFrame:(CGRect)frame;
+        [Export("showAttributedText:direction:maxWidth:inView:fromFrame:")]
+        void ShowAttributedText(NSAttributedString text, AMPopTipDirection direction, nfloat maxWidth, UIView view, CGRect frame);
+
+        // -(void)showCustomView:(UIView *)customView direction:(AMPopTipDirection)direction inView:(UIView *)view fromFrame:(CGRect)frame;
+        [Export("showCustomView:direction:inView:fromFrame:")]
+        void ShowCustomView(UIView customView, AMPopTipDirection direction, UIView view, CGRect frame);
+
+        // -(void)showText:(NSString *)text direction:(AMPopTipDirection)direction maxWidth:(CGFloat)maxWidth inView:(UIView *)view fromFrame:(CGRect)frame duration:(NSTimeInterval)interval;
+        [Export("showText:direction:maxWidth:inView:fromFrame:duration:")]
+        void ShowText(string text, AMPopTipDirection direction, nfloat maxWidth, UIView view, CGRect frame, double interval);
+
+        // -(void)showAttributedText:(NSAttributedString *)text direction:(AMPopTipDirection)direction maxWidth:(CGFloat)maxWidth inView:(UIView *)view fromFrame:(CGRect)frame duration:(NSTimeInterval)interval;
+        [Export("showAttributedText:direction:maxWidth:inView:fromFrame:duration:")]
+        void ShowAttributedText(NSAttributedString text, AMPopTipDirection direction, nfloat maxWidth, UIView view, CGRect frame, double interval);
+
+        // -(void)showCustomView:(UIView *)customView direction:(AMPopTipDirection)direction inView:(UIView *)view fromFrame:(CGRect)frame duration:(NSTimeInterval)interval;
+        [Export("showCustomView:direction:inView:fromFrame:duration:")]
+        void ShowCustomView(UIView customView, AMPopTipDirection direction, UIView view, CGRect frame, double interval);
+
+        // -(void)hide;
+        [Export("hide")]
+        void Hide();
+
+        // -(void)updateText:(NSString *)text;
+        [Export("updateText:")]
+        void UpdateText(string text);
+
+        // -(void)startActionAnimation;
+        [Export("startActionAnimation")]
+        void StartActionAnimation();
+
+        // -(void)stopActionAnimation;
+        [Export("stopActionAnimation")]
+        void StopActionAnimation();
+
+        // @property (nonatomic, strong) UIFont * font __attribute__((annotate("ui_appearance_selector")));
+        [Export("font", ArgumentSemantic.Strong)]
+        UIFont Font { get; set; }
+
+        // @property (nonatomic, strong) UIColor * textColor __attribute__((annotate("ui_appearance_selector")));
+        [Export("textColor", ArgumentSemantic.Strong)]
+        UIColor TextColor { get; set; }
+
+        // @property (assign, nonatomic) NSTextAlignment textAlignment __attribute__((annotate("ui_appearance_selector")));
+        [Export("textAlignment", ArgumentSemantic.Assign)]
+        UITextAlignment TextAlignment { get; set; }
+
+        // @property (nonatomic, strong) UIColor * popoverColor __attribute__((annotate("ui_appearance_selector")));
+        [Export("popoverColor", ArgumentSemantic.Strong)]
+        UIColor PopoverColor { get; set; }
+
+        // @property (nonatomic, strong) UIColor * borderColor __attribute__((annotate("ui_appearance_selector")));
+        [Export("borderColor", ArgumentSemantic.Strong)]
+        UIColor BorderColor { get; set; }
+
+        // @property (assign, nonatomic) CGFloat borderWidth __attribute__((annotate("ui_appearance_selector")));
+        [Export("borderWidth")]
+        nfloat BorderWidth { get; set; }
+
+        // @property (assign, nonatomic) CGFloat radius __attribute__((annotate("ui_appearance_selector")));
+        [Export("radius")]
+        nfloat Radius { get; set; }
+
+        // @property (getter = isRounded, assign, nonatomic) BOOL rounded __attribute__((annotate("ui_appearance_selector")));
+        [Export("rounded")]
+        bool Rounded { [Bind("isRounded")] get; set; }
+
+        // @property (assign, nonatomic) CGFloat offset __attribute__((annotate("ui_appearance_selector")));
+        [Export("offset")]
+        nfloat Offset { get; set; }
+
+        // @property (assign, nonatomic) CGFloat padding __attribute__((annotate("ui_appearance_selector")));
+        [Export("padding")]
+        nfloat Padding { get; set; }
+
+        // @property (assign, nonatomic) UIEdgeInsets edgeInsets __attribute__((annotate("ui_appearance_selector")));
+        [Export("edgeInsets", ArgumentSemantic.Assign)]
+        UIEdgeInsets EdgeInsets { get; set; }
+
+        // @property (assign, nonatomic) CGSize arrowSize __attribute__((annotate("ui_appearance_selector")));
+        [Export("arrowSize", ArgumentSemantic.Assign)]
+        CGSize ArrowSize { get; set; }
+
+        // @property (assign, nonatomic) NSTimeInterval animationIn __attribute__((annotate("ui_appearance_selector")));
+        [Export("animationIn")]
+        double AnimationIn { get; set; }
+
+        // @property (assign, nonatomic) NSTimeInterval animationOut __attribute__((annotate("ui_appearance_selector")));
+        [Export("animationOut")]
+        double AnimationOut { get; set; }
+
+        // @property (assign, nonatomic) NSTimeInterval delayIn __attribute__((annotate("ui_appearance_selector")));
+        [Export("delayIn")]
+        double DelayIn { get; set; }
+
+        // @property (assign, nonatomic) NSTimeInterval delayOut __attribute__((annotate("ui_appearance_selector")));
+        [Export("delayOut")]
+        double DelayOut { get; set; }
+
+        // @property (assign, nonatomic) AMPopTipEntranceAnimation entranceAnimation __attribute__((annotate("ui_appearance_selector")));
+        [Export("entranceAnimation", ArgumentSemantic.Assign)]
+        AMPopTipEntranceAnimation EntranceAnimation { get; set; }
+
+        // @property (assign, nonatomic) AMPopTipActionAnimation actionAnimation __attribute__((annotate("ui_appearance_selector")));
+        [Export("actionAnimation", ArgumentSemantic.Assign)]
+        AMPopTipActionAnimation ActionAnimation { get; set; }
+
+        // @property (assign, nonatomic) CGFloat actionFloatOffset __attribute__((annotate("ui_appearance_selector")));
+        [Export("actionFloatOffset")]
+        nfloat ActionFloatOffset { get; set; }
+
+        // @property (assign, nonatomic) CGFloat actionBounceOffset __attribute__((annotate("ui_appearance_selector")));
+        [Export("actionBounceOffset")]
+        nfloat ActionBounceOffset { get; set; }
+
+        // @property (assign, nonatomic) CGFloat actionPulseOffset __attribute__((annotate("ui_appearance_selector")));
+        [Export("actionPulseOffset")]
+        nfloat ActionPulseOffset { get; set; }
+
+        // @property (assign, nonatomic) NSTimeInterval actionAnimationIn __attribute__((annotate("ui_appearance_selector")));
+        [Export("actionAnimationIn")]
+        double ActionAnimationIn { get; set; }
+
+        // @property (assign, nonatomic) NSTimeInterval actionAnimationOut __attribute__((annotate("ui_appearance_selector")));
+        [Export("actionAnimationOut")]
+        double ActionAnimationOut { get; set; }
+
+        // @property (assign, nonatomic) NSTimeInterval actionDelayIn __attribute__((annotate("ui_appearance_selector")));
+        [Export("actionDelayIn")]
+        double ActionDelayIn { get; set; }
+
+        // @property (assign, nonatomic) NSTimeInterval actionDelayOut __attribute__((annotate("ui_appearance_selector")));
+        [Export("actionDelayOut")]
+        double ActionDelayOut { get; set; }
+
+        // @property (assign, nonatomic) CGFloat edgeMargin __attribute__((annotate("ui_appearance_selector")));
+        [Export("edgeMargin")]
+        nfloat EdgeMargin { get; set; }
+
+        // @property (assign, nonatomic) CGRect fromFrame;
+        [Export("fromFrame", ArgumentSemantic.Assign)]
+        CGRect FromFrame { get; set; }
+
+        // @property (readonly, assign, nonatomic) BOOL isVisible;
+        [Export("isVisible")]
+        bool IsVisible { get; }
+
+        // @property (readonly, assign, nonatomic) BOOL isAnimating;
+        [Export("isAnimating")]
+        bool IsAnimating { get; }
+
+        // @property (assign, nonatomic) BOOL shouldDismissOnTap;
+        [Export("shouldDismissOnTap")]
+        bool ShouldDismissOnTap { get; set; }
+
+        // @property (assign, nonatomic) BOOL shouldDismissOnTapOutside;
+        [Export("shouldDismissOnTapOutside")]
+        bool ShouldDismissOnTapOutside { get; set; }
+
+        // @property (assign, nonatomic) BOOL shouldDismissOnSwipeOutside;
+        [Export("shouldDismissOnSwipeOutside")]
+        bool ShouldDismissOnSwipeOutside { get; set; }
+
+        // @property (assign, nonatomic) UISwipeGestureRecognizerDirection swipeRemoveGestureDirection;
+        [Export("swipeRemoveGestureDirection", ArgumentSemantic.Assign)]
+        UISwipeGestureRecognizerDirection SwipeRemoveGestureDirection { get; set; }
+
+        // @property (copy, nonatomic) void (^tapHandler)();
+        [Export("tapHandler", ArgumentSemantic.Copy)]
+        Action TapHandler { get; set; }
+
+        // @property (copy, nonatomic) void (^appearHandler)();
+        [Export("appearHandler", ArgumentSemantic.Copy)]
+        Action AppearHandler { get; set; }
+
+        // @property (copy, nonatomic) void (^dismissHandler)();
+        [Export("dismissHandler", ArgumentSemantic.Copy)]
+        Action DismissHandler { get; set; }
+
+        // @property (copy, nonatomic) void (^entranceAnimationHandler)(void (^)(void));
+        [Export("entranceAnimationHandler", ArgumentSemantic.Copy)]
+        Action<Action> EntranceAnimationHandler { get; set; }
+
+        // @property (readonly, nonatomic) CGPoint arrowPosition;
+        [Export("arrowPosition")]
+        CGPoint ArrowPosition { get; }
+
+        // @property (readonly, nonatomic, weak) UIView * _Nullable containerView;
+        [NullAllowed, Export("containerView", ArgumentSemantic.Weak)]
+        UIView ContainerView { get; }
+
+        // @property (readonly, assign, nonatomic) AMPopTipDirection direction;
+        [Export("direction", ArgumentSemantic.Assign)]
+        AMPopTipDirection Direction { get; }
+    }
+    #endregion
+
+    // typedef void (^CommunSmartPlugBolck)(NSString *);
+    delegate void CommunSmartPlugBolck(string arg0);
+
+    // @interface WiimuSmartlink : NSObject
+    [BaseType(typeof(NSObject))]
+    interface WiimuSmartlink
+    {
+        // +(id)sharedInstance;
+        [Static]
+        [Export("sharedInstance")]
+        WiimuSmartlink SharedInstance { get; }
+
+        // -(void)startProvision:(NSString *)ssidStr passwd:(NSString *)passwdStr result:(CommunSmartPlugBolck)block;
+        [Export("startProvision:passwd:result:")]
+        void StartProvision(string ssidStr, string passwdStr, CommunSmartPlugBolck block);
+
+        // -(void)stopProvision:(CommunSmartPlugBolck)block;
+        [Export("stopProvision:")]
+        void StopProvision(CommunSmartPlugBolck block);
+    }
+
+
+ }
\ No newline at end of file
diff --git a/Shared.IOS/BaseApplicationDelegate.cs b/Shared.IOS/BaseApplicationDelegate.cs
new file mode 100644
index 0000000..077856f
--- /dev/null
+++ b/Shared.IOS/BaseApplicationDelegate.cs
@@ -0,0 +1,224 @@
+锘縰sing System;
+using AVFoundation;
+using com.hdl.on;
+using CoreLocation;
+using Foundation;
+
+using UIKit;
+
+
+namespace Shared
+{
+    public class BaseApplicationDelegate : UIApplicationDelegate
+    {
+        public static Action<UIApplication, NSDictionary> FinishedLaunchingAction;
+        public static Action<UIApplication> OnResignActivationAction;
+        public static Action<UIApplication> DidEnterBackgroundAction;
+        public static Action<UIApplication> WillEnterForegroundAction;
+        public static Action<UIApplication> OnActivatedAction;
+        public static Action<UIApplication> WillTerminateAction;
+        public static Action<string> DeviceTokenAction;
+        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
+        {
+            registerForRemoteNotification(application);
+            var musicInfo = new MusicInfo { };
+            Volume.Init();
+
+            FinishedLaunchingAction?.Invoke(application, launchOptions);
+
+            return true;
+        }
+
+        /// <summary>
+        /// 娉ㄥ唽杩滅▼娑堟伅鎺ㄩ��
+        /// </summary>
+        /// <param name="application">Application.</param>
+        void registerForRemoteNotification(UIApplication application)
+        {
+            if (8 <= int.Parse(UIDevice.CurrentDevice.SystemVersion.Split('.')[0]))
+            {
+                // 1.娉ㄥ唽UserNotification,浠ヨ幏鍙栨帹閫侀�氱煡鐨勬潈闄�
+                var settings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Sound | UIUserNotificationType.Alert | UIUserNotificationType.Badge, null);
+                application.RegisterUserNotificationSettings(settings);
+
+                // 2.娉ㄥ唽杩滅▼鎺ㄩ��
+                application.RegisterForRemoteNotifications();
+            }
+            else
+            {
+                application.RegisterForRemoteNotificationTypes(UIRemoteNotificationType.NewsstandContentAvailability | UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound);
+            }
+        }
+
+        class MyCLLocationManager : CLLocationManager
+        {
+            public static MyCLLocationManager Instance
+            {
+                get
+                {
+                    if (locationManager == null)
+                    {
+                        locationManager = new MyCLLocationManager();
+                        //璁剧疆鏄惁鍏佽绯荤粺鑷姩鏆傚仠瀹氫綅
+                        locationManager.PausesLocationUpdatesAutomatically = false;
+                        //locationManager.AllowsBackgroundLocationUpdates = true;
+                        //璁剧疆瀹氫綅绮惧害
+                        locationManager.DesiredAccuracy = CLLocation.AccuracyKilometer;
+                        locationManager.init();
+                    }
+
+                    return locationManager;
+                }
+            }
+
+            //鍒ゆ柇瀹氫綅鎿嶄綔鏄惁琚厑璁�  
+            static MyCLLocationManager locationManager;
+            //鏈�灏忕殑绉诲姩閫熷害 m/s
+            float minSpeed = 3;
+            
+            //鏈�灏忕殑绉诲姩璺濈 m
+            float minInteval = 100;
+            /// <summary>
+            /// 鐢ㄦ埛鏄惁鍏佽瀹氫綅鍔熻兘
+            /// </summary>
+            public bool IsLocationServicesEnabled => LocationServicesEnabled;
+            void init()
+            {
+                if (LocationServicesEnabled)
+                {
+                    //璁剧疆瀹氫綅鏇存柊鐨勬渶灏忚窛绂�
+                    locationManager.DistanceFilter = minInteval;
+
+                    locationManager.LocationsUpdated += (sender, e) =>
+                    {
+                        var location = e.Locations[e.Locations.Length - 1];
+                        //adjustDistanceFilter(location);
+                        System.Console.WriteLine($"浣嶇疆淇℃伅鍙樺寲 缁忓害{location.Coordinate.Longitude}  绾害{location.Coordinate.Latitude}");
+                        uploadToServer(location);
+                    };
+
+                }
+            }
+            /**
+    *  瑙勫垯: 濡傛灉閫熷害灏忎簬minSpeed m/s 鍒欐妸瑙﹀彂鑼冨洿璁惧畾涓�100m
+    *  鍚﹀垯灏嗚Е鍙戣寖鍥磋瀹氫负minSpeed*minInteval
+    *  姝ゆ椂鑻ラ�熷害鍙樺寲瓒呰繃10% 鍒欐洿鏂板綋鍓嶇殑瑙﹀彂鑼冨洿(杩欓噷闄愬埗鏄洜涓轰笉鑳戒笉鍋滅殑璁剧疆distanceFilter,
+    *  鍚﹀垯uploadLocation浼氫笉鍋滆瑙﹀彂)
+*/
+            void adjustDistanceFilter(CLLocation location)
+            {
+                //    NSLog(@"adjust:%f",location.speed);
+                if (location.Speed < minSpeed)
+                {
+                    if (Math.Abs(DistanceFilter - minInteval) > 0.1f)
+                    {
+                        DistanceFilter = minInteval;
+                    }
+                }
+                else
+                {
+                    var lastSpeed = DistanceFilter / minInteval;
+                    if ((Math.Abs(lastSpeed - location.Speed) / lastSpeed > 0.1f) || (lastSpeed < 0))
+                    {
+                        float newSpeed = (int)(location.Speed + 0.5f);
+                        float newFilter = newSpeed * minInteval;
+
+                        DistanceFilter = newFilter;
+                    }
+                }
+            }
+            nint taskIdentifier = UIApplication.BackgroundTaskInvalid;
+            void beingBackgroundUpdateTask()
+            {
+                taskIdentifier = UIApplication.SharedApplication.BeginBackgroundTask(() =>
+                {
+                    endBackgroundUpdateTask();
+                });
+            }
+
+            void endBackgroundUpdateTask()
+            {
+                if (taskIdentifier != UIApplication.BackgroundTaskInvalid)
+                {
+                    UIApplication.SharedApplication.EndBackgroundTask(taskIdentifier);
+                    taskIdentifier = UIApplication.BackgroundTaskInvalid;
+                }
+            }
+
+            void uploadToServer(CLLocation location) {
+#warning 濡傛灉鏈夎緝闀挎椂闂寸殑鎿嶄綔 姣斿HTTP涓婁紶 璇蜂娇鐢╞eginBackgroundTaskWithExpirationHandler
+                if (UIApplication.SharedApplication.ApplicationState == UIApplicationState.Active)
+                {
+                    //HTTP upload
+                    Shared.Application.LocationAction?.Invoke(location.Coordinate.Longitude, location.Coordinate.Latitude);
+
+                    endBackgroundUpdateTask();
+                }
+                else//鍚庡彴瀹氫綅
+                {
+                    //鍋囧涓婁竴娆$殑涓婁紶鎿嶄綔灏氭湭缁撴潫 鍒欑洿鎺eturn
+                    if (taskIdentifier != UIApplication.BackgroundTaskInvalid)
+                    {
+                        return;
+                    }
+
+                    beingBackgroundUpdateTask();
+
+                    //HTTP upload
+                    Shared.Application.LocationAction?.Invoke(location.Coordinate.Longitude, location.Coordinate.Latitude);
+
+                    //涓婁紶瀹屾垚璁板緱璋冪敤
+                    endBackgroundUpdateTask();
+                }
+            }
+        }
+
+        public override void OnResignActivation(UIApplication application) => OnResignActivationAction?.Invoke(application);// Invoked when the application is about to move from active to inactive state.// This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) // or when the user quits the application and it begins the transition to the background state.// Games should use this method to pause the game.
+
+        public override void DidEnterBackground(UIApplication application) => DidEnterBackgroundAction?.Invoke(application);// Use this method to release shared resources, save user data, invalidate timers and store the application state.// If your application supports background exection this method is called instead of WillTerminate when the user quits.
+
+        public override void WillEnterForeground(UIApplication application) => WillEnterForegroundAction?.Invoke(application);// Called as part of the transiton from background to active state.// Here you can undo many of the changes made on entering the background.
+
+        public override void OnActivated(UIApplication application)
+        {
+            AVAudioSession.SharedInstance().SetActive(true);
+            OnActivatedAction?.Invoke(application);
+            // Restart any tasks that were paused (or not yet started) while the application was inactive. 
+            // If the application was previously in the background, optionally refresh the user interface.
+        }
+
+        public override void WillTerminate(UIApplication application) => WillTerminateAction?.Invoke(application);// Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
+        /// <summary>
+        /// 娉ㄥ唽杩滅▼娑堟伅鎺ㄩ�佸洖璋冩柟娉�
+        /// </summary>
+        /// <param name="application">Application.</param>
+        /// <param name="deviceToken">Device token.</param>
+        public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
+        {
+            var bytes = new byte[deviceToken.Length];
+            System.Runtime.InteropServices.Marshal.Copy(deviceToken.Bytes, bytes, 0, bytes.Length);
+
+            var stringBuilder = new System.Text.StringBuilder();
+            for (int i = 0; i < bytes.Length; i++)
+            {
+                stringBuilder.AppendFormat("{0:x2}", bytes[i]);
+            }
+            var newDeviceToken = stringBuilder.ToString();
+   
+            var oldDeviceToken = NSUserDefaults.StandardUserDefaults.StringForKey("PushDeviceToken");
+
+            if (oldDeviceToken != newDeviceToken)
+            {
+                // Save new device token
+                NSUserDefaults.StandardUserDefaults.SetString(newDeviceToken, "PushDeviceToken");
+            }
+            DeviceTokenAction?.Invoke(newDeviceToken);
+        }
+
+        public virtual void setHDLRootViewController() {
+
+
+        }
+
+    }
+}
diff --git a/Shared.IOS/BaseViewController.cs b/Shared.IOS/BaseViewController.cs
new file mode 100644
index 0000000..26567b0
--- /dev/null
+++ b/Shared.IOS/BaseViewController.cs
@@ -0,0 +1,36 @@
+锘縰sing System;
+using AVFoundation;
+using CoreGraphics;
+using Foundation;
+using UIKit;
+
+namespace Shared
+{
+    public class BaseViewController : UIViewController
+    {
+
+        public static MediaPlayer.MPVolumeView MPVolumeView
+        {
+            internal set;
+            get;
+        }
+        public override void ViewDidLoad()
+        {
+            Instance = this;
+            base.ViewDidLoad();
+            var mainUIView = new UIView(new CoreGraphics.CGRect(0, 0, View.Frame.Width, View.Frame.Height));
+            View.AddSubview(mainUIView);
+            Application.RootFrameLayout = mainUIView;
+            MPVolumeView = new MediaPlayer.MPVolumeView(new CoreGraphics.CGRect(-100, -100, 0, 0)) { Hidden = false };
+            View.AddSubview(MPVolumeView);
+        }
+        public static BaseViewController Instance;
+
+        public override void DidReceiveMemoryWarning()
+        {
+            base.DidReceiveMemoryWarning();
+            // Release any cached data, images, etc that aren't in use.
+        }
+
+    }
+}
diff --git a/Shared.IOS/CommonClass.cs b/Shared.IOS/CommonClass.cs
new file mode 100644
index 0000000..9248f4c
--- /dev/null
+++ b/Shared.IOS/CommonClass.cs
@@ -0,0 +1,28 @@
+锘縰sing System;
+using Foundation;
+
+namespace Shared
+{
+    /// <summary>
+    /// 閫氱敤绫�
+    /// </summary>
+    public static class CommonClass
+    {
+        /// <summary>
+        /// 鎵撳紑App
+        /// </summary>
+        /// <param name="packageName">Package name.</param>
+        public static void OpenApp (string packageName)
+        {
+            UIKit.UIApplication.SharedApplication.OpenUrl (new Foundation.NSUrl (packageName));
+        }
+        /// <summary>
+        /// 璋冪敤鐣岄潰
+        /// </summary>
+        /// <param name="action">Action.</param>
+        public static void OpenAction(string action)
+        {
+            UIKit.UIApplication.SharedApplication.OpenUrl(new Foundation.NSUrl(action));
+        }
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/Ezviz.cs b/Shared.IOS/Ezviz.cs
new file mode 100644
index 0000000..efe1cdf
--- /dev/null
+++ b/Shared.IOS/Ezviz.cs
@@ -0,0 +1,39 @@
+锘縰sing System;
+using Foundation;
+using UIKit;
+
+namespace Shared
+{
+    public class Ezviz
+    {
+        public static void OpenEzviz(string url)
+        {
+            // NSLog(@"娣诲姞鎽勫儚澶�");
+            // 1.鑾峰彇搴旂敤绋嬪簭App-B鐨刄RL Scheme
+            //var appBUrl = new NSUrl("com.hdl.ezviz-monitor://?com.hdl.i-Life-ezviz");
+            //if (language == "en")
+            {
+                //appBUrl = "";
+            }
+            // 2.鍒ゆ柇鎵嬫満涓槸鍚﹀畨瑁呬簡瀵瑰簲绋嬪簭
+            //if (UIApplication.SharedApplication.CanOpenUrl(appBUrl))
+            {
+                // 3. 鎵撳紑搴旂敤绋嬪簭App-B
+                UIApplication.SharedApplication.OpenUrl(new NSUrl(url));
+            }
+            //else
+            {
+                //    //NSLog(@"娌℃湁瀹夎");
+                //appBUrl=[NSURL URLWithString:@"https://itunes.apple.com/cn/app/i-life-ezviz/id1232176145?mt=8"];
+                //    UIAlertController* alertVC =[UIAlertController alertControllerWithTitle: @"Go to Apple Store" message: @"download the APP" preferredStyle: UIAlertControllerStyleAlert];
+                //[alertVC addAction:[UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+                //        [[UIApplication sharedApplication]
+                //openURL:appBUrl];
+                //    }]];
+                //    [alertVC addAction:[UIAlertAction actionWithTitle:@"cancel" style:UIAlertActionStyleCancel handler:nil]];
+                //    [self presentViewController:alertVC animated:YES completion:nil];
+                //}
+            }
+        }
+    }
+}
diff --git a/Shared.IOS/IO/FileUtils.cs b/Shared.IOS/IO/FileUtils.cs
new file mode 100755
index 0000000..459e985
--- /dev/null
+++ b/Shared.IOS/IO/FileUtils.cs
@@ -0,0 +1,291 @@
+锘縰sing System;
+using System.IO;
+
+namespace Shared.IO
+{
+	/// <summary>
+	/// 鏂囦欢绫�
+	/// </summary>
+	public static class FileUtils
+	{
+		/// <summary>
+		/// 鍒犻櫎鏂囦欢
+		/// </summary>
+		/// <param name="path">Path.</param>
+		public static void DeleteFile(string path)
+		{
+			System.IO.File.Delete (path);
+		}
+
+		/// <summary>
+		/// 浠庤祫婧愭枃浠堕噷鑾峰彇鏂囦欢
+		/// </summary>
+		/// <returns>The stream from resource.</returns>
+		/// <param name="path">Path.</param>
+		public static System.IO.Stream GetStreamFromResource(string path)
+		{
+			return	new FileStream (path, FileMode.Open, FileAccess.Read);
+		}
+
+		/// <summary>
+		/// 鏍圭洰褰曡矾寰�
+		/// </summary>
+		public static readonly string RootPath=Application.RootPath;	
+
+		/// <summary>
+		/// Writes the file by bytes.
+		/// </summary>
+		/// <returns><c>true</c>, if file by bytes was writed, <c>false</c> otherwise.</returns>
+		/// <param name="fileName">File name.</param>
+		/// <param name="bytes">Bytes.</param>
+		public static bool WriteFileByBytes(string fileName, byte []bytes)
+		{
+			if (fileName == null || (fileName = fileName.Trim ()) == ("")) {
+				return false;
+			}
+			System.IO.FileStream fs = null;
+
+			try {
+				fs = new  FileStream (System.IO.Path.Combine (RootPath, fileName), FileMode.Create, FileAccess.Write);
+				fs.Write (bytes, 0, bytes.Length);
+				fs.Flush ();
+				return true;
+			} catch {
+				return false;
+			} finally {
+				try {
+					if (fs != null) {
+						fs.Close ();
+					}
+				} catch {
+				}
+			}
+
+		}
+
+		/// <summary>
+		/// Writes the file by input stream.
+		/// </summary>
+		/// <returns><c>true</c>, if file by input stream was writed, <c>false</c> otherwise.</returns>
+		/// <param name="fileName">File name.</param>
+		/// <param name="inputStream">Input stream.</param>
+		public static bool WriteFileByInputStream(string fileName, System.IO.Stream inputStream)
+		{
+			if (fileName == null || (fileName = fileName.Trim ()) == ("")) {
+				return false;
+			}
+
+			System.IO.FileStream fs = null;
+
+			try {
+				fs = new  FileStream (System.IO.Path.Combine (RootPath, fileName), FileMode.Create, FileAccess.Write);
+				byte[] buffer = new byte[4 * 1024];
+				int length = 0;
+				while ((length = inputStream.Read (buffer, 0, buffer.Length)) != 0) {
+					fs.Write (buffer, 0, length);
+					fs.Flush ();
+				}
+
+				return true;
+			} catch {
+				return false;
+			} finally {
+				try {
+					if (fs != null) {
+						fs.Close ();
+					}
+				} catch {
+				}
+			}
+		}
+
+		/// <summary>
+		/// 璇诲彇鍥剧墖鏂囦欢
+		/// </summary>
+		/// <returns>The file.</returns>
+		/// <param name="fileName">File name.</param>
+		public static byte []ReadImage1(string fileName)
+		{		
+			string tempfileName = fileName;
+            //鏆傛椂涓嶅鐞唒ad鍥剧墖锛屽厛鐢╬hone鍥剧墖
+			//if (Shared.Application.IsPad) 
+   //         {
+			//   	fileName = "Pad/" + fileName;
+			//}
+            //else 
+            {
+                fileName = "Phone/" + fileName;
+            }
+			System.IO.FileStream fs = null;
+			try {
+                var filePath = Foundation.NSBundle.MainBundle.PathForResource(fileName, null);
+                if (filePath!=null){
+                    fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
+                }
+				else if (System.IO.File.Exists (System.IO.Path.Combine (Application.RootPath, tempfileName))) {
+					fs = new  FileStream (System.IO.Path.Combine (Application.RootPath, tempfileName), FileMode.Open, FileAccess.Read);
+				}
+				//璧勬簮鏂囦欢閲岀殑鏂囦欢
+				else if (System.IO.File.Exists (fileName)) {
+					fs = new FileStream (fileName, FileMode.Open, FileAccess.Read);
+				} else {
+					return new byte[0];
+				}
+				byte[] bytes = new byte[fs.Length];
+				fs.Read (bytes, 0, bytes.Length);
+				return bytes;
+			} catch {
+				return new byte[0];
+			} finally {
+				try {
+					if (fs != null) {
+						fs.Close ();	
+					}
+				} catch {
+
+				}
+			}
+		}
+
+        /// <summary>
+        /// 璇诲彇鍥剧墖鏂囦欢璺緞
+        /// </summary>
+        /// <returns>The file.</returns>
+        /// <param name="fileName">File name.</param>
+        public static string GetImageFilePath(string fileName)
+        {
+            if(fileName==null)
+            {
+                return "";
+            }
+
+
+            //鍙兘鏄彁浜や簡瀹屾暣鐨勮矾寰勮繃鏉�
+            if (System.IO.File.Exists(fileName))
+            {
+                return fileName;
+            }
+
+            // 鍏堟壘鏄惁鏄敤鎴峰凡缁忔洿鏀硅繃鐨勫浘鐗囷紝杩欎釜鏄紭鍏堥�夋嫨
+            if (System.IO.File.Exists(System.IO.Path.Combine(Application.RootPath, fileName)))
+            {
+                return System.IO.Path.Combine(Application.RootPath, fileName);
+            }
+
+            string newFileName = null;
+            if (Application.Skin == null)
+            {
+                newFileName = "Phone/" + fileName;
+            }
+            else
+            {
+                newFileName = Application.Skin + "/" + fileName;
+            }
+
+            //data 鐩綍涓嬫煡鎵� 锛屾湁鍙兘鏄鐨偆鐨勬暟鎹�
+            if (System.IO.File.Exists(System.IO.Path.Combine(Application.RootPath, newFileName)))
+            {
+                return System.IO.Path.Combine(Application.RootPath, newFileName);
+            }
+
+            //Resource鐩綍涓嬫煡鎵�
+            var filePath = Foundation.NSBundle.MainBundle.PathForResource(newFileName, null);
+            if (filePath != null)
+            {
+                return filePath;
+            }
+
+            return "";
+
+            ////璧勬簮鏂囦欢閲岀殑鏂囦欢
+            //else if (System.IO.File.Exists(fileName))
+            //{
+            //    return fileName;
+            //}
+            //else
+            //{
+            //    return "";
+            //}
+        }
+
+		/// <summary>
+		/// Reads the string list.
+		/// </summary>
+		/// <returns>The string list.</returns>
+		/// <param name="fileName">File name.</param>
+		/// <param name="encoding">Encoding.</param>
+		public static System.Collections.Generic.List<string> ReadStringList(string fileName,System.Text.Encoding encoding)
+		{
+			System.Collections.Generic.List<string> stringList = new System.Collections.Generic.List<string> ();
+			System.IO.StreamReader fs = null;
+			try {
+				var filePath = Foundation.NSBundle.MainBundle.PathForResource(fileName, null);
+				if (filePath != null)
+				{
+                    fs = new StreamReader(filePath, encoding);
+				}
+				else if (System.IO.File.Exists (System.IO.Path.Combine (RootPath, fileName))) {
+					fs = new   StreamReader (System.IO.Path.Combine (RootPath, fileName),encoding);
+				} else if (System.IO.File.Exists (fileName)) {
+					fs = new  StreamReader (fileName,encoding);
+				} else {
+					return stringList;
+				}
+				string s;
+				while(null!=(s=fs.ReadLine()))
+				{
+					stringList.Add(s);
+				}
+				return stringList;
+			} catch {
+				return stringList;
+			} finally {
+				try {
+					if (fs != null) {
+						fs.Close ();	
+					}
+				} catch {
+
+				}
+			}
+		}
+
+		/// <summary>
+		/// Reads the file.
+		/// </summary>
+		/// <returns>The file.</returns>
+		/// <param name="fileName">File name.</param>
+		public static byte []ReadFile(string fileName)
+		{		
+			System.IO.FileStream fs = null;
+			try {
+				var filePath = Foundation.NSBundle.MainBundle.PathForResource(fileName, null);
+				if (filePath != null)
+				{
+					fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
+				}
+				else if (System.IO.File.Exists (System.IO.Path.Combine (RootPath, fileName))) {
+					fs = new  FileStream (System.IO.Path.Combine (RootPath, fileName), FileMode.Open, FileAccess.Read);
+				} else if (System.IO.File.Exists (fileName)) {
+					fs = new FileStream (fileName, FileMode.Open, FileAccess.Read);
+				} else {
+					return new byte[0];
+				}
+				byte[] bytes = new byte[fs.Length];
+				fs.Read (bytes, 0, bytes.Length);
+				return bytes;
+			} catch {
+				return new byte[0];
+			} finally {
+				try {
+					if (fs != null) {
+						fs.Close ();	
+					}
+				} catch {
+
+				}
+			}
+		}
+	}
+}
+
diff --git a/Shared.IOS/MusicInfo.cs b/Shared.IOS/MusicInfo.cs
new file mode 100755
index 0000000..717cd2d
--- /dev/null
+++ b/Shared.IOS/MusicInfo.cs
@@ -0,0 +1,228 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Web;
+using AVFoundation;
+using Foundation;
+using MediaPlayer;
+
+namespace Shared
+{
+    [System.Serializable]
+    public class MusicInfo
+    {
+        static MusicInfo()
+        {
+            System.Threading.Tasks.Task.Run(() =>
+            {
+                chekcAuthOfMusic();
+            });
+        }
+        static void chekcAuthOfMusic()
+        {
+            var authStatus = MPMediaLibrary.AuthorizationStatus;
+            if (authStatus == MPMediaLibraryAuthorizationStatus.NotDetermined)
+            {
+                MPMediaLibrary.RequestAuthorization((status) =>
+                {
+                    if (status == MPMediaLibraryAuthorizationStatus.Authorized)
+                    {
+                        getNativeSongs();
+                    }
+                });
+            }
+            else if (authStatus == MPMediaLibraryAuthorizationStatus.Authorized)
+            {
+                getNativeSongs();
+            }
+        }
+        static void getNativeSongs()
+        {
+            var itemsFromGenericQuery = new MPMediaQuery().Items;
+            if (itemsFromGenericQuery == null)
+            {
+                return;
+            }
+            foreach (MPMediaItem song in itemsFromGenericQuery)
+            {
+                var musicInfo = new MusicInfo { SourceType = "Local", AlbumId = "0", };
+                musicInfo.Title = song.ValueForProperty(new NSString("title"))?.ToString().TrimStart('<').TrimEnd('>').Replace("&", "");
+                if (musicInfo.Title == null)
+                {
+                    musicInfo.Title = "Unkown";
+                }
+                musicInfo.Artist = song.ValueForProperty(new NSString("artist"))?.ToString().TrimStart('<').TrimEnd('>').Replace("&", "");
+                if (musicInfo.Artist == null)
+                {
+                    musicInfo.Artist = "Unkown";
+                }
+
+                var ipodUrl = song.ValueForProperty(new NSString("assetURL"))?.ToString().TrimStart('<').TrimEnd('>').Replace("&", "");
+                if (ipodUrl == null)
+                {
+                    ipodUrl = "";
+                }
+                musicInfo.Album = song.ValueForProperty(new NSString("albumTitle"))?.ToString().TrimStart('<').TrimEnd('>').Replace("&", "");
+                if (musicInfo.Album == null)
+                {
+                    musicInfo.Album = "Unkown";
+                }
+                musicInfo.Album = musicInfo.Album.Replace("&", "&amp;");
+
+                musicInfo.Duration = song.ValueForProperty(new NSString("playbackDuration"))?.ToString().TrimStart('<').TrimEnd('>').Replace("&", "");
+                if (musicInfo.Duration == null)
+                {
+                    musicInfo.Duration = "0";
+                }
+                else
+                {
+                    musicInfo.Duration = ((int)(float.Parse(musicInfo.Duration) * 1000)).ToString();
+                }
+
+                //musicInfo.URL = getFileUrl(ipodUrl);
+                musicInfo.ID = getFileUrl(ipodUrl);
+
+                if (!string.IsNullOrEmpty(musicInfo.ID))
+                {
+                    MusicInfoList.Add(musicInfo);
+                }
+            }
+            var sharedInstance = GlobalInfo.SharedInstance;
+        }
+        static string getTempPath()
+        {
+            var dirs = NSSearchPath.GetDirectories(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomain.User, true);
+            //var dirs = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User, true);
+            if (dirs == null || dirs.Length == 0)
+            {
+                return "";
+            }
+            return dirs[0];
+        }
+        //Error MT5211: Native linking failed, undefined Objective-C class: HTTPServer.The symbol '_OBJC_CLASS_$_HTTPServer' could not be found in any of the libraries or frameworks linked with your application. (MT5211) (Demo.IOS)
+        static string getFileUrl(string theURL)
+        {
+            if (string.IsNullOrEmpty(theURL))
+            {
+                return "";
+            }
+            var range = theURL.IndexOf("ipod-library:");
+            var substring = theURL.Substring(range);
+
+            var nameRange = theURL.IndexOf("?id=");
+            var nameStringPart = theURL.Substring(nameRange + 4);
+
+            var fileName = /*"SongFile_" +*/ nameStringPart;
+            var filePath = getTempPath() + "/" + fileName;
+
+            if (!NSFileManager.DefaultManager.FileExists(filePath))
+            {
+                var theResourceURL = NSUrl.FromString(substring);
+                var songAsset = AVUrlAsset.Create(theResourceURL);// new AVUrlAsset(theResourceURL);// [AVURLAsset URLAssetWithURL: theResourceURL options: nil];
+
+                var exportSession = new AVAssetExportSession(songAsset, AVAssetExportSessionPreset.AppleM4A);
+                exportSession.OutputUrl = new NSUrl(filePath, false);// [NSURL fileURLWithPath: filePath];
+                exportSession.OutputFileType = "com.apple.m4a-audio";
+
+                exportSession.ExportAsynchronously(() =>
+                {
+                    if (exportSession.Status == AVAssetExportSessionStatus.Completed)
+                    {
+                        System.Console.WriteLine("闊充箰鏂囦欢澶嶅埗瀹屾垚");
+                    }
+                    else
+                    {
+                        System.Console.WriteLine("闊充箰鏂囦欢澶嶅埗澶辫触");
+                    }
+                });//248838
+            }
+            //return $"http://{new Net.NetWiFi().IpAddress}:9876/Path={fileName}";
+            return fileName;
+        }
+        /// <summary>
+        /// 姝屾洸鍚嶇О
+        /// </summary>
+        public string Title;
+        /// <summary>
+        /// 姝屾洸鐨勬瓕鎵嬪悕 
+        /// </summary>
+        public string Artist;
+        /// <summary>
+        /// 姝屾洸鐨勪笓杈戝悕     
+        /// </summary>
+        public string Album;
+        /// <summary>
+        /// 姝屾洸涓撹緫ID
+        /// </summary>
+        public string AlbumId;
+        /// <summary>
+        /// 姝屾洸鏂囦欢鐨勮矾寰�
+        /// </summary>
+        public string Data;
+        /// <summary>
+        /// 姝屾洸鐨勬�绘挱鏀炬椂闀�
+        /// </summary>
+        public string Size;
+        /// <summary>
+        /// 姝屾洸鐨勬�绘挱鏀炬椂闀�
+        /// </summary>
+        public string Duration;
+        /// <summary>
+        /// 闊充箰ID
+        /// </summary>
+        public string ID;
+        /// <summary>
+        /// 缃戠粶鍦板潃
+        /// </summary>
+        public string URL;
+        /// <summary>
+        ///   鏂囦欢鍚�
+        /// </summary>
+        public string filename;
+        /// <summary>
+        /// DLNA鍒楄〃鍚�
+        /// </summary>
+        public string dlnalistName;
+        /// <summary>
+        /// 鍥剧墖
+        /// </summary>
+        public string Image;
+        /// <summary>
+        /// 鐢靛彴绫诲瀷
+        /// </summary>
+        public string Cntype;
+        /// <summary>
+        /// 鐢靛彴绫诲瀷
+        /// </summary>
+        public string Cnkey;
+        /// <summary>
+        /// 鏄惁鏄洰褰�
+        /// </summary>
+        public bool IsDirectory = true;
+
+        /// <summary>
+        /// USB  Local URL 
+        /// </summary>
+        public string SourceType;
+        public string SourceName;
+
+
+        readonly static List<MusicInfo> musicInfoList = new List<MusicInfo> { };
+        /// <summary>
+        /// 鑾峰彇鎵�鏈夌殑
+        /// </summary>
+        public static List<MusicInfo> MusicInfoList
+        {
+            get
+            {
+                return musicInfoList;
+            }
+        }
+
+        public object Tag;
+    }
+    
+}
+
+
diff --git a/Shared.IOS/Native References/libMyLibrary.a b/Shared.IOS/Native References/libMyLibrary.a
new file mode 100644
index 0000000..77c92ad
--- /dev/null
+++ b/Shared.IOS/Native References/libMyLibrary.a
Binary files differ
diff --git a/Shared.IOS/Native References/libSmartLink.a b/Shared.IOS/Native References/libSmartLink.a
new file mode 100644
index 0000000..216b86b
--- /dev/null
+++ b/Shared.IOS/Native References/libSmartLink.a
Binary files differ
diff --git a/Shared.IOS/Net/NetWiFi.cs b/Shared.IOS/Net/NetWiFi.cs
new file mode 100755
index 0000000..4899f4c
--- /dev/null
+++ b/Shared.IOS/Net/NetWiFi.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.NetworkInformation;
+using System.Text;
+
+
+namespace Shared.Net
+{
+    public class NetWiFi
+    {
+        public static string GetIPAddress()
+        {
+            return Shared.MyIpAddress.GetIPAddress();
+        }
+
+        /// <summary>
+        /// 获取当前设备的IP
+        /// </summary>
+        public System.Net.IPAddress IpAddress
+        {
+            get
+            {
+                return System.Net.IPAddress.Parse(GetIPAddress());
+            }
+        }
+
+        /// <summary>
+        /// 获取广播IPAddress
+        /// </summary>
+        public System.Net.IPAddress BroadcastIpAddress
+        {
+            get
+            {
+                return System.Net.IPAddress.Parse(Shared.MyIpAddress.GetCurrentBroadcastIP());
+            }
+        }
+
+    }
+
+
+
+}
diff --git a/Shared.IOS/Net/WifiUtil.cs b/Shared.IOS/Net/WifiUtil.cs
new file mode 100644
index 0000000..04fe96a
--- /dev/null
+++ b/Shared.IOS/Net/WifiUtil.cs
@@ -0,0 +1,36 @@
+锘縰sing System;
+namespace Shared.Net
+{
+    public  class WifiUtil
+    {
+        public  void ConnectToWifi(Action<bool> action, string wifiName, string wifiPwd = null)
+        {
+            var hotspotConfig = new NetworkExtension.NEHotspotConfiguration(wifiName, wifiPwd, false);
+            NetworkExtension.NEHotspotConfigurationManager.SharedManager.ApplyConfiguration(hotspotConfig, (obj) =>
+            {
+                if (action != null)
+                {
+                    if (obj == null||obj.ToString().Contains("already associated"))
+                    {
+                        action(true);
+                    }
+                    else
+                    {
+                        action(false);
+                    }
+                }
+            });
+        }
+
+        // 鍗曚緥
+        static WifiUtil ourInstance = new WifiUtil();
+
+        public static WifiUtil Instance
+        {
+            get
+            {
+                return ourInstance;
+            }
+        }
+    }
+}
diff --git a/Shared.IOS/Properties/AssemblyInfo.cs b/Shared.IOS/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..4ae3fcd
--- /dev/null
+++ b/Shared.IOS/Properties/AssemblyInfo.cs
@@ -0,0 +1,34 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+
+using Foundation;
+
+// This attribute allows you to mark your assemblies as 鈥渟afe to link鈥�.
+// When the attribute is present, the linker鈥攊f enabled鈥攚ill process the assembly
+// even if you鈥檙e using the 鈥淟ink SDK assemblies only鈥� option, which is the default for device builds.
+
+[assembly: LinkerSafe]
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle ("Shared.IOS")]
+[assembly: AssemblyDescription ("")]
+[assembly: AssemblyConfiguration ("")]
+[assembly: AssemblyCompany ("")]
+[assembly: AssemblyProduct ("")]
+[assembly: AssemblyCopyright ("hdl")]
+[assembly: AssemblyTrademark ("")]
+[assembly: AssemblyCulture ("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion ("1.0.2.0")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
diff --git a/Shared.IOS/Reachability.cs b/Shared.IOS/Reachability.cs
new file mode 100755
index 0000000..d54079b
--- /dev/null
+++ b/Shared.IOS/Reachability.cs
@@ -0,0 +1,151 @@
+锘縰sing System;
+using System.Net;
+using CoreFoundation;
+using SystemConfiguration;
+
+namespace Shared
+{
+    internal enum MyNetworkStatus
+    {
+        NotReachable = 0,
+        ReachableViaCarrierDataNetwork = 1,
+        ReachableViaWiFiNetwork = 2
+    }
+
+    internal static class MyReachability
+    {
+        static readonly string hostName = "www.apple.com";
+
+        public static bool IsReachableWithoutRequiringConnection (NetworkReachabilityFlags flags)
+        {
+            // Is it reachable with the current network configuration?
+            bool isReachable = (flags & NetworkReachabilityFlags.Reachable) != 0;
+
+            // Do we need a connection to reach it?
+            bool noConnectionRequired = (flags & NetworkReachabilityFlags.ConnectionRequired) == 0
+                || (flags & NetworkReachabilityFlags.IsWWAN) != 0;
+
+            return isReachable && noConnectionRequired;
+        }
+
+        // Is the host reachable with the current network configuration
+        public static bool IsHostReachable (string host)
+        {
+            if (string.IsNullOrEmpty (host))
+                return false;
+
+            using (var r = new NetworkReachability (host)) {
+                NetworkReachabilityFlags flags;
+
+                if (r.TryGetFlags (out flags))
+                    return IsReachableWithoutRequiringConnection (flags);
+            }
+            return false;
+        }
+
+        //
+        // Raised every time there is an interesting reachable event,
+        // we do not even pass the info as to what changed, and
+        // we lump all three status we probe into one
+        //
+        public static  EventHandler ReachabilityChanged;
+
+        static void OnChange (NetworkReachabilityFlags flags)
+        {
+            var h = ReachabilityChanged;
+            if (h != null)
+                h (null, EventArgs.Empty);
+        }
+
+        //
+        // Returns true if it is possible to reach the AdHoc WiFi network
+        // and optionally provides extra network reachability flags as the
+        // out parameter
+        //
+        static NetworkReachability adHocWiFiNetworkReachability;
+
+        public static bool IsAdHocWiFiNetworkAvailable (out NetworkReachabilityFlags flags)
+        {
+            if (adHocWiFiNetworkReachability == null) {
+                adHocWiFiNetworkReachability = new NetworkReachability (new IPAddress (new byte [] { 115, 29, 191, 136 }));
+                adHocWiFiNetworkReachability.SetNotification (OnChange);
+                adHocWiFiNetworkReachability.Schedule (CFRunLoop.Current, CFRunLoop.ModeDefault);
+            }
+
+            return adHocWiFiNetworkReachability.TryGetFlags (out flags) && IsReachableWithoutRequiringConnection (flags);
+        }
+
+        static NetworkReachability defaultRouteReachability;
+
+        static bool IsNetworkAvailable (out NetworkReachabilityFlags flags)
+        {
+            if (defaultRouteReachability == null) {
+                defaultRouteReachability = new NetworkReachability (new IPAddress (new byte [] { 115, 29, 191, 136 }));
+                defaultRouteReachability.SetNotification (OnChange);
+                defaultRouteReachability.Schedule (CFRunLoop.Current, CFRunLoop.ModeDefault);
+            }
+            return defaultRouteReachability.TryGetFlags (out flags) && IsReachableWithoutRequiringConnection (flags);
+        }
+
+        static NetworkReachability remoteHostReachability;
+
+        public static MyNetworkStatus RemoteHostStatus ()
+        {
+            NetworkReachabilityFlags flags;
+            bool reachable;
+
+            if (remoteHostReachability == null) {
+                remoteHostReachability = new NetworkReachability (hostName);
+
+                // Need to probe before we queue, or we wont get any meaningful values
+                // this only happens when you create NetworkReachability from a hostname
+                reachable = remoteHostReachability.TryGetFlags (out flags);
+
+                remoteHostReachability.SetNotification (OnChange);
+                remoteHostReachability.Schedule (CFRunLoop.Current, CFRunLoop.ModeDefault);
+            } else {
+                reachable = remoteHostReachability.TryGetFlags (out flags);
+            }
+
+            if (!reachable)
+                return MyNetworkStatus.NotReachable;
+
+            if (!IsReachableWithoutRequiringConnection (flags))
+                return MyNetworkStatus.NotReachable;
+
+            return (flags & NetworkReachabilityFlags.IsWWAN) != 0 ?
+                MyNetworkStatus.ReachableViaCarrierDataNetwork : MyNetworkStatus.ReachableViaWiFiNetwork;
+        }
+
+        public static MyNetworkStatus InternetConnectionStatus ()
+        {
+            NetworkReachabilityFlags flags;
+            bool defaultNetworkAvailable = IsNetworkAvailable (out flags);
+            if (defaultNetworkAvailable && ((flags & NetworkReachabilityFlags.IsDirect) != 0))
+                return MyNetworkStatus.NotReachable;
+            else if ((flags & NetworkReachabilityFlags.IsWWAN) != 0)
+                return MyNetworkStatus.ReachableViaCarrierDataNetwork;
+            else if (flags == 0)
+                return MyNetworkStatus.NotReachable;
+            return MyNetworkStatus.ReachableViaWiFiNetwork;
+        }
+
+        public static bool Online ()
+        {
+            NetworkReachabilityFlags flags;
+            bool defaultNetworkAvailable = IsNetworkAvailable (out flags);
+            return defaultNetworkAvailable;
+        }
+
+
+        public static MyNetworkStatus LocalWifiConnectionStatus ()
+        {
+            NetworkReachabilityFlags flags;
+            if (IsAdHocWiFiNetworkAvailable (out flags))
+                if ((flags & NetworkReachabilityFlags.IsDirect) != 0)
+                    return MyNetworkStatus.ReachableViaWiFiNetwork;
+
+            return MyNetworkStatus.NotReachable;
+        }
+    }
+}
diff --git a/Shared.IOS/Server.cs b/Shared.IOS/Server.cs
new file mode 100755
index 0000000..0e192f4
--- /dev/null
+++ b/Shared.IOS/Server.cs
@@ -0,0 +1,172 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Web;
+using Foundation;
+
+namespace com.hdl.on
+{
+    public class Server
+    {
+        public static int Port=22222;
+		static System.Net.HttpListener listener;
+
+        /// <summary>
+        /// 鍚姩鐩戝惉鍙婂鐞�
+        /// </summary>
+        internal static void Start(System.Net.IPAddress ipAddress)
+        {
+            System.Threading.Tasks.Task.Run(() =>
+            {
+                try
+                {
+                    if (listener == null)
+                    {
+                        listener = new System.Net.HttpListener();
+
+                        listener.AuthenticationSchemes = System.Net.AuthenticationSchemes.Anonymous;
+
+                        listener.Prefixes.Add(string.Format("http://{0}:{1}/", ipAddress.ToString(), Port));
+
+                        listener.Start();
+
+                        beginGetContext(listener);
+
+                        System.Console.WriteLine("闊充箰鏈嶅姟鍚姩鎴愬姛!");
+                    }
+                }
+                catch (Exception e)
+                {
+                    System.Console.WriteLine("闊充箰鏈嶅姟鍚姩澶辫触!" + e.Message);
+                }
+                finally { }
+            });
+        }
+
+        internal static void Stop()
+        {
+            if (listener != null)
+            {
+                try
+                {
+                    listener.Close();
+                }catch{}
+            }
+            listener = null;
+            System.Console.WriteLine("闊充箰鏈嶅姟鍋滄!");
+        }
+        static string getTempPath()
+        {
+            var dirs = NSSearchPath.GetDirectories(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomain.User, true);
+            if (dirs == null || dirs.Length == 0)
+            {
+                return "";
+            }
+            return dirs[0];
+        }
+        /// <summary>
+        /// 寮�濮嬪紓姝ユ帴鏀秇ttp璇锋眰
+        /// </summary>
+        /// <param name="listerner"></param>
+        static void beginGetContext(System.Net.HttpListener listerner)
+        {
+            try
+            {
+
+                if (listerner == null || !listerner.IsListening)
+                {
+                    return;
+                }
+                listerner.BeginGetContext(new System.AsyncCallback(getContextCallBack), null);
+
+            }
+            catch
+            {
+                System.Threading.Thread.Sleep(1);
+                beginGetContext(listerner);
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇http璇锋眰锛屽苟澶勭悊
+        /// </summary>
+        /// <param name="ar"></param>
+        static void getContextCallBack(System.IAsyncResult ar)
+        {
+            beginGetContext(listener);
+            try
+            {
+                System.Net.HttpListenerContext context = listener.EndGetContext(ar);
+                manager(context);
+            }
+            catch { }
+
+        }
+
+
+        static void manager(System.Net.HttpListenerContext httpListenerContext)
+        {
+            System.Net.HttpListenerResponse httpListenerResponse = null;
+
+            try
+            {
+                #region
+                httpListenerResponse = httpListenerContext.Response;
+
+                httpListenerResponse.StatusCode = 200;//璁剧疆杩斿洖缁欏鏈嶇http鐘舵�佷唬鐮�
+                httpListenerResponse.ContentEncoding = System.Text.Encoding.UTF8;
+
+
+                var nameValueCollection = HttpUtility.ParseQueryString(System.IO.Path.GetFileName(httpListenerContext.Request.RawUrl));
+                if (0 < nameValueCollection.Count && System.IO.File.Exists($"{getTempPath()}/{nameValueCollection[0]}"))
+                {
+                    var file = new System.IO.FileStream($"{getTempPath()}/{nameValueCollection[0]}", System.IO.FileMode.Open, System.IO.FileAccess.Read);
+                    try
+                    {
+                        while (file.CanRead)
+                        {
+                            var bytes = new byte[1024];
+                            var len = file.Read(bytes, 0, bytes.Length);
+                            httpListenerResponse.OutputStream.Write(bytes, 0, len);
+                        }
+                    }
+                    finally
+                    {
+                        file.Close();
+                    }
+                }
+                httpListenerResponse.OutputStream.Flush();
+                #endregion
+            }
+            catch
+            {
+
+            }
+            finally
+            {
+                #region
+                try
+                {
+                    httpListenerContext.Request.InputStream.Close();
+                }
+                catch { }
+
+                try
+                {
+                    httpListenerResponse.OutputStream.Close();
+                }
+                catch { }
+
+
+                try
+                {
+                    httpListenerResponse.Close();
+                }
+                catch { }
+
+                #endregion
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/Shared.IOS.csproj b/Shared.IOS/Shared.IOS.csproj
new file mode 100644
index 0000000..3d7d313
--- /dev/null
+++ b/Shared.IOS/Shared.IOS.csproj
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ProjectGuid>{0048AB87-2130-4437-8F01-8CADAB787004}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Shared</RootNamespace>
+    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
+    <AssemblyName>Shared.IOS</AssemblyName>
+    <SignAssembly>true</SignAssembly>
+    <ReleaseVersion>1.1</ReleaseVersion>
+    <SynchReleaseVersion>false</SynchReleaseVersion>
+    <PackageId>10</PackageId>
+    <PackageVersion>1.0</PackageVersion>
+    <Copyright>HDL</Copyright>
+    <Owners>HXB</Owners>
+    <Authors>HXB</Authors>
+    <Description>HDL璺ㄥ钩鍙板紑鍙戦渶瑕�</Description>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
+    <DocumentationFile>bin\Debug\Shared.IOS.xml</DocumentationFile>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <BTouchExtraArgs></BTouchExtraArgs>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType></DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <DocumentationFile>bin\Release\Shared.IOS.xml</DocumentationFile>
+    <ConsolePause>false</ConsolePause>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="Xamarin.iOS" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.IO.Compression" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Web.Services" />
+    <Reference Include="OpenTK-1.0" />
+    <Reference Include="Newtonsoft.Json">
+      <HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Essentials">
+      <HintPath>..\packages\Xamarin.Essentials.1.3.1\lib\xamarinios10\Xamarin.Essentials.dll</HintPath>
+    </Reference>
+    <Reference Include="MJRefresh_Xamarin">
+      <HintPath>..\..\Demo\Shared\packages\Xamarin.iOS.MJRefresh.3.2.2\lib\xamarinios10\MJRefresh_Xamarin.dll</HintPath>
+    </Reference>
+    <Reference Include="MJRefresh_Xamarin">
+      <HintPath>..\..\CommonLib\dll\Shared.IOS\MJRefresh_Xamarin.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Resources\" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="IO\FileUtils.cs" />
+    <Compile Include="Net\NetWiFi.cs" />
+    <Compile Include="UI\Alert.cs" />
+    <Compile Include="UI\Application.cs" />
+    <Compile Include="UI\Button.cs" />
+    <Compile Include="UI\Dialog.cs" />
+    <Compile Include="UI\EditText.cs" />
+    <Compile Include="UI\Enum.cs" />
+    <Compile Include="UI\FrameLayout.cs" />
+    <Compile Include="UI\HorizontalScrolViewLayout.cs" />
+    <Compile Include="UI\HorizontalSeekBar.cs" />
+    <Compile Include="UI\Lanuage.cs" />
+    <Compile Include="UI\Loading.cs" />
+    <Compile Include="UI\PageLayout.cs" />
+    <Compile Include="UI\Spinner.cs" />
+    <Compile Include="UI\VerticalScrolViewLayout.cs" />
+    <Compile Include="UI\VerticalSeekBar.cs" />
+    <Compile Include="UI\Video.cs" />
+    <Compile Include="UI\View.cs" />
+    <Compile Include="UI\WebView.cs" />
+    <Compile Include="UI\Tip.cs" />
+    <Compile Include="UI\RowLayout.cs" />
+    <Compile Include="UI\ViewGroup.cs" />
+    <Compile Include="UI\TextView.cs" />
+    <Compile Include="UI\Camera.cs" />
+    <Compile Include="UI\DateView.cs" />
+    <Compile Include="UI\TimeView.cs" />
+    <Compile Include="UI\ColorPicker.cs" />
+    <Compile Include="UI\UrlMonitor.cs" />
+    <Compile Include="UI\LongPressMoveVerticalScrolViewLayout.cs" />
+    <Compile Include="UI\MusicVerticalScrolViewLayout.cs" />
+    <Compile Include="UI\ImageView.cs" />
+    <Compile Include="UI\WiimuUPnP.cs" />
+    <Compile Include="BaseApplicationDelegate.cs" />
+    <Compile Include="BaseViewController.cs" />
+    <Compile Include="MusicInfo.cs" />
+    <Compile Include="Volume.cs" />
+    <Compile Include="Server.cs" />
+    <Compile Include="CommonClass.cs" />
+    <Compile Include="Ezviz.cs" />
+    <Compile Include="UI\PickerView.cs" />
+    <Compile Include="Net\WifiUtil.cs" />
+    <Compile Include="UI\MyEchartsView.cs" />
+    <Compile Include="UI\ArcSeekBar.cs" />
+    <Compile Include="Reachability.cs" />
+    <Compile Include="Utils\TouchIDUtils.cs" />
+    <Compile Include="UI\WaveSeekBar.cs" />
+    <Compile Include="UI\GDMapView.cs" />
+    <Compile Include="Utils\HDLUtils.cs" />
+    <Compile Include="UI\UIPickerView.cs" />
+    <Compile Include="UI\UICoverFlowView.cs" />
+
+    <Compile Include="UI\CropImage.cs" />
+    <Compile Include="UI\GestureLockView.cs" />
+
+    <Compile Include="UI\Scan.cs" />
+    <Compile Include="UI\Contacts.cs" />
+
+    <Compile Include="UI\CurtainRollSeekBar.cs" />
+    <Compile Include="UI\CurtainSeekBar.cs" />
+    <Compile Include="UI\VerticalRefreshLayout.cs" />
+    <Compile Include="UI\ArcScaleSeekBar.cs" />
+    <Compile Include="UI\UIDrawerLayout.cs" />
+    <Compile Include="UI\CoverFlowLayout.cs" />
+    <Compile Include="UI\EditTextView.cs" />
+    <Compile Include="UI\HorizontalPages.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ObjcBindingApiDefinition Include="ApiDefinition.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ObjcBindingCoreSource Include="StructsAndEnums.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
+  <ItemGroup>
+    <NativeReference Include="..\..\..\..\..\..\..\..\Applications\Xcode.app\Contents\Developer\Platforms\iPhoneOS.platform\Developer\SDKs\iPhoneOS.sdk\usr\lib\libxml2.tbd">
+      <Kind>Static</Kind>
+      <SmartLink>False</SmartLink>
+      <Frameworks></Frameworks>
+    </NativeReference>
+    <NativeReference Include="Native References\libSmartLink.a">
+      <Kind>Static</Kind>
+      <ForceLoad>True</ForceLoad>
+    </NativeReference>
+    <NativeReference Include="Native References\libMyLibrary.a">
+      <Kind>Static</Kind>
+      <Frameworks>AVFoundation CoreGraphics UIKit CoreMedia AudioToolbox VideoToolbox GLKit OpenAL MobileCoreServices SystemConfiguration CoreTelephony AVFoundation WebKit</Frameworks>
+      <ForceLoad>True</ForceLoad>
+      <IsCxx>True</IsCxx>
+      <LinkerFlags>-lz</LinkerFlags>
+    </NativeReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BundleResource Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Shared.IOS.TBL\Shared.IOS.TBL.csproj">
+      <Project>{D623E902-D787-4886-9F17-38C062692326}</Project>
+      <Name>Shared.IOS.TBL</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ProjectExtensions>
+    <MonoDevelop>
+      <Properties>
+        <Policies>
+          <VersionControlPolicy>
+            <CommitMessageStyle Header="" Indent="" FirstFilePrefix="* " FileSeparator=":&#xA;* " LastFilePostfix=": " LineAlign="2" InterMessageLines="1" IncludeDirectoryPaths="False" Wrap="True" />
+          </VersionControlPolicy>
+        </Policies>
+      </Properties>
+    </MonoDevelop>
+  </ProjectExtensions>
+  <Import Project="..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" />
+  <Import Project="..\..\Demo\Shared\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\..\Demo\Shared\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
+</Project>
\ No newline at end of file
diff --git a/Shared.IOS/Shared.IOS.sln b/Shared.IOS/Shared.IOS.sln
new file mode 100644
index 0000000..5648888
--- /dev/null
+++ b/Shared.IOS/Shared.IOS.sln
@@ -0,0 +1,17 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.IOS", "Shared.IOS.csproj", "{0048AB87-2130-4437-8F01-8CADAB787004}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0048AB87-2130-4437-8F01-8CADAB787004}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+EndGlobal
diff --git a/Shared.IOS/Shared.IOS.userprefs b/Shared.IOS/Shared.IOS.userprefs
new file mode 100755
index 0000000..cae0aae
--- /dev/null
+++ b/Shared.IOS/Shared.IOS.userprefs
@@ -0,0 +1,9 @@
+锘�<Properties StartupItem="Shared.IOS.csproj">
+  <MonoDevelop.Ide.Workbench />
+  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
+  <MonoDevelop.Ide.DebuggingService.Breakpoints>
+    <BreakpointStore />
+  </MonoDevelop.Ide.DebuggingService.Breakpoints>
+  <MonoDevelop.Ide.ItemProperties.Shared.IOS PreferredExecutionTarget="MonoDevelop.Default" />
+  <MonoDevelop.Ide.DebuggingService.PinnedWatches />
+</Properties>
\ No newline at end of file
diff --git a/Shared.IOS/StructsAndEnums.cs b/Shared.IOS/StructsAndEnums.cs
new file mode 100755
index 0000000..1a5e80c
--- /dev/null
+++ b/Shared.IOS/StructsAndEnums.cs
@@ -0,0 +1,47 @@
+锘縰sing System;
+using ObjCRuntime;
+namespace Shared
+{
+
+
+
+		public enum AMPopTipDirection
+	{
+		Up,
+		Down,
+		Left,
+		Right,
+		None
+	}
+
+public enum AMPopTipEntranceAnimation 
+{
+	Scale,
+	Transition,
+	None,
+	Custom
+}
+
+
+public enum AMPopTipActionAnimation 
+{
+	Bounce,
+	Float,
+	Pulse,
+	None
+}
+
+	public enum BQMenuStatus : uint
+	{
+		Hide,
+		Moving,
+		Show
+	}
+
+	public enum BQMenuPriority : uint
+	{
+		BelowContent,
+		OverContent
+	}
+
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/Alert.cs b/Shared.IOS/UI/Alert.cs
new file mode 100644
index 0000000..6f266d5
--- /dev/null
+++ b/Shared.IOS/UI/Alert.cs
@@ -0,0 +1,107 @@
+锘縰sing System;
+using UIKit;
+using CoreGraphics;
+
+namespace Shared
+{
+	/// <summary>
+	/// 瀵硅瘽妗�
+	/// </summary>
+	public class Alert
+	{
+		/// <summary>
+		/// 褰撳墠瀵硅瘽妗�
+		/// </summary>
+		UIAlertView myUIAlertView;
+
+        /// <summary>
+        /// 瀵硅瘽绐�
+        /// </summary>
+        /// <param name="title">鏍囬</param>
+        /// <param name="message">淇℃伅</param>
+        /// <param name="cancelButtonText">鍙栨秷鎸夐敭澶囨敞锛屽�糿ull琛ㄧず涓嶆樉绀哄彇娑堟寜閿�</param>
+        /// <param name="okButtonText">纭鎸夐敭澶囨敞</param>
+        public Alert(string title, string message, string cancelButtonText, string okButtonText)
+        {
+            myUIAlertView = new UIAlertView { Title = title, Message = message };
+            myUIAlertView.Clicked += (s, e) =>
+            {
+                if (ResultEventHandler != null)
+                {
+                    if (e.ButtonIndex == 0)
+                    {
+                        if (flag)
+                        {
+                            //鍙栨秷鎸夐敭
+                            ResultEventHandler?.Invoke(this, false);
+                        }
+                        else
+                        {
+                            //鎸変簡纭畾
+                            ResultEventHandler?.Invoke(this, true);
+                        }
+                    }
+                    else if (e.ButtonIndex == 1)
+                    {
+                        //鎸変簡纭畾
+                        ResultEventHandler?.Invoke(this, true);
+                    }
+                }
+
+            };
+            if (cancelButtonText != null)
+            {
+                myUIAlertView.AddButton(cancelButtonText);
+                flag = true;
+            }
+            myUIAlertView.AddButton(okButtonText);
+        }
+
+
+        bool flag;
+        /// <summary>
+        /// 瀵硅瘽绐�
+        /// </summary>
+        /// <param name="title">鏍囬</param>
+        /// <param name="message">淇℃伅</param>
+        /// <param name="okButtonText">纭鎸夐敭澶囨敞</param>
+        public Alert(string title,string message,string okButtonText):this(title,message,null,okButtonText)
+		{
+			
+		}
+
+        /// <summary>
+        /// 缁撴灉閫氱煡浜嬩欢锛宼rue琛ㄧず閫変腑鎸夐敭锛宖alse琛ㄧず鍙栨秷浜嬩欢
+        /// </summary>
+        public Action<Alert, bool> ResultEventHandler;
+	
+		/// <summary>
+		/// 鏄剧ず褰撳墠鐨勭晫闈�
+		/// </summary>
+		public void Show()
+		{
+            myUIAlertView.Show();
+
+            //if (myUIAlertView != null && !myUIAlertView.Visible)
+            //{
+            //    myUIAlertView.Show();
+            //}
+        }
+
+
+
+        /// <summary>
+        /// 鍏抽棴褰撳墠鐨勭晫闈�
+        /// </summary>
+        public void Dismiss()
+        {
+            if (myUIAlertView != null )
+            {
+                myUIAlertView.DismissWithClickedButtonIndex(0, false);
+            }
+
+        }
+
+    }
+}
+
diff --git a/Shared.IOS/UI/Application.cs b/Shared.IOS/UI/Application.cs
new file mode 100644
index 0000000..a70a0b7
--- /dev/null
+++ b/Shared.IOS/UI/Application.cs
@@ -0,0 +1,329 @@
+锘縰sing System;
+using UIKit;
+
+namespace Shared
+{
+    //AVFoundation CoreGraphics UIKit CoreMedia AudioToolbox VideoToolbox GLKit OpenAL MobileCoreServices SystemConfiguration CoreTelephony AVFoundation WebKit
+    /// <summary>
+    /// UI澶勭悊绫�
+    /// </summary>
+    public static class Application
+    {
+        //public static double PhoneType
+        //{
+        //    get
+        //    {
+        //        var type = UIDevice.CurrentDevice.SystemVersion.Split(new string[] { "." }, StringSplitOptions.None)[0];
+        //        var d = 1.0d;
+        //        double.TryParse(type, out d);
+        //        return d;
+        //    }
+        //}
+
+        public enum GpsUseMode
+        {
+            Always,
+            WhenInUse
+        }
+        public static bool IsGpsEnable = true;
+        public static GpsUseMode CurrentGpsUseMode = GpsUseMode.WhenInUse;
+
+
+
+        //2019-08-14 淇敼
+        public static double PhoneType
+        {
+            get
+            {
+                var device = Xamarin.Essentials.DeviceInfo.Model;
+                if (device == null)
+                {
+                    return 1.0;
+                }
+                var type = device.Replace("iPhone", "").Split(',')[0];
+
+                double d = 1.0;
+                double.TryParse(type, out d);
+                return d;
+            }
+        }
+
+        //public static String PhoneTypeModel
+        //{
+        //    get
+        //    {
+        //        var device = UIDevice.CurrentDevice.Model;// .SystemVersion.Split(new string[] { "." }, StringSplitOptions.None)[0];
+
+        //        return device;
+        //    }
+        //}
+
+
+        /// <summary>
+        /// 鑾峰彇瀹為檯鐨勯珮搴�
+        /// </summary>
+        /// <returns>The real height.</returns>
+        /// <param name="height">Height.</param>
+        public static int GetRealHeight(int height)
+        {
+            return (int)(height / HeightScale);
+        }
+
+        /// <summary>
+        /// 榛樿鐨勫瓧浣撳ぇ灏�
+        /// </summary>
+        public static int FontSize = 18;
+
+        /// <summary>
+        /// 鑾峰彇瀹為檯鐨勫搴�
+        /// </summary>
+        /// <returns>The real width.</returns>
+        /// <param name="width">Width.</param>
+        public static int GetRealWidth(int width)
+        {
+            return (int)(width / WidthScale);
+        }
+        /// <summary>
+        /// 闅愯棌杞敭鐩�
+        /// </summary>
+        public static void HideSoftInput()
+        {
+            if (Shared.EditText.Instance != null)
+            {
+                Shared.EditText.Instance.Foucs = false;
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠璁惧绫诲瀷
+        /// </summary>
+        public static readonly Device DeviceType = Device.Ios;
+
+        /// <summary>
+        /// 鑾峰彇鏈�灏忔瘮渚嬬殑瀹為檯鍊�
+        /// </summary>
+        /// <returns>The minimum real.</returns>
+        /// <param name="widthOrHeight">Width or height.</param>
+        public static int GetMinReal(int widthOrHeight)
+        {
+            return (int)(widthOrHeight / MinScale);
+        }
+
+        /// <summary>
+        /// 鑾峰彇骞冲潎瀹為檯鍊�
+        /// </summary>
+        /// <returns>The minimum real average.</returns>
+        /// <param name="widthOrHeight">Width or height.</param>
+        public static int GetMinRealAverage(int widthOrHeight)
+        {
+            return (int)(widthOrHeight / AverageScale);
+        }
+
+        /// <summary>
+        /// 涓荤嚎绋嬫墽琛屾寚瀹氫簨浠�
+        /// </summary>
+        /// <param name="action">Action.</param>
+        public static void RunOnMainThread(Action action)
+        {
+            if (System.Threading.Thread.CurrentThread.ManagedThreadId == mainThreadId)
+            {
+                action();
+            }
+            else
+            {
+                RootFrameLayout.InvokeOnMainThread(action);
+            }
+        }
+
+        public static bool IsWifi {
+            get {
+                return MyReachability.InternetConnectionStatus() == MyNetworkStatus.ReachableViaWiFiNetwork;
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠璁惧鐨勫搴�
+        /// </summary>
+        public static int CurrentWidth;
+        /// <summary>
+        /// 褰撳墠璁惧鐨勯珮搴�
+        /// </summary>
+        public static int CurrentHeight;
+
+
+        /// <summary>
+        /// 瀹藉害姣斾緥
+        /// </summary>
+        /// <value>The width scale.</value>
+        public static float WidthScale
+        {
+            get
+            {
+                return DesignWidth * 1.0f / CurrentWidth;
+            }
+        }
+
+        /// <summary>
+        /// 楂樺害姣斾緥
+        /// </summary>
+        /// <value>The height scale.</value>
+        public static float HeightScale
+        {
+            get
+            {
+                //return Application.CurrentHeight / bigsize;
+                return DesignHeight * 1.0f / CurrentHeight;
+            }
+        }
+
+        /// <summary>
+        /// 鏈�灏忔瘮渚�
+        /// </summary>
+        /// <value>The minimum scale.</value>
+        public static float MinScale
+        {
+            get
+            {
+                return WidthScale < HeightScale ? WidthScale : HeightScale;
+            }
+        }
+
+        /// <summary>
+        /// 骞冲潎姣斾緥
+        /// </summary>
+        /// <value>The average scale.</value>
+        public static float AverageScale
+        {
+            get
+            {
+                return (WidthScale + HeightScale)/2;
+            }
+        }
+
+
+        /// <summary>
+        ///  璁捐瀹藉害 
+        /// </summary>
+        public static int DesignWidth=1920;
+        /// <summary>
+        /// 璁捐楂樺害
+        /// </summary>
+        public static int DesignHeight=1136;
+
+
+//        CoreGraphics.CGRect screenRect = [[UIScreen mainScreen] bounds];
+//CoreGraphics.CGSize screenSize = screenRect.size;
+
+
+        /// <summary>
+        /// 褰撳墠涓婚〉
+        /// </summary>
+        /// <value>The main page.</value>
+        public static Shared.FrameLayout MainPage
+        {
+            get;
+            private set;
+        }
+
+        static int mainThreadId;
+        static UIView rootFrameLayout;
+        /// <summary>
+        /// 鏍瑰鍣ㄨ鍥�
+        /// </summary>
+        /// <value>The root frame layout.</value>
+        public static UIView RootFrameLayout
+        {
+            get
+            {
+                return rootFrameLayout;
+            }
+            set
+            {
+                mainThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId;
+                rootFrameLayout = value;
+                CurrentWidth = (int)value.Frame.Width;
+                Console.WriteLine ("3========" + CurrentWidth);
+                CurrentHeight = (int)value.Frame.Height;
+
+                MainPage = new FrameLayout(value) { Width = (int)value.Frame.Width, Height = (int)value.Frame.Height, Parent = new RootView() { Width = (int)value.Frame.Width, Height = (int)value.Frame.Height } };
+                MainPage.Refresh();
+            }
+        }
+
+        /// <summary>
+        /// 鏁版嵁鏂囦欢鏍圭洰褰�
+        /// </summary>
+        /// <value>The root path.</value>
+        public static  string RootPath=System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)+"/";    
+
+        /// <summary>
+        ///  鍥剧墖鐨勬牴鐩綍
+        /// </summary>
+        /// <value>The root path image.</value>
+        public static string  RootPathImage
+        {
+            get
+            {
+                return RootPath + "Phone/";
+            }
+        }
+            
+        /// <summary>
+        /// 鏄惁鏄痯ad
+        /// </summary>
+        public static bool IsPad {
+            get {
+                return false;
+                //return UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad;
+            }
+        }
+
+
+        /// <summary>
+        /// 鐨偆锛宯ull鏃惰〃绀虹敤榛樿鐨�
+        /// </summary>
+        public static string Skin;
+        /// <summary>
+        /// GPS浣嶇疆鍙樺寲浜嬩欢
+        /// </summary>
+        public static Action<double, double> LocationAction;
+
+
+        //鑾峰彇褰撳墠灞忓箷鏄剧ず鐨剉iewcontroller
+        public static UIViewController currentVC
+        {
+            get
+            {
+                var rootViewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
+                var currentVC = getCurrentVCFrom(rootViewController);
+                return currentVC;
+            }
+        }
+
+        static UIViewController getCurrentVCFrom(UIViewController rootVC)
+        {
+            UIViewController currentVC;
+            if (rootVC.PresentedViewController != null)
+            {
+                // 瑙嗗浘鏄presented鍑烘潵鐨�
+                rootVC = rootVC.PresentedViewController;
+            }
+            if (rootVC.GetType() == typeof(UITabBarController))
+            {
+                // 鏍硅鍥句负UITabBarController
+                currentVC = getCurrentVCFrom((rootVC as UITabBarController).SelectedViewController);
+            }
+            else if (rootVC.GetType() == typeof(UINavigationController))
+            {
+                // 鏍硅鍥句负UINavigationController
+                currentVC = getCurrentVCFrom((rootVC as UINavigationController).VisibleViewController);
+            }
+            else
+            {
+                // 鏍硅鍥句负闈炲鑸被
+                currentVC = rootVC;
+            }
+            return currentVC;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/ArcScaleSeekBar.cs b/Shared.IOS/UI/ArcScaleSeekBar.cs
new file mode 100644
index 0000000..2847059
--- /dev/null
+++ b/Shared.IOS/UI/ArcScaleSeekBar.cs
@@ -0,0 +1,331 @@
+using System;
+//using Shared.I;
+using Shared.IOS.TBL;
+
+
+namespace Shared
+{
+
+    /// <summary>
+    /// ArcScaleSeekBar 绌鸿皟 鍒诲害鍦嗗姬鎺т欢
+    /// </summary>
+    public class ArcScaleSeekBar : View
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The HDLArcScaleSeekBar.</value>
+        HDLArcScaleSeekBar mHDLArcScaleSeekBar
+        {
+            get
+            {
+                return uiView as HDLArcScaleSeekBar;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public ArcScaleSeekBar()
+        {
+            mHDLArcScaleSeekBar = new HDLArcScaleSeekBar
+            {
+                //Frame = new CoreGraphics.CGRect(0, 0, this.Width, this.Height),
+                //mHDLArcScaleSeekBar.Frame = new CoreGraphics.CGRect(0, 0, 1024, 1024);
+                MProgressChangedDelegate = new OnProgressChangeListener(this)
+            };
+
+        }
+
+
+        /// <summary>
+        /// 鍒锋柊甯冨眬
+        /// </summary>
+        private void RefreshFrame()
+        {
+            mHDLArcScaleSeekBar.InitWithFrameSeekBar(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+        }
+
+        /// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+        {
+            get
+            {
+                return base.Width;
+            }
+            set
+            {
+                base.Width = value;
+                RefreshFrame();
+                //mHDLArcScaleSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨勯珮搴�
+        /// </summary>
+        public override int Height
+        {
+            get
+            {
+                return base.Height;
+            }
+            set
+            {
+                base.Height = value;
+                RefreshFrame();
+
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int X
+        {
+            get
+            {
+                return base.X;
+            }
+            set
+            {
+                base.X = value;
+                RefreshFrame();
+                //mHDLArcScaleSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int Y
+        {
+            get
+            {
+                return base.Y;
+            }
+            set
+            {
+                base.Y = value;
+                RefreshFrame();
+                //mHDLArcScaleSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 杩涘害鍊兼樉绀哄崟浣�
+        /// </summary>
+        /// <value>鍗曚綅瀛楃</value>
+        public String ProgressBarUnitSring
+        {
+            set
+            {
+                mHDLArcScaleSeekBar.SetProgressBarUnitSring(value);
+            }
+        }
+
+        int minValue = 0;
+        int maxValue = 100;
+        /// <summary>
+        /// 杩涘害鍊兼渶澶у��
+        /// </summary>
+        /// <value>鏈�澶у��</value>
+        public int MaxValue
+        {
+            set
+            {
+                maxValue = value;
+                mHDLArcScaleSeekBar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 杩涘害鍊兼渶灏忓��
+        /// </summary>
+        /// <value>鏈�灏忓��</value>
+        public int MinValue
+        {
+            set
+            {
+                minValue = value;
+                mHDLArcScaleSeekBar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊�
+        /// </summary>
+        /// <value>杩涘害鍊�</value>
+        public int Progress
+        {
+            set
+            {
+                mHDLArcScaleSeekBar.SetProgress(value);
+            }
+
+            get
+            {
+
+                return (int)mHDLArcScaleSeekBar.MProgress;
+            }
+        }
+
+
+
+
+        /// <summary>
+        /// 璁剧疆杩涘害鏉� 娓愬彉棰滆壊鐨勫紑濮嬮鑹插拰缁撴潫棰滆壊
+        /// </summary>
+        /// <value>寮�濮嬮鑹层�佺粨鏉熼鑹�</value>
+        public void SetProgressBarColors(uint startColor, uint endColor)
+        {
+            byte r, g, b, a;
+            r = (byte)(startColor / 256 / 256 % 256);
+            g = (byte)(startColor / 256 % 256);
+            b = (byte)(startColor % 256);
+            a = (byte)(startColor / 256 / 256 / 256 % 256);
+
+            var start = UIKit.UIColor.FromRGBA(r, g, b, a);
+
+
+            byte r2, g2, b2, a2;
+            r2 = (byte)(endColor / 256 / 256 % 256);
+            g2 = (byte)(endColor / 256 % 256);
+            b2 = (byte)(endColor % 256);
+            a2 = (byte)(endColor / 256 / 256 / 256 % 256);
+
+            var end = UIKit.UIColor.FromRGBA(r2, g2, b2, a2);
+
+            mHDLArcScaleSeekBar.SetProgressBarColors(start, end);
+
+        }
+
+        /// <summary>
+        /// 鏄惁绂荤嚎 绂荤嚎鐨勮瘽绂佹婊戝姩骞剁粯鍒惰儗鏅伄鎸″眰
+        /// </summary>
+        /// <value>鏄惁绂荤嚎</value>
+        public bool IsOffline
+        {
+            set
+            {
+                mHDLArcScaleSeekBar.SetOffline(value);
+            }
+        }
+
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧棰滆壊
+        /// </summary>
+        /// <value>鏂囧瓧棰滆壊</value>
+        public uint ProgressTextColor
+        {
+            set
+            {
+
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+
+                mHDLArcScaleSeekBar.MProgressTextColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                //mHDLArcScaleSeekBar.SetProgressTextColor(UIKit.UIColor.FromRGBA(r,  g, b, a));
+
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧澶у皬
+        /// </summary>
+        /// <value>鏂囧瓧澶у皬</value>
+        public int ProgressTextSize
+        {
+            set
+            {
+                //set => mHDLArcScaleSeekBar.SetProgressTextSize(value);
+                mHDLArcScaleSeekBar.MProgressTextSize = value;
+            }
+
+        }
+
+        /// <summary>
+        /// 鏄惁鍙互婊戝姩
+        /// </summary>
+        /// <value>鏄惁鍙互婊戝姩</value>
+        public bool IsClickable
+        {
+            set
+            {
+                mHDLArcScaleSeekBar.IsClickable = value;
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁鏄剧ず杩涘害鏂囧瓧
+        /// </summary>
+        /// <value>鏄惁鏄剧ず杩涘害鏂囧瓧</value>
+        public bool IsProgressTextShow
+        {
+            set
+            {
+                mHDLArcScaleSeekBar.IsProgressTextShow = value;
+            }
+        }
+
+
+
+
+
+        /// <summary>
+        /// EventHandler
+        /// </summary>
+        public EventHandler<int> OnProgressChangedEvent;
+        public EventHandler<bool> OnStartTrackingTouchEvent;
+        public EventHandler<int> OnStopTrackingTouchEvent;
+
+        ///// <summary>
+        ///// OnProgressChangeListener 缁ф壙鍝嶅簲浜嬩欢
+        ///// </summary>
+        OnProgressChangeListener mOnProgressChangeListener;
+
+        public class OnProgressChangeListener : HDLSeekBarProgressChangedDelegate
+        {
+
+            [Weak] ArcScaleSeekBar _ArcScaleSeekBar;
+
+            public OnProgressChangeListener(ArcScaleSeekBar view)
+            {
+                _ArcScaleSeekBar = view;
+            }
+
+            public override void OnProgressChanged(int mProgress)
+            {
+                _ArcScaleSeekBar.OnProgressChangedEvent?.Invoke(this, mProgress);
+            }
+
+            public override void OnStartTrackingTouch()
+            {
+                _ArcScaleSeekBar.OnStartTrackingTouchEvent?.Invoke(this, true);
+            }
+
+            public override void OnStopTrackingTouch(int mProgress)
+            {
+                _ArcScaleSeekBar.OnStopTrackingTouchEvent?.Invoke(this, mProgress);
+            }
+        }
+
+    }
+}
diff --git a/Shared.IOS/UI/ArcSeekBar.cs b/Shared.IOS/UI/ArcSeekBar.cs
new file mode 100644
index 0000000..5b51770
--- /dev/null
+++ b/Shared.IOS/UI/ArcSeekBar.cs
@@ -0,0 +1,426 @@
+using System;
+//using Shared.I;
+using Shared.IOS.TBL;
+
+
+namespace Shared
+{
+
+    /// <summary>
+    /// HDLArcSeekBar 鎺т欢
+    /// </summary>
+    public class ArcSeekBar : View
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The HDLArcSeekBar.</value>
+        HDLArcSeekbar mHDLArcSeekBar
+        {
+            get
+            {
+                return uiView as HDLArcSeekbar;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public ArcSeekBar()
+        {
+            mHDLArcSeekBar = new HDLArcSeekbar
+            {
+                //Frame = new CoreGraphics.CGRect(0, 0, this.Width, this.Height),
+                //mHDLArcSeekBar.Frame = new CoreGraphics.CGRect(0, 0, 1024, 1024);
+                MProgressChangedDelegate = new OnProgressChangeListener(this)
+            };
+
+        }
+
+
+        /// <summary>
+        /// 鍒锋柊甯冨眬
+        /// </summary>
+        private void RefreshFrame()
+        {
+            mHDLArcSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+        }
+
+        /// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+        {
+            get
+            {
+                return base.Width;
+            }
+            set
+            {
+                base.Width = value;
+                RefreshFrame();
+                //mHDLArcSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨勯珮搴�
+        /// </summary>
+        public override int Height
+        {
+            get
+            {
+                return base.Height;
+            }
+            set
+            {
+                base.Height = value;
+                RefreshFrame();
+
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int X
+        {
+            get
+            {
+                return base.X;
+            }
+            set
+            {
+                base.X = value;
+                RefreshFrame();
+                //mHDLArcSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int Y
+        {
+            get
+            {
+                return base.Y;
+            }
+            set
+            {
+                base.Y = value;
+                RefreshFrame();
+                //mHDLArcSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 杩涘害鍊兼樉绀哄崟浣�
+        /// </summary>
+        /// <value>鍗曚綅瀛楃</value>
+        public String ProgressBarUnitSring
+        {
+            set
+            {
+                mHDLArcSeekBar.SetProgressBarUnitSring(value);
+            }
+        }
+
+        int minValue = 0;
+        int maxValue = 100;
+        /// <summary>
+        /// 杩涘害鍊兼渶澶у��
+        /// </summary>
+        /// <value>鏈�澶у��</value>
+        public int MaxValue
+        {
+            set
+            {
+                maxValue = value;
+                mHDLArcSeekBar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 杩涘害鍊兼渶灏忓��
+        /// </summary>
+        /// <value>鏈�灏忓��</value>
+        public int MinValue
+        {
+            set
+            {
+                minValue = value;
+                mHDLArcSeekBar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊�
+        /// </summary>
+        /// <value>杩涘害鍊�</value>
+        public int Progress
+        {
+            set
+            {
+                mHDLArcSeekBar.SetProgress(value);
+            }
+
+            get
+            {
+
+                return (int)mHDLArcSeekBar.MProgressCurrentValue;
+            }
+        }
+
+        /// <summary>
+        /// 鍚屾椂璁剧疆鍦嗗姬鍜屾嫋鍔ㄥ渾褰㈢殑瀹�
+        /// </summary>
+        /// <value>瀹�</value>
+        public int ArcWidthWithDefaultStyle
+        {
+            set
+            {
+                mHDLArcSeekBar.MArcWidth = value;
+            }
+        }
+
+        /// <summary>
+        /// 鍦嗗姬榛樿鑳屾櫙棰滆壊
+        /// </summary>
+        /// <value>鑳屾櫙棰滆壊</value>
+        public uint ArcColor
+        {
+            set
+            {
+                //mHDLArcSeekBar.SetArcColors(value);
+
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+
+                mHDLArcSeekBar.MArcBackBarColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+
+        
+            }
+        }
+
+        /// <summary>
+        /// 杩涘害鏉¢鑹� 鍗曚竴棰滆壊涓嶆笎鍙�
+        /// </summary>
+        /// <value>鍗曚竴杩涘害鏉¢鑹�</value>
+        public uint ProgressBarColor
+        {
+            set
+            {
+                //mHDLArcSeekBar.SetProgressBarColor(value);
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+                mHDLArcSeekBar.SetProgressBarColor(UIKit.UIColor.FromRGBA(r, g, b, a));
+            }
+
+        }
+
+
+        uint thumbColor = 0xFFFFFFFF;
+        /// <summary>
+        /// 鎷栧姩鎸夐挳鍦嗗舰棰滆壊
+        /// </summary>
+        /// <value>鎷栧姩鎸夐挳棰滆壊</value>
+        public uint ThumbColor
+        {
+            get
+            {
+                return thumbColor;
+            }
+            set
+            {
+                thumbColor = value;
+
+                byte r, g, b, a;
+                r = (byte)(thumbColor / 256 / 256 % 256);
+                g = (byte)(thumbColor / 256 % 256);
+                b = (byte)(thumbColor % 256);
+                a = (byte)(thumbColor / 256 / 256 / 256 % 256);
+
+                mHDLArcSeekBar.MThumbColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+            }
+        }
+
+        /// <summary>
+        /// 鎷栧姩鎸夐挳榛樿褰㈢姸 濉弧瀹炲績鎴栬�呯┖蹇�
+        /// </summary>
+        /// <value>鏄惁濉弧</value>
+        public bool ThumbModeFill
+        {
+            set
+            {
+                if (value)
+                {
+                    mHDLArcSeekBar.MThumbMode = IOS.TBL.HDLThumbMode.Fill;
+                }
+                else
+                {
+                    mHDLArcSeekBar.MThumbMode = IOS.TBL.HDLThumbMode.Stroke;
+                }
+
+            }
+        }
+
+        /// <summary>
+        /// 鎷栧姩鎸夐挳鍦嗗舰鍗婂緞
+        /// </summary>
+        /// <value>鍗婂緞</value>
+        public int ThumbRadius
+        {
+            set
+            {
+                //mHDLArcSeekBar.SetThumbRadius(value);
+                mHDLArcSeekBar.MThumbWidth = value * 2;//璁剧疆鐩村緞
+            }
+        }
+
+        /// <summary>
+        /// 鍦嗗姬瀹�
+        /// </summary>
+        /// <value>瀹�</value>
+        public int ArcWidth
+        {
+            set
+            {
+                mHDLArcSeekBar.MArcWidth = value;
+            }
+        }
+
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧棰滆壊
+        /// </summary>
+        /// <value>鏂囧瓧棰滆壊</value>
+        public uint ProgressTextColor
+        {
+            set
+            {
+
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+
+                mHDLArcSeekBar.MProgressTextColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                //mHDLArcSeekBar.SetProgressTextColor(UIKit.UIColor.FromRGBA(r,  g, b, a));
+
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧澶у皬
+        /// </summary>
+        /// <value>鏂囧瓧澶у皬</value>
+        public int ProgressTextSize
+        {
+            set
+            {
+                //set => mHDLArcSeekBar.SetProgressTextSize(value);
+                mHDLArcSeekBar.MProgressTextSize = value;
+            }
+
+        }
+
+        /// <summary>
+        /// 鏄惁鍙互婊戝姩
+        /// </summary>
+        /// <value>鏄惁鍙互婊戝姩</value>
+        public bool IsClickable
+        {
+            set
+            {
+                mHDLArcSeekBar.IsClickable = value;
+            }
+        }
+
+
+        /// <summary>
+        /// 璁剧疆杩涘害鏉� 娓愬彉棰滆壊鐨勫紑濮嬮鑹插拰缁撴潫棰滆壊
+        /// </summary>
+        /// <value>寮�濮嬮鑹层�佺粨鏉熼鑹�</value>
+        public void SetProgressBarColors(uint startColor, uint endColor)
+        {
+            byte r, g, b, a;
+            r = (byte)(startColor / 256 / 256 % 256);
+            g = (byte)(startColor / 256 % 256);
+            b = (byte)(startColor % 256);
+            a = (byte)(startColor / 256 / 256 / 256 % 256);
+
+            var start = UIKit.UIColor.FromRGBA(r, g, b, a);
+
+
+            byte r2, g2, b2, a2;
+            r2 = (byte)(endColor / 256 / 256 % 256);
+            g2 = (byte)(endColor / 256 % 256);
+            b2 = (byte)(endColor % 256);
+            a2 = (byte)(endColor / 256 / 256 / 256 % 256);
+
+            var end = UIKit.UIColor.FromRGBA(r2, g2, b2, a2);
+
+            mHDLArcSeekBar.SetProgressBarColors(start, end);
+
+        }
+
+
+        /// <summary>
+        /// EventHandler
+        /// </summary>
+        public EventHandler<int> OnProgressChangedEvent;
+        public EventHandler<bool> OnStartTrackingTouchEvent;
+        public EventHandler<int> OnStopTrackingTouchEvent;
+
+        ///// <summary>
+        ///// OnProgressChangeListener 缁ф壙鍝嶅簲浜嬩欢
+        ///// </summary>
+        OnProgressChangeListener mOnProgressChangeListener;
+
+        public class OnProgressChangeListener : HDLArcSeekbarProgressChangedDelegate
+        {
+
+            [Weak] ArcSeekBar _ArcSeekBar;
+
+            public OnProgressChangeListener(ArcSeekBar view)
+            {
+                _ArcSeekBar = view;
+            }
+
+            public override void OnProgressChanged(int mProgress)
+            {
+                _ArcSeekBar.OnProgressChangedEvent?.Invoke(this, mProgress);
+            }
+
+            public override void OnStartTrackingTouch()
+            {
+                _ArcSeekBar.OnStartTrackingTouchEvent?.Invoke(this, true);
+            }
+
+            public override void OnStopTrackingTouch(int mProgress)
+            {
+                _ArcSeekBar.OnStopTrackingTouchEvent?.Invoke(this, mProgress);
+            }
+        }
+
+    }
+}
diff --git a/Shared.IOS/UI/Button.cs b/Shared.IOS/UI/Button.cs
new file mode 100644
index 0000000..f029376
--- /dev/null
+++ b/Shared.IOS/UI/Button.cs
@@ -0,0 +1,452 @@
+using UIKit;
+using Foundation;
+using Shared.IO;
+using System;
+
+namespace Shared
+{
+	/// <summary>
+	/// Button 鎸夐敭
+	/// </summary>
+	public class Button : View
+	{
+		MyButton iosButton
+		{ 
+			get 
+			{ 
+				return uiView as MyButton;
+			}
+			set 
+			{  
+				uiView = value;
+			}
+		}
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Shared.Button"/> class.
+        /// </summary>
+        public Button()
+        {
+            iosButton = new MyButton(this) { };
+            iosButton.TitleLabel.Font = UIFont.FromName(FontName, Application.FontSize);
+        }
+
+        byte[] imageBytes;
+        public byte[] ImageBytes {
+            get {
+                return imageBytes;
+            }
+            set {
+                imageBytes = value;
+                IsSelected = isSelected;
+            }
+        } 
+
+		int textID;
+		/// <summary>
+		/// 鏍规嵁ID鑾峰彇瀵瑰簲鐨勫娉�
+		/// </summary>
+		/// <value>The text I.</value>
+		public int TextID
+		{
+			get
+			{
+				return textID;
+			}
+			set
+			{
+				textID = value;
+				Text = Language.StringByID(TextID);
+			}
+		}
+
+		/// <summary>
+		/// 鏂囨湰
+		/// </summary>
+		/// <value>The text.</value>
+		public string Text
+		{
+			get
+			{
+				return iosButton.Title(UIKit.UIControlState.Normal);
+			}
+			set
+			{
+
+				iosButton.SetTitle(value, UIKit.UIControlState.Normal);
+			}
+		}
+
+        /// <summary>
+        /// 瀛椾綋鍚嶇О
+        /// </summary>
+        /// <value>The name of the font.</value>
+        public string FontName{
+            get{
+                return iosButton.TitleLabel.Font.Name;
+            }
+            set{
+                iosButton.TitleLabel.Font = UIFont.FromName(value, iosButton.Font.PointSize);
+            }
+        }
+
+        public bool IsMoreLines {
+            get {
+                return iosButton.TitleLabel.Lines != 1 ? true : false;
+            }
+            set {
+                //IsMoreLines = value;
+                iosButton.TitleLabel.Lines = value ? 0 : 1;
+            }
+        }
+
+        /// <summary>
+        /// 鍒涙柊闇�瑕佸垱鏂扮殑淇℃伅
+        /// </summary>
+        public override void Refresh()
+		{
+			base.Refresh();
+			IsSelected = isSelected;
+		}
+
+		/// <summary>
+		/// 鏂囧瓧澶у皬,榛樿12
+		/// </summary>
+		/// <value>The size of the text.</value>
+		public float TextSize
+		{
+			get
+			{
+				return (float)iosButton.TitleLabel.Font.PointSize;
+			}
+			set
+			{
+                iosButton.TitleLabel.Font = UIFont.FromName(FontName, value);
+			}
+		}
+
+
+		uint textColor=0xFFFFFFFF;
+		/// <summary>
+		/// 鏂囧瓧棰滆壊
+		/// </summary>
+		/// <value>The color of the text.</value>
+		public uint TextColor
+		{
+			get
+			{
+				return textColor;
+			}
+			set
+			{
+				textColor = value;
+				if (IsSelected)
+				{
+					return;
+				}
+				byte r, g, b, a;
+				r = (byte)(textColor / 256 / 256 % 256);
+				g = (byte)(textColor / 256 % 256);
+				b = (byte)(textColor % 256);
+				a = (byte)(textColor / 256 / 256 / 256 % 256);
+				iosButton.SetTitleColor(UIKit.UIColor.FromRGBA(r, g, b, a), UIControlState.Normal);
+			}
+		}
+
+		uint selecteTextColor = 0xFFFFFFFF;
+/// <summary>
+/// 鏂囧瓧棰滆壊
+/// </summary>
+/// <value>The color of the text.</value>
+public uint SelectedTextColor
+		{
+			get
+			{
+				return selecteTextColor;
+			}
+			set
+			{
+				selecteTextColor = value;
+				if (!IsSelected)
+				{
+					return;
+				}
+				byte r, g, b, a;
+				r = (byte)(selecteTextColor / 256 / 256 % 256);
+				g = (byte)(selecteTextColor / 256 % 256);
+				b = (byte)(selecteTextColor % 256);
+				a = (byte)(selecteTextColor / 256 / 256 / 256 % 256);
+
+				iosButton.SetTitleColor(UIKit.UIColor.FromRGBA(r, g, b, a), UIControlState.Normal);
+			}
+		}
+
+		bool isSelected;
+
+		/// <summary>
+		/// 閫変腑鐘舵��
+		/// </summary>
+		/// <value><c>true</c> if this instance is selected; otherwise, <c>false</c>.</value>
+		public bool IsSelected
+        {
+            get
+            {
+                return isSelected;
+            }
+            set
+            {
+                try
+                {
+                    isSelected = value;
+                    if (!IsCanRefresh)
+                    {
+                        return;
+                    }
+                    if (isSelected)
+                    {
+                        if (null == SelectedImagePath)
+                        {
+                            byte r, g, b, a;
+                            r = (byte)(SelectedBackgroundColor / 256 / 256 % 256);
+                            g = (byte)(SelectedBackgroundColor / 256 % 256);
+                            b = (byte)(SelectedBackgroundColor % 256);
+                            a = (byte)(SelectedBackgroundColor / 256 / 256 / 256 % 256);
+                            iosButton.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                        }
+                        else
+                        {
+                            iosButton.SetBackgroundImage(UIImage.FromFile(FileUtils.GetImageFilePath(SelectedImagePath)), UIControlState.Normal);
+                        }
+                        SelectedTextColor = selecteTextColor;
+                    }
+                    else
+                    {
+                        if (imageBytes != null)
+                        {
+                            iosButton.SetBackgroundImage(UIImage.LoadFromData(NSData.FromArray(imageBytes)), UIControlState.Normal);
+                            return;
+                        }
+                        if (null == UnSelectedImagePath)
+                        {
+                            byte r, g, b, a;
+                            r = (byte)(BackgroundColor / 256 / 256 % 256);
+                            g = (byte)(BackgroundColor / 256 % 256);
+                            b = (byte)(BackgroundColor % 256);
+                            a = (byte)(BackgroundColor / 256 / 256 / 256 % 256);
+                            iosButton.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                        }
+                        else
+                        {
+                            iosButton.SetBackgroundImage(UIImage.LoadFromData(NSData.FromFile(FileUtils.GetImageFilePath(UnSelectedImagePath))), UIControlState.Normal);
+                        }
+                        TextColor = textColor;
+                    }
+                }
+                catch
+                {
+                }
+            }
+        }
+
+
+		TextAlignment textAlignment = TextAlignment.Center;
+		/// <summary>
+		///  鏂囧瓧瀵归綈鏂瑰紡
+		/// </summary>
+		/// <param name="horizontalAlignment">Horizontal alignment.</param>
+		/// <param name="verticalAlignment">Vertical alignment.</param>
+		public TextAlignment TextAlignment
+		{
+			get
+			{
+				return textAlignment;
+			}
+			set
+			{
+				textAlignment = value;
+				switch (value)
+				{
+					case TextAlignment.TopLeft:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Left;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Top;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Left;
+						break;
+					case TextAlignment.TopCenter:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Center;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Top;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Center;
+						break;
+					case TextAlignment.TopRight:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Right;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Top;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Right;
+						break;
+					case TextAlignment.CenterLeft:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Left;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Center;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Left;
+						break;
+					case TextAlignment.Center:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Center;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Center;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Center;
+						break;
+					case TextAlignment.CenterRight:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Right;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Center;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Right;
+						break;
+					case TextAlignment.BottomLeft:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Left;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Left;
+						break;
+					case TextAlignment.BottomCenter:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Center;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Center;
+						break;
+					case TextAlignment.BottomRight:
+                        iosButton.TitleLabel.TextAlignment = UITextAlignment.Right;
+                        iosButton.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+						iosButton.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Right;
+						break;
+				}
+			}
+		}
+
+
+
+		string selectedImagePath;
+		/// <summary>
+		/// 閫夋嫨鏃惰儗鏅浘璺緞
+		/// </summary>
+		/// <value>The selected image path.</value>
+		public string SelectedImagePath
+		{
+			get
+			{
+				return selectedImagePath;
+			}
+			set
+			{
+				selectedImagePath = value;
+				IsSelected = IsSelected;
+			}
+		}
+
+		string unSelectedImagePath;
+		/// <summary>
+		/// 闈為�変腑鐘舵�佺殑鑳屾櫙鍥捐矾寰�
+		/// </summary>
+		/// <value>The un selected image path.</value>
+		public string UnSelectedImagePath
+		{
+			get
+			{
+				return unSelectedImagePath;
+			}
+			set
+			{
+				unSelectedImagePath = value;
+				IsSelected = IsSelected;
+			}
+		}
+
+		/// <summary>
+		/// 鍐呰竟璺�
+		/// </summary>
+		/// <value>The padding.</value>
+		public override Padding Padding
+		{
+			get
+			{
+				return new Padding((int)iosButton.ContentEdgeInsets.Top, (int)iosButton.ContentEdgeInsets.Left, (int)iosButton.ContentEdgeInsets.Bottom, (int)iosButton.ContentEdgeInsets.Right);
+			}
+			set
+			{
+				iosButton.ContentEdgeInsets = new UIEdgeInsets(value.Top, value.Left, value.Bottom, value.Right);
+			}
+		}
+
+		/// <summary>
+		/// 鏄惁浣跨敤鐐瑰嚮
+		/// </summary>
+		/// <value><c>true</c> if enable; otherwise, <c>false</c>.</value>
+		public override bool Enable
+		{
+			get
+			{
+				return iosButton.Enabled;
+			}
+			set
+			{
+				iosButton.Enabled = value;
+			}
+		}
+
+		/// <summary>
+		/// 閫夋嫨鏃惰儗鏅鑹�
+		/// </summary>
+		/// <value>The color of the text.</value>
+		public uint SelectedBackgroundColor
+		{
+			get;
+			set;
+		}
+
+		class MyButton : UIKit.UIButton
+		{
+            [Weak] View view; 
+			public MyButton(View view)
+			{
+                this.view = view;
+				ContentEdgeInsets = new UIEdgeInsets(3, 3, 3, 3);
+                TitleLabel.LineBreakMode = UILineBreakMode.TailTruncation;
+			}
+
+			/// <summary>
+			/// 鐐瑰嚮寮�濮�
+			/// </summary>
+			/// <param name="touches">Touches.</param>
+			/// <param name="evt">Evt.</param>
+			public override void TouchesBegan(NSSet touches, UIEvent evt)
+			{
+                view?.TouchEvent(EventActions.Down,(touches.AnyObject as UITouch).LocationInView(this));
+            }
+			/// <summary>
+			///  绉诲姩
+			/// </summary>
+			/// <param name="touches">Touches.</param>
+			/// <param name="evt">Evt.</param>
+			public override void TouchesMoved(NSSet touches, UIEvent evt)
+			{
+                view?.TouchEvent(EventActions.Move,(touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override UILineBreakMode LineBreakMode { get => base.LineBreakMode; set => base.LineBreakMode = value; }
+
+            public override UILabel TitleLabel => base.TitleLabel;
+
+            //int isMoreLines
+
+        }
+	}
+}
+
+
diff --git a/Shared.IOS/UI/Camera.cs b/Shared.IOS/UI/Camera.cs
new file mode 100644
index 0000000..7f4fba4
--- /dev/null
+++ b/Shared.IOS/UI/Camera.cs
@@ -0,0 +1,281 @@
+锘縰sing System;
+using AVFoundation;
+using CoreGraphics;
+using Foundation;
+using UIKit;
+
+namespace Shared
+{
+    /// <summary>
+    /// 鎷嶇収鎴栬�呴�夋嫨鍥剧墖
+    /// </summary>
+    public static class Camera
+    {
+        static readonly UIImagePickerController _picker;
+        static bool IsZoom;
+
+        /// <summary>
+        /// 鎷嶇収鎴栬�呰鍙栧浘鐗囧畬鎴愭椂璋冪敤鐨勫姩浣�,string==null琛ㄧず鐢ㄦ埛鍙栨秷浜嗘媿鐓ф垨鑰呭彇娑堥�夋嫨鍥剧墖,string!=null,琛ㄧず鍥剧墖鐨勮矾寰�
+        /// </summary>
+        static Action<string> _callback;
+
+        static Camera()
+        {
+            _picker = new UIImagePickerController();
+            _picker.Delegate = new MyCameraDelegate();
+        }
+
+        static string _fileName;
+
+        /// <summary>
+        /// Camera delegate.
+        /// </summary>
+        class MyCameraDelegate : UIImagePickerControllerDelegate
+        {
+            //16*9
+            public override void FinishedPickingMedia(UIImagePickerController picker, NSDictionary info)
+            {
+                picker.DismissModalViewController(true);
+
+                var tempPhoto = info.ValueForKey(new NSString("UIImagePickerControllerOriginalImage")) as UIImage;
+
+                tempPhoto = rotateImage(tempPhoto);
+                var width = tempPhoto.CGImage.Width;
+                var height = tempPhoto.CGImage.Height;
+                //System.Console.WriteLine("鍘熷搴�=" + width + "楂樺害=" + height);
+
+                nfloat noScale = width / height;
+                nfloat scale = 16.0f / 9.0f;
+                if (!IsZoom)
+                {
+                    scale = noScale;
+                }
+                nfloat x = 0, y = 0, w = width, h = height;
+                if (scale < noScale)
+                {
+                    w = height * scale;
+                    x = (width - w) / 2;
+                }
+                else
+                {
+                    h = width / scale;
+                    y = (height - h) / 2;
+                }
+
+
+
+                var imageRef = tempPhoto.CGImage.WithImageInRect(new CGRect(x, y, w, h));
+                UIImage newImage = UIImage.FromImage(imageRef);
+
+
+                // 鍏抽棴涓婁笅鏂�
+                //System.Console.WriteLine("鏀瑰彉鍚庣殑瀹藉害=" + newImage.Size.Width + "楂樺害=" + newImage.Size.Height);
+                string tempFilePath = System.IO.Path.Combine(Application.RootPath, _fileName);
+                NSError err = null;
+                float f = 0.1f;
+                NSData nsData = newImage.AsJPEG(f);
+                while (f < 1.0f)
+                {
+                    if (200 * 1024 < nsData.Length)
+                    {
+                        break;
+                    }
+                    f += 0.1f;
+                    nsData = newImage.AsJPEG(f);
+                }
+                if (nsData.Save(tempFilePath, false, out err))
+                {
+                    //淇濆瓨鎴愬姛
+                }
+                else
+                {
+                    Console.WriteLine("淇濆瓨鍥剧墖澶�");
+                }
+                newImage.Dispose();
+                _callback?.Invoke(tempFilePath);
+                _callback = null;
+            }
+
+            public override void Canceled(UIImagePickerController picker)
+            {
+                picker.DismissModalViewController(true);
+                _callback?.Invoke(null);
+                _callback = null;
+            }
+
+            UIImage rotateImage(UIImage aImage)
+            {
+                var imgRef = aImage.CGImage;
+                var width = imgRef.Width;
+                var height = imgRef.Height;
+                CGAffineTransform transform = CGAffineTransform.MakeIdentity();
+                CGRect bounds = new CGRect(0, 0, width, height);
+                nfloat scaleRatio = 1;
+                nfloat boundHeight;
+                UIImageOrientation orient = aImage.Orientation;
+                nfloat M_PI = 3.14159265358979323846f;
+
+                switch (orient)
+                {
+                    case UIImageOrientation.Up: //EXIF = 1
+                        transform = CGAffineTransform.MakeIdentity();
+                        break;
+                    case UIImageOrientation.UpMirrored: //EXIF = 2
+                        transform = CGAffineTransform.MakeTranslation(width, 0.0f);
+                        transform = CGAffineTransform.Scale(transform, -1.0f, 1.0f);
+                        break;
+                    case UIImageOrientation.Down: //EXIF = 3
+                        transform = CGAffineTransform.MakeTranslation(width, height);
+                        transform = CGAffineTransform.Rotate(transform, M_PI);
+                        break;
+                    case UIImageOrientation.DownMirrored: //EXIF = 4
+                        transform = CGAffineTransform.MakeTranslation(0.0f, height);
+                        transform = CGAffineTransform.Scale(transform, 1.0f, -1.0f);
+                        break;
+                    case UIImageOrientation.LeftMirrored: //EXIF = 5
+                        boundHeight = bounds.Height;
+                        bounds.Height = bounds.Size.Width;
+                        bounds.Width = boundHeight;
+                        transform = CGAffineTransform.MakeTranslation(height, width);
+                        transform = CGAffineTransform.Scale(transform, -1.0f, 1.0f);
+                        transform = CGAffineTransform.Rotate(transform, 3.0f * M_PI / 2.0f);
+                        break;
+                    case UIImageOrientation.Left: //EXIF = 6
+                        boundHeight = bounds.Height;
+                        bounds.Height = bounds.Width;
+                        bounds.Width = boundHeight;
+                        transform = CGAffineTransform.MakeTranslation(0.0f, width);
+                        transform = CGAffineTransform.Rotate(transform, 3.0f * M_PI / 2.0f);
+                        break;
+                    case UIImageOrientation.RightMirrored: //EXIF = 7
+                        boundHeight = bounds.Height;
+                        bounds.Height = bounds.Width;
+                        bounds.Width = boundHeight;
+                        transform = CGAffineTransform.MakeScale(-1.0f, 1.0f);
+                        transform = CGAffineTransform.Rotate(transform, M_PI / 2.0f);
+                        break;
+                    case UIImageOrientation.Right: //EXIF = 8
+                        boundHeight = bounds.Height;
+                        bounds.Height = bounds.Width;
+                        bounds.Width = boundHeight;
+                        transform = CGAffineTransform.MakeTranslation(height, 0.0f);
+                        transform = CGAffineTransform.Rotate(transform, M_PI / 2.0f);
+                        break;
+                        //default:
+                        // [NSException raise:NSInternalInconsistencyException format:@"Invalid image orientation"];
+                }
+
+                UIGraphics.BeginImageContext(bounds.Size);
+                var context = UIGraphics.GetCurrentContext();
+                if (orient == UIImageOrientation.Right || orient == UIImageOrientation.Left)
+                {
+                    context.ScaleCTM(-scaleRatio, scaleRatio);
+                    context.TranslateCTM(-height, 0);
+                }
+                else
+                {
+                    context.ScaleCTM(scaleRatio, -scaleRatio);
+                    context.TranslateCTM(0, -height);
+                }
+
+                context.ConcatCTM(transform);
+                UIGraphics.GetCurrentContext().DrawImage(new CGRect(0, 0, width, height), imgRef);
+                UIImage imageCopy = UIGraphics.GetImageFromCurrentImageContext();
+                imgRef.Dispose();
+                UIGraphics.EndImageContext();
+                return imageCopy;
+            }
+        }
+
+        /// <summary>
+        /// 鎷嶇収
+        /// </summary>
+        /// <param name="callback">鍥炶皟鍑芥暟</param>
+        /// <param name="fileName">鏂囦欢鍚�</param>
+        public static void TakePicture(Action<string> callback, string fileName, bool isZoom = true)
+        {
+            _fileName = fileName;
+            _callback = callback;
+            _picker.SourceType = UIImagePickerControllerSourceType.Camera;
+            IsZoom = isZoom;
+            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
+            {
+                if (!UIImagePickerController.IsCameraDeviceAvailable(UIImagePickerControllerCameraDevice.Front))
+                {
+                    return;
+                }
+                _picker.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
+                currentVC.PresentModalViewController(_picker, true);
+            }
+            else
+            {
+                currentVC.PresentModalViewController(_picker, true);
+            }
+        }
+
+        /// <summary>
+        /// 閫夋嫨鍥剧墖
+        /// </summary>
+        /// <param name="callback">鍥炶皟鍑芥暟</param>
+        /// <param name="fileName">鏂囦欢鍚�</param>
+        public static void SelectPicture(Action<string> callback, string fileName, bool isZoom = true)
+        {
+            _fileName = fileName;
+            _callback = callback;
+            _picker.SourceType = UIImagePickerControllerSourceType.PhotoLibrary;
+            IsZoom = isZoom;
+            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
+            {
+                NSOperationQueue.MainQueue.AddOperation(() =>
+                {
+                    _picker.ModalTransitionStyle = UIModalTransitionStyle.CoverVertical;
+                    var popover = new UIPopoverController(_picker) { PopoverContentSize = Application.RootFrameLayout.Frame.Size };
+                    popover.PresentFromRect(new CGRect(95, 235, 300, 300), Application.RootFrameLayout, UIPopoverArrowDirection.Down | UIPopoverArrowDirection.Left, true);
+                });
+            }
+            else
+            {
+                currentVC.PresentModalViewController(_picker, true);
+            }
+        }
+
+        //鑾峰彇褰撳墠灞忓箷鏄剧ず鐨剉iewcontroller
+        static UIViewController currentVC
+        {
+            get
+            {
+                var rootViewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
+                var currentVC = getCurrentVCFrom(rootViewController);
+                return currentVC;
+            }
+        }
+
+        static UIViewController getCurrentVCFrom(UIViewController rootVC)
+        {
+            UIViewController currentVC;
+            if (rootVC.PresentedViewController != null)
+            {
+                // 瑙嗗浘鏄presented鍑烘潵鐨�
+                rootVC = rootVC.PresentedViewController;
+            }
+            if (rootVC.GetType() == typeof(UITabBarController))
+            {
+                // 鏍硅鍥句负UITabBarController
+                currentVC = getCurrentVCFrom((rootVC as UITabBarController).SelectedViewController);
+            }
+            else if (rootVC.GetType() == typeof(UINavigationController))
+            {
+                // 鏍硅鍥句负UINavigationController
+                currentVC = getCurrentVCFrom((rootVC as UINavigationController).VisibleViewController);
+            }
+            else
+            {
+                // 鏍硅鍥句负闈炲鑸被
+                currentVC = rootVC;
+            }
+            return currentVC;
+        }
+    }
+}
+
+
diff --git a/Shared.IOS/UI/ColorPicker.cs b/Shared.IOS/UI/ColorPicker.cs
new file mode 100644
index 0000000..fa63d62
--- /dev/null
+++ b/Shared.IOS/UI/ColorPicker.cs
@@ -0,0 +1,164 @@
+锘縰sing System;
+using CoreGraphics;
+using Foundation;
+using Shared.IO;
+using UIKit;
+
+
+namespace Shared
+{
+	/// <summary>
+	/// 鑹叉澘
+	/// </summary>
+	public class ColorPicker :View
+	{
+		MyUIImageView myUIImageView
+		{
+			get
+			{
+				return uiView as MyUIImageView;
+			}
+			set
+			{
+				uiView = value;
+			}
+		}
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Shared.Button"/> class.
+        /// </summary>
+        public ColorPicker()
+        {
+            myUIImageView = new MyUIImageView(this) { };
+          
+        }
+
+		public override void Refresh()
+		{
+			base.Refresh();
+			//Width = (int)myUIImageView.Image.Size.Width;
+			//Height = (int)myUIImageView.Image.Size.Height;
+		}
+
+		string colorImagePath;
+		/// <summary>
+		/// 鑹叉澘鍥�
+		/// </summary>
+		/// <value>The color image path.</value>
+		public string ColorImagePath
+		{
+			get {
+				return colorImagePath;
+			}
+			set
+			{
+				colorImagePath = value;
+
+                myUIImageView.Image = UIImage.FromFile(FileUtils.GetImageFilePath(colorImagePath));
+			}
+		}
+
+        /// <summary>
+        /// 棰滆壊鍙樺寲
+        /// </summary>
+        public Action<View, byte[]> ColorChaged;
+
+		class MyUIImageView : UIImageView
+		{
+            [Weak] ColorPicker colorPicker;
+			public MyUIImageView(ColorPicker colorPicker)
+			{
+                this.colorPicker = colorPicker;
+				UserInteractionEnabled = true;
+			}
+
+
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                colorPicker?.TouchEvent(EventActions.Down,(touches.AnyObject as UITouch).LocationInView(this) );
+				colorChaged(colorAtPixel((touches.AnyObject as UITouch).LocationInView(this)));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                colorPicker?.TouchEvent(EventActions.Move,(touches.AnyObject as UITouch).LocationInView(this));
+				colorChaged(colorAtPixel((touches.AnyObject as UITouch).LocationInView(this)));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                colorPicker?.TouchEvent(EventActions.Up,(touches.AnyObject as UITouch).LocationInView(this));
+				colorChaged(colorAtPixel((touches.AnyObject as UITouch).LocationInView(this)));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                colorPicker?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+         
+            void colorChaged(UIColor uiColor)
+			{
+				nfloat r, g, b, a;
+				uiColor.GetRGBA(out r, out g, out b, out a);
+				if (r == 0 && g == 0 && b == 0)
+				{
+					return;
+				}
+               colorPicker?.ColorChaged?.Invoke(colorPicker,new byte[] { (byte)(r * 255), (byte)(g * 255), (byte)(b * 255) });
+			}
+
+			UIColor colorAtPixel(CGPoint point)
+			{
+				var pointX = (int)(point.X *Image.Size.Width/ Frame.Width);
+				var pointY = (int)(point.Y * Image.Size.Height / Frame.Height);
+
+                if (Image.Size.Width < pointX) {
+                    pointX = (int)Image.Size.Width;
+                }
+
+                if (Image.Size.Height < pointY) {
+                    pointY = (int)Image.Size.Height;
+                }
+				var cgImage = Image.CGImage;
+				var colorSpace = CGColorSpace.CreateDeviceRGB();
+				int bytesPerPixel = 4;
+				int bytesPerRow = bytesPerPixel * 1;
+				var bitsPerComponent = 8;
+				byte[] pixelData = { 0, 0, 0, 0 };
+				var context = new CGBitmapContext(pixelData,
+															 1,
+															 1,
+															 bitsPerComponent,
+															 bytesPerRow,
+												 colorSpace, CGBitmapFlags.PremultipliedLast | CGBitmapFlags.ByteOrder32Big);
+
+				context.SetBlendMode(CGBlendMode.Copy);
+
+				context.TranslateCTM(-pointX, pointY - Image.Size.Height);
+				context.DrawImage(new CGRect(0.0f, 0.0f, Image.Size.Width, Image.Size.Height), cgImage);
+				var red = pixelData[0] / 255.0f;
+				var green = pixelData[1] / 255.0f;
+				var blue = pixelData[2] / 255.0f;
+				var alpha = pixelData[3] / 255.0f;
+				return UIColor.FromRGBA(red, green, blue, alpha);
+			}
+		}
+
+	}
+
+}
diff --git a/Shared.IOS/UI/Contacts.cs b/Shared.IOS/UI/Contacts.cs
new file mode 100644
index 0000000..22f6afb
--- /dev/null
+++ b/Shared.IOS/UI/Contacts.cs
@@ -0,0 +1,66 @@
+锘縰sing System;
+using AddressBook;
+using AddressBookUI;
+
+namespace Shared
+{
+    public static class Contacts
+    {
+        public static Action<string, string> ContactAction;
+        public static void Open()
+        {
+            switch (ABAddressBook.GetAuthorizationStatus())
+            {
+                case ABAuthorizationStatus.NotDetermined:
+                    Foundation.NSError s=null;
+                    ABAddressBook.Create(out s).RequestAccess((b, ss) => {
+                        Shared.Application.RunOnMainThread(() =>
+                        {
+                            if (b)
+                            {
+                                var picker = new ABPeoplePickerNavigationController();
+                                picker.Cancelled += Picker_Cancelled;
+                                picker.SelectPerson2 += Picker_SelectPerson2;
+                                BaseViewController.Instance.PresentViewController(picker, true, null);
+                            }
+                            else {
+                                ContactAction?.Invoke(null, null);
+                            }
+                        });
+                    });
+                    break;
+                case ABAuthorizationStatus.Authorized:
+                    {
+                        var picker = new ABPeoplePickerNavigationController();
+                        picker.Cancelled += Picker_Cancelled;
+                        picker.SelectPerson2 += Picker_SelectPerson2;
+                        BaseViewController.Instance.PresentViewController(picker, true, null);
+                    }
+                    break;
+                default:
+                    ContactAction?.Invoke(null, null);
+                    break;
+            }
+        }
+
+        private static void Picker_SelectPerson2(object sender, ABPeoplePickerSelectPerson2EventArgs e)
+        {
+            var person=  e.Person;
+            string phone = "";
+            foreach(var v in person.GetPhones()) {
+                if (!string.IsNullOrEmpty(v.Value))
+                {
+                    phone = v.Value.Replace("-", " ").Replace(" ", "");
+                    break;
+                } 
+            }
+            ContactAction?.Invoke((person.LastName + " " + person.FirstName).Trim(' '), phone);
+        }
+
+        private static void Picker_Cancelled(object sender, EventArgs e)
+        {
+            ContactAction?.Invoke(null, null);
+        }
+
+    }
+}
diff --git a/Shared.IOS/UI/CoverFlowLayout.cs b/Shared.IOS/UI/CoverFlowLayout.cs
new file mode 100644
index 0000000..f8924ec
--- /dev/null
+++ b/Shared.IOS/UI/CoverFlowLayout.cs
@@ -0,0 +1,356 @@
+using System;
+using UIKit;
+using Shared.IO;
+using CoreGraphics;
+using Foundation;
+
+namespace Shared
+{
+    /// <summary>
+    /// 浣嶇疆甯冨眬
+    /// </summary>
+    public class CoverFlowLayout : ViewGroup
+    {
+        readonly MyCoverFlowLayout iosUIScrolView;
+
+        readonly UIPageControl iosUIPageControl;
+
+        /// <summary>
+        /// 椤甸潰鍙樺寲浜嬩欢
+        /// </summary>
+        public Action<CoverFlowLayout,int> PageChange;
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyCoverFlowLayout : UIScrollView
+        {
+            [Weak]  CoverFlowLayout CoverFlowLayout;
+            public MyCoverFlowLayout(CoverFlowLayout CoverFlowLayout)
+            {
+         
+                this.CoverFlowLayout = CoverFlowLayout;
+                DecelerationEnded += (s, e) =>
+                {
+                    var tempUIScrolView = s as MyCoverFlowLayout;
+                    //鑾峰彇褰撳墠鐣岄潰鐨勭储寮�
+                    var tempPageIndex = Convert.ToInt32(tempUIScrolView.ContentOffset.X / (tempUIScrolView.Frame.Width - this.CoverFlowLayout._RowPadding));
+                    //閫氱煡鐣岄潰绱㈠紩鍙樺寲
+                    if (this.CoverFlowLayout.PageIndex != tempPageIndex)
+                    {
+                        this.CoverFlowLayout.PageIndex = tempPageIndex;
+                        System.Console.WriteLine($"pageIndex-------{tempPageIndex}");
+                        this.CoverFlowLayout.iosUIPageControl.CurrentPage = tempPageIndex;
+                        this.CoverFlowLayout.PageChange?.Invoke(this.CoverFlowLayout, this.CoverFlowLayout.pageIndex);
+                    }
+                };
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                CoverFlowLayout?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                CoverFlowLayout?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                CoverFlowLayout?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                CoverFlowLayout?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+
+                if (view.ToString().Contains("UIScrollViewScrollIndicator"))
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public CoverFlowLayout()
+        {
+            viewGroup = new UIView();
+            iosUIPageControl = new UIPageControl { Enabled = false };
+            iosUIScrolView = new MyCoverFlowLayout(this) {  };
+           
+            realViewGroup = iosUIScrolView;
+
+            var frame = iosUIPageControl.Frame;
+            frame.Height = 16;
+            iosUIPageControl.Frame = frame;
+            //鍚姩缈婚〉鍔熻兘
+            //iosUIScrolView.PagingEnabled = true;
+    
+            //iosUIScrolView.Bounces = false;
+            iosUIScrolView.ShowsHorizontalScrollIndicator = false;
+            viewGroup.AddSubview(iosUIScrolView);
+            viewGroup.AddSubview(iosUIPageControl);
+         
+
+            _PagePadding = Application.GetRealWidth(41);
+            _RowPadding = Application.GetRealWidth(108);
+
+
+        }
+
+         //涓や釜Page涔嬮棿鐨勮窛绂�
+        int _PagePadding;
+        public int PagePadding
+        {
+            get
+            {
+                return _PagePadding;
+            }
+            set
+            {
+                _PagePadding = value;
+                ReLocation();
+            }
+        }
+        //page鐨勫杈硅窛
+        int _RowPadding;
+        public int RowPadding
+        {
+            get
+            {
+                return _RowPadding;
+            }
+            set
+            {
+                _RowPadding = value;
+                ReLocation();
+            }
+        }
+
+
+        /// <summary>
+        ///  鏄惁鏄剧ず涓嬮潰涓�鎺掔殑鐐�
+        /// </summary>
+        /// <value><c>true</c> if is show point; otherwise, <c>false</c>.</value>
+        public bool IsShowPoint
+        {
+            get
+            {
+                return !iosUIPageControl.Hidden;
+            }
+            set
+            {
+                iosUIPageControl.Hidden = !value;
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁鍏佽婊戝姩
+        /// </summary>
+        /// <value><c>true</c> if scroll enabled; otherwise, <c>false</c>.</value>
+        public bool ScrollEnabled
+        {
+            get
+            {
+                return (iosUIScrolView as MyCoverFlowLayout).ScrollEnabled;
+            }
+            set
+            {
+                (iosUIScrolView as MyCoverFlowLayout).ScrollEnabled = value;
+            }
+        }
+
+		int pageIndex;
+		/// <summary>
+		/// 璁剧疆鎴栬�呰幏鍙栧綋鍓嶇殑鐣岄潰绱㈠紩
+		/// </summary>
+		/// <value>The index of the page.</value>
+		public int PageIndex
+		{
+			get
+			{
+				return pageIndex;
+			}
+			set
+			{
+                if (value < 0 || ChildrenCount <= value)
+                {
+                    return;
+                }
+                int beforePageIndex = pageIndex;
+				pageIndex = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+              
+				var viewSize = iosUIScrolView.Frame.Size;
+
+
+                var rect = new CGRect(pageIndex * viewSize.Width, 0, viewSize.Width, viewSize.Height);
+                if (pageIndex != 0) {
+                    var frame = iosUIScrolView.Subviews[pageIndex].Frame;
+                    var w = frame.X - _RowPadding;
+
+                    rect = new CGRect(w, 0, viewSize.Width, viewSize.Height);
+                    System.Console.WriteLine($"CGRect xx-------{w}");
+                }
+
+                System.Console.WriteLine($"pageIndex xx-------{pageIndex}");
+                iosUIScrolView.ScrollRectToVisible(rect, false);
+
+                if (beforePageIndex != pageIndex)
+                {
+                    iosUIPageControl.CurrentPage = pageIndex;
+                    PageChange?.Invoke(this, pageIndex);
+                }
+			}
+		}
+		/// <summary>
+		/// 澧炲姞瀛愭帶浠�
+		/// </summary>
+		/// <param name="view">View.</param>
+		public override void AddChidren(View view)
+		{
+            //var v = Application.AverageScale;
+            //var vv = Application.CurrentHeight;
+            //var dddd = Application.DesignWidth;
+			base.AddChidren(view);
+			iosUIPageControl.Pages = ChildrenCount;
+			ReLocation();
+		}
+
+		/// <summary>
+		/// 閲嶆柊鎺掍綅缃強璁惧鍐呭澶у皬
+		/// </summary>
+		public virtual void ReLocation()
+		{
+			if (iosUIScrolView.Subviews.Length == 0)
+			{
+				return;
+			}
+
+            var frame0 = iosUIScrolView.Subviews[0].Frame;
+            frame0.X = _RowPadding;
+            iosUIScrolView.Subviews[0].Frame = frame0;
+
+
+
+            for (int i = 1; i < iosUIScrolView.Subviews.Length; i++)
+			{
+				var frame = iosUIScrolView.Subviews[i].Frame;
+				frame.X = iosUIScrolView.Subviews[i - 1].Frame.Right+_PagePadding;
+				iosUIScrolView.Subviews[i].Frame = frame;
+			}
+
+			iosUIScrolView.ContentSize = new CoreGraphics.CGSize(iosUIScrolView.Subviews[iosUIScrolView.Subviews.Length - 1].Frame.Right+_RowPadding, iosUIScrolView.Frame.Height);
+		}
+
+
+
+		/// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		/// <value>The width.</value>
+		public override int Width
+		{
+			get
+			{
+				return base.Width;
+			}
+			set
+			{
+				base.Width = value;
+				if (!IsCanRefresh)
+					return;
+				var frame = iosUIPageControl.Frame;
+				frame.Width = Width;
+				iosUIPageControl.Frame = frame;
+			}
+		}
+
+		/// <summary>
+		/// 鎺т欢鐨勯珮搴�
+		/// </summary>
+		/// <value>The height.</value>
+		public override int Height
+		{
+			get
+			{
+				return base.Height;
+			}
+			set
+			{
+				base.Height = value;
+				if (!IsCanRefresh)
+					return;
+				var frame = iosUIPageControl.Frame;
+				frame.Y = Height - frame.Height;
+				iosUIPageControl.Frame = frame;
+			}
+		}
+
+        /// <summary>
+        /// 绉婚櫎褰撳墠鎺т欢
+        /// </summary>
+        /// <param name="view">View.</param>
+        internal override void Remove(View view)
+        {
+            base.Remove(view);
+            ReLocation();
+            PageIndex = ChildrenCount - 1;
+            iosUIPageControl.Pages = ChildrenCount;
+            iosUIPageControl.CurrentPage = PageIndex;
+        }
+
+		/// <summary>
+		/// 绉婚櫎鎵�鏈夌殑鎺т欢
+		/// </summary>
+		public override void RemoveAll()
+		{
+			base.RemoveAll();
+			ReLocation();
+            iosUIPageControl.Pages = 0;
+            PageIndex = 0;
+            iosUIPageControl.CurrentPage = 0;
+		}
+
+		/// <summary>
+		/// 鏍规嵁绱㈠紩绉婚櫎鎺т欢
+		/// </summary>
+		/// <param name="index">Index.</param>
+		public override void RemoveAt(int index)
+		{
+            Remove(viewList[index]);
+		}
+    }
+}
+
diff --git a/Shared.IOS/UI/CropImage.cs b/Shared.IOS/UI/CropImage.cs
new file mode 100644
index 0000000..18e065f
--- /dev/null
+++ b/Shared.IOS/UI/CropImage.cs
@@ -0,0 +1,106 @@
+锘縰sing System;
+using UIKit;
+using Shared.IOS.TBL;
+
+namespace Shared
+{
+
+    /// <summary>
+    /// 鎷嶇収鎴栬�呴�夋嫨鍥剧墖
+    /// </summary>
+    public static class CropImage
+    {
+        ///// <summary>
+        ///// 鎷嶇収鎴栬�呰鍙栧浘鐗囧畬鎴愭椂璋冪敤鐨勫姩浣�,string==null琛ㄧず鐢ㄦ埛鍙栨秷浜嗘媿鐓ф垨鑰呭彇娑堥�夋嫨鍥剧墖,string!=null,琛ㄧず鍥剧墖鐨勮矾寰�
+        ///// </summary>
+        //internal static Action<string> _callback;
+        ///// <summary>
+        ///// 鏂囦欢鍚�
+        ///// </summary>
+        //internal static string _fileName;
+        /// <summary>
+        /// 閫夋嫨绫诲瀷鏄媿鐓�
+        /// </summary>
+        internal static readonly int TypeCamera = 101;
+        /// <summary>
+        /// 閫夋嫨鍥剧墖
+        /// </summary>
+        internal static readonly int TypePicture = 102;
+
+
+        private static CropImageUtlis mCropImageUtlis;
+
+        static CropImage()
+        {
+            //mCropImageUtlis = new CropImageUtlis();
+        }
+
+
+            /// <summary>
+            /// 鎷嶇収
+            /// </summary>
+            /// <param name="callback">鍥炶皟鍑芥暟</param>
+            /// <param name="fileName">鏂囦欢鍚�</param>
+        public static void TakePicture(Action<string> callback, string fileName , int mRATIO_X = 1, int mRATIO_Y = 1, int OutputYSize = 200)
+		{
+
+            //_fileName = fileName;
+            mCropImageUtlis = new CropImageUtlis(Application.currentVC , TypeCamera, fileName, mRATIO_X, mRATIO_Y, (obj) => {
+                if (obj != null && obj.Length > 0)
+                {
+                    callback?.Invoke(obj);
+                }
+                else {
+                    callback?.Invoke(null);
+                }
+                mCropImageUtlis = null;
+            });
+
+
+      
+			
+		}
+       
+        /// <summary>
+        /// 閫夋嫨鍥剧墖
+        /// </summary>
+        /// <param name="callback">鍥炶皟鍑芥暟</param>
+        /// <param name="fileName">鏂囦欢鍚�</param>
+        public static void SelectPicture(Action<string> callback, string fileName, int mRATIO_X = 1, int mRATIO_Y = 1, int OutputYSize = 200)
+		{
+            //_fileName = fileName;
+            mCropImageUtlis = new CropImageUtlis(Application.currentVC , TypePicture, fileName, mRATIO_X, mRATIO_Y, (obj) => {
+                if (obj != null && obj.Length > 0)
+                {
+                    callback?.Invoke(obj);
+                }
+                else
+                {
+                    callback?.Invoke(null);
+                }
+
+                mCropImageUtlis = null;
+            });
+        }
+
+
+        ///// <summary>
+        ///// OnCropImageeCallback
+        ///// </summary>
+        //public class OnCropImageeCallback : Java.Lang.Object, IOnCropImageeCallback
+        //{
+
+        //    Action<string> mAction;
+        //    public OnCropImageeCallback(Action<string> action)
+        //    {
+        //        mAction = action;
+        //    }
+
+        //    public void OnSaveCallback(string p0)
+        //    {
+        //        mAction?.Invoke(p0);
+        //    }
+        //}
+    }
+}
+
diff --git a/Shared.IOS/UI/CurtainRollSeekBar.cs b/Shared.IOS/UI/CurtainRollSeekBar.cs
new file mode 100644
index 0000000..db38f36
--- /dev/null
+++ b/Shared.IOS/UI/CurtainRollSeekBar.cs
@@ -0,0 +1,330 @@
+using System;
+//using Shared.I;
+using Shared.IOS.TBL;
+
+
+namespace Shared
+{
+
+    /// <summary>
+    /// CurtainRollSeekBar 鍗峰笜鎺т欢
+    /// </summary>
+    public class CurtainRollSeekBar : View
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The HDLRollCurtainSeekBar.</value>
+        HDLRollCurtainSeekBar mHDLRollCurtainSeekBar
+        {
+            get
+            {
+                return uiView as HDLRollCurtainSeekBar;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+        
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public CurtainRollSeekBar()
+        {
+            mHDLRollCurtainSeekBar = new HDLRollCurtainSeekBar
+            {
+                //Frame = new CoreGraphics.CGRect(0, 0, this.Width, this.Height),
+                //mHDLRollCurtainSeekBar.Frame = new CoreGraphics.CGRect(0, 0, 1024, 1024);
+                MProgressChangedDelegate = new OnProgressChangeListener(this)
+            };
+
+        }
+
+
+        /// <summary>
+        /// 鍒锋柊甯冨眬
+        /// </summary>
+        private void RefreshFrame()
+        {
+            mHDLRollCurtainSeekBar.InitWithFrameSeekBar(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+        }
+
+        /// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+        {
+            get
+            {
+                return base.Width;
+            }
+            set
+            {
+                base.Width = value;
+                RefreshFrame();
+                //mHDLRollCurtainSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨勯珮搴�
+        /// </summary>
+        public override int Height
+        {
+            get
+            {
+                return base.Height;
+            }
+            set
+            {
+                base.Height = value;
+                RefreshFrame();
+
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int X
+        {
+            get
+            {
+                return base.X;
+            }
+            set
+            {
+                base.X = value;
+                RefreshFrame();
+                //mHDLRollCurtainSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int Y
+        {
+            get
+            {
+                return base.Y;
+            }
+            set
+            {
+                base.Y = value;
+                RefreshFrame();
+                //mHDLRollCurtainSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 杩涘害鍊兼樉绀哄崟浣�
+        /// </summary>
+        /// <value>鍗曚綅瀛楃</value>
+        public String ProgressBarUnitSring
+        {
+            set
+            {
+                mHDLRollCurtainSeekBar.SetProgressBarUnitSring(value);
+            }
+        }
+
+        int minValue = 0;
+        int maxValue = 100;
+        /// <summary>
+        /// 杩涘害鍊兼渶澶у��
+        /// </summary>
+        /// <value>鏈�澶у��</value>
+        public int MaxValue
+        {
+            set
+            {
+                maxValue = value;
+                mHDLRollCurtainSeekBar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 杩涘害鍊兼渶灏忓��
+        /// </summary>
+        /// <value>鏈�灏忓��</value>
+        public int MinValue
+        {
+            set
+            {
+                minValue = value;
+                mHDLRollCurtainSeekBar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊�
+        /// </summary>
+        /// <value>杩涘害鍊�</value>
+        public int Progress
+        {
+            set
+            {
+                mHDLRollCurtainSeekBar.SetProgress(value);
+            }
+
+            get
+            {
+
+                return (int)mHDLRollCurtainSeekBar.MProgress;
+            }
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// 杩涘害鏉′笌宸﹀彸杈规杈硅窛
+        /// </summary>
+        public int CurtainPaddingLeftRight
+        {
+            set
+            {
+                mHDLRollCurtainSeekBar.SetCurtainPadding(value);
+            }
+        }
+
+
+        /// <summary>
+        /// 椤堕儴padding
+        /// </summary>
+        public int CurtainPaddingTop
+        {
+            set
+            {
+                mHDLRollCurtainSeekBar.SetCurtainPaddingTop(value);
+            }
+        }
+
+
+        /// <summary>
+        /// 鏄惁绂荤嚎 绂荤嚎鐨勮瘽绂佹婊戝姩骞剁粯鍒惰儗鏅伄鎸″眰
+        /// </summary>
+        /// <value>鏄惁绂荤嚎</value>
+        public bool IsOffline
+        {
+            set
+            {
+                mHDLRollCurtainSeekBar.SetOffline(value);
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧棰滆壊
+        /// </summary>
+        /// <value>鏂囧瓧棰滆壊</value>
+        public uint ProgressTextColor
+        {
+            set
+            {
+
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+
+                mHDLRollCurtainSeekBar.MProgressTextColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                //mHDLRollCurtainSeekBar.SetProgressTextColor(UIKit.UIColor.FromRGBA(r,  g, b, a));
+
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧澶у皬
+        /// </summary>
+        /// <value>鏂囧瓧澶у皬</value>
+        public int ProgressTextSize
+        {
+            set
+            {
+                //set => mHDLRollCurtainSeekBar.SetProgressTextSize(value);
+                mHDLRollCurtainSeekBar.MProgressTextSize = value;
+            }
+
+        }
+
+        /// <summary>
+        /// 鏄惁鍙互婊戝姩
+        /// </summary>
+        /// <value>鏄惁鍙互婊戝姩</value>
+        public bool IsClickable
+        {
+            set
+            {
+                mHDLRollCurtainSeekBar.IsClickable = value;
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁鏄剧ず杩涘害鏂囧瓧
+        /// </summary>
+        /// <value>鏄惁鏄剧ず杩涘害鏂囧瓧</value>
+        public bool IsProgressTextShow
+        {
+            set
+            {
+                mHDLRollCurtainSeekBar.IsProgressTextShow = value;
+            }
+        }
+
+
+
+
+
+
+        /// <summary>
+        /// EventHandler
+        /// </summary>
+        public EventHandler<int> OnProgressChangedEvent;
+        public EventHandler<bool> OnStartTrackingTouchEvent;
+        public EventHandler<int> OnStopTrackingTouchEvent;
+
+        ///// <summary>
+        ///// OnProgressChangeListener 缁ф壙鍝嶅簲浜嬩欢
+        ///// </summary>
+        OnProgressChangeListener mOnProgressChangeListener;
+
+        public class OnProgressChangeListener : HDLSeekBarProgressChangedDelegate
+        {
+
+            [Weak] CurtainRollSeekBar _CurtainRollSeekBar;
+
+            public OnProgressChangeListener(CurtainRollSeekBar view)
+            {
+                _CurtainRollSeekBar = view;
+            }
+
+            public override void OnProgressChanged(int mProgress)
+            {
+                _CurtainRollSeekBar.OnProgressChangedEvent?.Invoke(this, mProgress);
+            }
+
+            public override void OnStartTrackingTouch()
+            {
+                _CurtainRollSeekBar.OnStartTrackingTouchEvent?.Invoke(this, true);
+            }
+
+            public override void OnStopTrackingTouch(int mProgress)
+            {
+                _CurtainRollSeekBar.OnStopTrackingTouchEvent?.Invoke(this, mProgress);
+            }
+        }
+
+    }
+}
diff --git a/Shared.IOS/UI/CurtainSeekBar.cs b/Shared.IOS/UI/CurtainSeekBar.cs
new file mode 100644
index 0000000..2ddc447
--- /dev/null
+++ b/Shared.IOS/UI/CurtainSeekBar.cs
@@ -0,0 +1,327 @@
+using System;
+//using Shared.I;
+using Shared.IOS.TBL;
+
+
+namespace Shared
+{
+
+    /// <summary>
+    /// CurtainSeekBar 寮�鍚堝笜鎺т欢
+    /// </summary>
+    public class CurtainSeekBar : View
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The HDLOACCurtainSeekBar.</value>
+        HDLOACCurtainSeekBar mHDLOACCurtainSeekBar
+        {
+            get
+            {
+                return uiView as HDLOACCurtainSeekBar;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public CurtainSeekBar()
+        {
+            mHDLOACCurtainSeekBar = new HDLOACCurtainSeekBar
+            {
+                //Frame = new CoreGraphics.CGRect(0, 0, this.Width, this.Height),
+                //mHDLOACCurtainSeekBar.Frame = new CoreGraphics.CGRect(0, 0, 1024, 1024);
+                MProgressChangedDelegate = new OnProgressChangeListener(this)
+            };
+
+        }
+
+
+        /// <summary>
+        /// 鍒锋柊甯冨眬
+        /// </summary>
+        private void RefreshFrame()
+        {
+            mHDLOACCurtainSeekBar.InitWithFrameSeekBar(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+        }
+
+        /// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+        {
+            get
+            {
+                return base.Width;
+            }
+            set
+            {
+                base.Width = value;
+                RefreshFrame();
+                //mHDLOACCurtainSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨勯珮搴�
+        /// </summary>
+        public override int Height
+        {
+            get
+            {
+                return base.Height;
+            }
+            set
+            {
+                base.Height = value;
+                RefreshFrame();
+
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int X
+        {
+            get
+            {
+                return base.X;
+            }
+            set
+            {
+                base.X = value;
+                RefreshFrame();
+                //mHDLOACCurtainSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int Y
+        {
+            get
+            {
+                return base.Y;
+            }
+            set
+            {
+                base.Y = value;
+                RefreshFrame();
+                //mHDLOACCurtainSeekBar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 杩涘害鍊兼樉绀哄崟浣�
+        /// </summary>
+        /// <value>鍗曚綅瀛楃</value>
+        public String ProgressBarUnitSring
+        {
+            set
+            {
+                mHDLOACCurtainSeekBar.SetProgressBarUnitSring(value);
+            }
+        }
+
+        int minValue = 0;
+        int maxValue = 100;
+        /// <summary>
+        /// 杩涘害鍊兼渶澶у��
+        /// </summary>
+        /// <value>鏈�澶у��</value>
+        public int MaxValue
+        {
+            set
+            {
+                maxValue = value;
+                mHDLOACCurtainSeekBar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 杩涘害鍊兼渶灏忓��
+        /// </summary>
+        /// <value>鏈�灏忓��</value>
+        public int MinValue
+        {
+            set
+            {
+                minValue = value;
+                mHDLOACCurtainSeekBar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊�
+        /// </summary>
+        /// <value>杩涘害鍊�</value>
+        public int Progress
+        {
+            set
+            {
+                mHDLOACCurtainSeekBar.SetProgress(value);
+            }
+
+            get
+            {
+
+                return (int)mHDLOACCurtainSeekBar.MProgress;
+            }
+        }
+
+
+
+
+        /// <summary>
+        /// 杩涘害鏉′笌宸﹀彸杈规杈硅窛
+        /// </summary>
+        public int CurtainPaddingLeftRight
+        {
+            set
+            {
+                mHDLOACCurtainSeekBar.SetCurtainPadding(value);
+            }
+        }
+
+
+        /// <summary>
+        /// 椤堕儴padding
+        /// </summary>
+        public int CurtainPaddingTop
+        {
+            set
+            {
+                mHDLOACCurtainSeekBar.SetCurtainPaddingTop(value);
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁绂荤嚎 绂荤嚎鐨勮瘽绂佹婊戝姩骞剁粯鍒惰儗鏅伄鎸″眰
+        /// </summary>
+        /// <value>鏄惁绂荤嚎</value>
+        public bool IsOffline
+        {
+            set
+            {
+                mHDLOACCurtainSeekBar.SetOffline(value);
+            }
+        }
+
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧棰滆壊
+        /// </summary>
+        /// <value>鏂囧瓧棰滆壊</value>
+        public uint ProgressTextColor
+        {
+            set
+            {
+
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+
+                mHDLOACCurtainSeekBar.MProgressTextColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                //mHDLOACCurtainSeekBar.SetProgressTextColor(UIKit.UIColor.FromRGBA(r,  g, b, a));
+
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧澶у皬
+        /// </summary>
+        /// <value>鏂囧瓧澶у皬</value>
+        public int ProgressTextSize
+        {
+            set
+            {
+                //set => mHDLOACCurtainSeekBar.SetProgressTextSize(value);
+                mHDLOACCurtainSeekBar.MProgressTextSize = value;
+            }
+
+        }
+
+        /// <summary>
+        /// 鏄惁鍙互婊戝姩
+        /// </summary>
+        /// <value>鏄惁鍙互婊戝姩</value>
+        public bool IsClickable
+        {
+            set
+            {
+                mHDLOACCurtainSeekBar.IsClickable = value;
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁鏄剧ず杩涘害鏂囧瓧
+        /// </summary>
+        /// <value>鏄惁鏄剧ず杩涘害鏂囧瓧</value>
+        public bool IsProgressTextShow
+        {
+            set
+            {
+                mHDLOACCurtainSeekBar.IsProgressTextShow = value;
+            }
+        }
+
+
+
+
+
+        /// <summary>
+        /// EventHandler
+        /// </summary>
+        public EventHandler<int> OnProgressChangedEvent;
+        public EventHandler<bool> OnStartTrackingTouchEvent;
+        public EventHandler<int> OnStopTrackingTouchEvent;
+
+        ///// <summary>
+        ///// OnProgressChangeListener 缁ф壙鍝嶅簲浜嬩欢
+        ///// </summary>
+        OnProgressChangeListener mOnProgressChangeListener;
+
+        public class OnProgressChangeListener : HDLSeekBarProgressChangedDelegate
+        {
+
+            [Weak] CurtainSeekBar _CurtainSeekBar;
+
+            public OnProgressChangeListener(CurtainSeekBar view)
+            {
+                _CurtainSeekBar = view;
+            }
+
+            public override void OnProgressChanged(int mProgress)
+            {
+                _CurtainSeekBar.OnProgressChangedEvent?.Invoke(this, mProgress);
+            }
+
+            public override void OnStartTrackingTouch()
+            {
+                _CurtainSeekBar.OnStartTrackingTouchEvent?.Invoke(this, true);
+            }
+
+            public override void OnStopTrackingTouch(int mProgress)
+            {
+                _CurtainSeekBar.OnStopTrackingTouchEvent?.Invoke(this, mProgress);
+            }
+        }
+
+    }
+}
diff --git a/Shared.IOS/UI/DateView.cs b/Shared.IOS/UI/DateView.cs
new file mode 100644
index 0000000..853ad0f
--- /dev/null
+++ b/Shared.IOS/UI/DateView.cs
@@ -0,0 +1,124 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UIKit;
+using Foundation;
+using Shared.IO;
+using CoreGraphics;
+
+namespace Shared
+{
+	/// <summary>
+	/// Button 鎸夐敭
+	/// </summary>
+	public class DateView : View
+	{
+		MyUIDatePicker myUIDatePicker
+		{
+			get
+			{
+				return uiView as MyUIDatePicker;
+			}
+			set
+			{
+				uiView = value;
+			}
+		}
+
+
+		/// <summary>
+		/// 骞�
+		/// </summary>
+		public int Year
+		{
+			get
+			{
+				return (int)myUIDatePicker.current.Year;
+			}
+		}
+		/// <summary>
+		/// 鏈�
+		/// </summary>
+		public int Month
+		{
+			get { return (int)myUIDatePicker.current.Month; }
+		}
+		/// <summary>
+		/// 澶�
+		/// </summary>
+		public int Day
+		{
+			get { return (int)myUIDatePicker.current.Day; }
+		}
+
+		/// <summary>
+		/// Initializes a new instance of the <see cref="Shared.DateView"/> class.
+		/// </summary>
+		public DateView()
+		{
+			myUIDatePicker = new MyUIDatePicker(this) { };
+            
+        }
+
+		class MyUIDatePicker : UIDatePicker
+		{
+            [Weak] DateView dateView;
+			public MyUIDatePicker(DateView dateView)
+			{
+                this.dateView = dateView;
+                Mode = UIDatePickerMode.Date;
+			}
+
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                dateView?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                dateView?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                dateView?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                dateView?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 褰撳墠鏃堕棿瀵硅薄
+            /// </summary>
+            /// <value>The current.</value>
+            public NSDateComponents current
+			{
+				get
+				{
+					NSCalendar cal = NSCalendar.CurrentCalendar;
+					return cal.Components(NSCalendarUnit.Year | NSCalendarUnit.Month | NSCalendarUnit.Day, Date);// [cal components: unitFlags fromDate: now]
+				}
+			}
+
+		}
+	}
+}
+
+
diff --git a/Shared.IOS/UI/Dialog.cs b/Shared.IOS/UI/Dialog.cs
new file mode 100644
index 0000000..a7a3924
--- /dev/null
+++ b/Shared.IOS/UI/Dialog.cs
@@ -0,0 +1,183 @@
+锘縰sing System;
+using UIKit;
+using CoreGraphics;
+
+namespace Shared
+{
+	/// <summary>
+	/// 寮圭獥
+	/// </summary>
+	public class Dialog
+	{
+		Button tempButton;
+		FrameLayout mainFrameLayout;
+		/// <summary>
+		/// 寮圭獥鏋勯�犲嚱鏁�
+		/// </summary>
+		public Dialog()
+		{
+			Application.MainPage.AddChidren(tempButton = new Button { Visible = false, Width = LayoutParams.MatchParent, Height = LayoutParams.MatchParent, BackgroundColor = 0x88323232 });
+			Application.MainPage.AddChidren(mainFrameLayout = new FrameLayout { Visible = false, });
+            //mainFrameLayout.MouseUpEventHandler += (sender, e) => { 
+            //};
+		}
+		/// <summary>
+		/// 鑳屾櫙棰滆壊
+		/// </summary>
+		/// <value>The color of the background.</value>
+		public uint BackgroundColor
+		{
+			get
+			{
+				return mainFrameLayout.BackgroundColor;
+			}
+			set
+			{
+                mainFrameLayout.BackgroundColor = value;
+			}
+		}
+
+		/// <summary>
+		/// 鍦嗚澶у皬
+		/// </summary>
+		/// <value>The corner.</value>
+		public uint Radius
+        {
+            get
+            {
+                return mainFrameLayout.Radius;
+            }
+            set
+            {
+                mainFrameLayout.Radius = value;
+            }
+        }
+
+		/// <summary>
+		/// 杈规绾垮ぇ灏�
+		/// </summary>
+		/// <value>The width of the border.</value>
+		public uint BorderWidth
+		{
+			get
+			{
+                return mainFrameLayout.BorderWidth;
+			}
+			set
+			{
+                mainFrameLayout.BorderWidth = value;
+			}
+		}
+
+		/// <summary>
+		/// 澧炲姞瀛愭帶浠�
+		/// </summary>
+		/// <param name="view">View.</param>
+		public void AddChidren(View view)
+		{
+			mainFrameLayout.AddChidren(view);
+		}
+
+		/// <summary>
+		/// 鑳屾櫙鍥剧墖璺緞
+		/// </summary>
+		/// <value>The background image path.</value>
+		public string BackgroundImagePath
+		{
+			get
+			{
+				return mainFrameLayout.BackgroundImagePath;
+			}
+			set
+			{
+				mainFrameLayout.BackgroundImagePath = value;
+			}
+		}
+
+		/// <summary>
+		/// 瀹藉害
+		/// </summary>
+		/// <value>The width.</value>
+		public int Width
+		{
+			get
+			{
+				return mainFrameLayout.Width;
+			}
+			set
+			{
+				mainFrameLayout.Width = value;
+			}
+		}
+
+		/// <summary>
+		/// 楂樺
+		/// </summary>
+		/// <value>The height.</value>
+		public int Height
+		{
+			get
+			{
+				return mainFrameLayout.Height;
+			}
+			set
+			{
+				mainFrameLayout.Height = value;
+			}
+		}
+
+		/// <summary>
+		/// X
+		/// </summary>
+		/// <value>The height.</value>
+		public int X
+		{
+			get
+			{
+				return mainFrameLayout.X;
+			}
+			set
+			{
+				mainFrameLayout.X = value;
+			}
+		}
+
+		/// <summary>
+		/// Y
+		/// </summary>
+		/// <value>The height.</value>
+		public int Y
+		{
+			get
+			{
+				return mainFrameLayout.Y;
+			}
+			set
+			{
+				mainFrameLayout.Y = value;
+			}
+		}
+
+		/// <summary>
+		/// 鏄剧ず褰撳墠鐨勭晫闈�
+		/// </summary>
+		public void Show()
+		{
+			tempButton.Visible = true;
+			mainFrameLayout.Visible = true;
+			mainFrameLayout.Gravity = Gravity.Center;
+			tempButton.BringToFront();
+			mainFrameLayout.BringToFront();
+		}
+
+		/// <summary>
+		/// 鍏抽棴褰撳墠鐨勭晫闈紝閲婃斁璧勬簮
+		/// </summary>
+		public void Close()
+		{
+			tempButton.RemoveFromParent();
+			mainFrameLayout.RemoveFromParent();
+		}
+	}
+}
+
diff --git a/Shared.IOS/UI/EditText.cs b/Shared.IOS/UI/EditText.cs
new file mode 100644
index 0000000..d8e3e9a
--- /dev/null
+++ b/Shared.IOS/UI/EditText.cs
@@ -0,0 +1,513 @@
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UIKit;
+using Foundation;
+using Shared.IO;
+using CoreGraphics;
+
+namespace Shared
+{
+    /// <summary>
+    /// 鏂囨湰杈撳叆妗�
+    /// </summary>
+    public class EditText : View
+    {
+        public Action<View, FocusEventArgs> FoucsChanged;
+        /// <summary>
+        /// 褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The ios user interface text view.</value>
+        MyEditText iosUITextView
+        {
+            get
+            {
+                return uiView as MyEditText;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+        //涓�绔彛杩涘叆閰嶇疆妯″紡 1鎻愮ず涓嶈鎺ュ叆璁惧  2鑾峰彇璁惧鍒楄〃  3鎺ュ叆璁惧  4杩藉姞璁惧
+        /// <summary>
+        /// 鏂囧瓧澶у皬
+        /// </summary>
+        /// <value>The size of the text.</value>
+        public float TextSize
+        {
+            get
+            {
+                return (float)iosUITextView.Font.PointSize;
+            }
+            set
+            {
+                iosUITextView.Font = UIFont.SystemFontOfSize(value);// .SetTextSize (ComplexUnitType.Sp, value);
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁璁剧疆涓哄姞杞芥椂鏄剧ず杈撳叆閿洏
+        /// </summary>
+        /// <value><c>true</c> if is first responder; otherwise, <c>false</c>.</value>
+        public bool IsFirstResponder
+        {
+            get
+            {
+                return iosUITextView.IsFirstResponder;
+            }
+            set
+            {
+                if (value)
+                {
+                    iosUITextView.BecomeFirstResponder();
+                }
+                else
+                {
+                    iosUITextView.ResignFirstResponder();
+                }
+            }
+        }
+
+        int textID;
+        /// <summary>
+        /// 鏍规嵁ID鑾峰彇瀵瑰簲鐨勫娉�
+        /// </summary>
+        /// <value>The text I.</value>
+        public int TextID
+        {
+            get
+            {
+                return textID;
+            }
+            set
+            {
+                textID = value;
+                Text = Language.StringByID(TextID);
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁浣胯兘
+        /// </summary>
+        /// <value>鏄惁浣胯兘</value>
+        public override bool Enable
+        {
+            get
+            {
+                return iosUITextView.Enabled;
+            }
+            set
+            {
+                iosUITextView.Enabled = value;
+            }
+        }
+
+
+        string _placeholderText = " ";
+        /// <summary>
+        /// 鏄剧ず鎻愮ず淇℃伅
+        /// </summary>
+        /// <value>The placeholder.</value>
+        public string PlaceholderText
+        {
+            get
+            {
+                return iosUITextView.Placeholder;
+            }
+            set
+            {
+                //iosUITextView.Placeholder = value;
+
+                _placeholderText = value;
+                
+                setPlaceholderTextAndColor();
+
+            }
+        }
+
+
+        UIColor _placeholderTextUIColor;
+        uint placeholderTextColor;
+        /// <summary>
+        /// Gets or sets the color of the placeholder text.
+        /// </summary>
+        /// <value>The color of the placeholder text.</value>
+        public uint PlaceholderTextColor
+        {
+            get
+            {
+                return placeholderTextColor;
+            }
+            set
+            {
+                placeholderTextColor = value;
+                byte r, g, b, a;
+                r = (byte)(placeholderTextColor / 256 / 256 % 256);
+                g = (byte)(placeholderTextColor / 256 % 256);
+                b = (byte)(placeholderTextColor % 256);
+                a = (byte)(placeholderTextColor / 256 / 256 / 256 % 256);
+
+                //iosUITextView.SetValueForKeyPath(UIColor.FromRGBA(r, g, b, a), new NSString("_placeholderLabel.textColor"));
+
+                _placeholderTextUIColor = UIColor.FromRGBA(r, g, b, a);
+
+                setPlaceholderTextAndColor();
+            }
+        }
+
+        /// <summary>
+        /// 閫氳繃attributedPlaceholder灞炴�т慨鏀筆laceholder棰滆壊
+        /// </summary>
+        private void setPlaceholderTextAndColor() {
+            //2019-09-23 閫傞厤iOS13
+            var normalAttributedTitle = new NSAttributedString(_placeholderText, foregroundColor: _placeholderTextUIColor);
+            iosUITextView.AttributedPlaceholder = normalAttributedTitle;
+        }
+
+        /// <summary>
+        /// 鏄惁鐢�*鍙烽殣钘忓瓧绗�
+        /// </summary>
+        /// <value>The secure text entry.</value>
+        public bool SecureTextEntry
+        {
+            get
+            {
+                return iosUITextView.SecureTextEntry;
+            }
+            set
+            {
+                iosUITextView.SecureTextEntry = value;
+            }
+        }
+        public static EditText Instance;
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public EditText()
+        {
+            iosUITextView = new MyEditText(this) { };
+        }
+
+        /// <summary>
+        /// 鍒涙柊闇�瑕佸垱鏂扮殑淇℃伅
+        /// </summary>
+        public override void Refresh()
+        {
+            base.Refresh();
+            IsSelected = isSelected;
+        }
+
+
+        /// <summary>
+        /// 鏂囨湰
+        /// </summary>
+        /// <value>The text.</value>
+        public string Text
+        {
+            get
+            {
+                return iosUITextView.Text;
+            }
+            set
+            {
+
+                iosUITextView.Text = value;
+                TextChangeEventHandler?.Invoke(this, value);//璧嬪�硷紝澧炲姞瑙﹀彂浜嬩欢
+            }
+        }
+
+        uint textColor;
+        /// <summary>
+        /// 鏂囧瓧棰滆壊
+        /// </summary>
+        /// <value>The color of the text.</value>
+        public uint TextColor
+        {
+            get
+            {
+                return textColor;
+            }
+            set
+            {
+                textColor = value;
+                byte r, g, b, a;
+                r = (byte)(textColor / 256 / 256 % 256);
+                g = (byte)(textColor / 256 % 256);
+                b = (byte)(textColor % 256);
+                a = (byte)(textColor / 256 / 256 / 256 % 256);
+                iosUITextView.TextColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+
+            }
+        }
+
+
+        bool isSelected;
+        /// <summary>
+        /// Gets or sets a value indicating whether this instance is selected.
+        /// </summary>
+        /// <value><c>true</c> if this instance is selected; otherwise, <c>false</c>.</value>
+        public bool IsSelected
+        {
+            get
+            {
+                return isSelected;
+            }
+            set
+            {
+                isSelected = value;
+
+                if (!IsCanRefresh)
+                {
+                    return;
+                }
+                if (isSelected)
+                {
+                    if (null == SelectedImagePath)
+                    {
+                        byte r, g, b, a;
+                        r = (byte)(SelectedBackgroundColor / 256 / 256 % 256);
+                        g = (byte)(SelectedBackgroundColor / 256 % 256);
+                        b = (byte)(SelectedBackgroundColor % 256);
+                        a = (byte)(SelectedBackgroundColor / 256 / 256 / 256 % 256);
+                        iosUITextView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                    }
+                    else
+                    {
+                        iosUITextView.Background = UIImage.FromFile(FileUtils.GetImageFilePath(SelectedImagePath));
+                    }
+                }
+                else
+                {
+                    if (null == UnSelectedImagePath)
+                    {
+                        byte r, g, b, a;
+                        r = (byte)(BackgroundColor / 256 / 256 % 256);
+                        g = (byte)(BackgroundColor / 256 % 256);
+                        b = (byte)(BackgroundColor % 256);
+                        a = (byte)(BackgroundColor / 256 / 256 / 256 % 256);
+                        iosUITextView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                    }
+                    else
+                    {
+                        iosUITextView.Background = UIImage.FromFile(FileUtils.GetImageFilePath(UnSelectedImagePath));
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// 閫夋嫨鏃惰儗鏅鑹�
+        /// </summary>
+        /// <value>The color of the text.</value>
+        public uint SelectedBackgroundColor
+        {
+            get;
+            set;
+        }
+
+
+        TextAlignment textAlignment = TextAlignment.Center;
+
+        /// <summary>
+        /// Texts the alignment.
+        /// </summary>
+        public TextAlignment TextAlignment
+        {
+            get
+            {
+                return textAlignment;
+            }
+            set
+            {
+                textAlignment = value;
+                switch (value)
+                {
+                    case TextAlignment.TopLeft:
+                        //iosUITextView.TextAlignment = UITextAlignment.Left;
+                        break;
+                    case TextAlignment.TopCenter:
+                        //iosUITextView.TextAlignment = UITextAlignment.Center| UITextAlignment.Left;
+                        break;
+                    case TextAlignment.TopRight:
+                        //	iosUITextView.TextAlignment = UITextAlignment.Right;
+                        break;
+                    case TextAlignment.CenterLeft:
+                        iosUITextView.TextAlignment = UITextAlignment.Left;
+                        break;
+                    case TextAlignment.Center:
+                        iosUITextView.TextAlignment = UITextAlignment.Center;
+                        break;
+                    case TextAlignment.CenterRight:
+                        iosUITextView.TextAlignment = UITextAlignment.Right;
+                        break;
+                    case TextAlignment.BottomLeft:
+                        //					iosUITextView.TextAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+                        //					iosUITextView.TextAlignment = UIKit.UIControlContentHorizontalAlignment.Left;
+                        break;
+                    case TextAlignment.BottomCenter:
+                        //					iosUITextView.TextAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+                        //					iosUITextView.TextAlignment = UIKit.UIControlContentHorizontalAlignment.Center;
+                        break;
+                    case TextAlignment.BottomRight:
+                        //					iosUITextView.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+                        //					iosUITextView.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Right;
+                        break;
+                }
+            }
+        }
+
+        /// <summary>
+        /// 閫夋嫨鏃惰儗鏅浘璺緞
+        /// </summary>
+        /// <value>The selected image path.</value>
+        public string SelectedImagePath { get; set; }
+
+        /// <summary>
+        /// 闈為�変腑鐘舵�佺殑鑳屾櫙鍥捐矾寰�
+        /// </summary>
+        /// <value>The un selected image path.</value>
+        public string UnSelectedImagePath { get; set; }
+
+
+        /// <summary>
+        /// 杈撳叆鏂囧瓧鍙樺寲浜嬩欢
+        /// </summary>
+        public Action<View, string> TextChangeEventHandler;
+
+        /// <summary>
+        /// 鎸変簡杩斿洖鎸夐敭浜嬩欢
+        /// </summary>
+        public Action<View> EditorEnterAction;
+        /// <summary>
+        /// 璁剧疆鐒︾偣
+        /// </summary>
+        public bool Foucs
+        {
+            get
+            {
+                return  iosUITextView.IsFirstResponder;
+            }
+            set
+            {
+                if (value)
+                {
+                    //鏄剧ず閿洏
+                    iosUITextView.BecomeFirstResponder();
+                }
+                else {
+                    //闅愯棌閿洏
+                    iosUITextView.ResignFirstResponder();
+                }
+            }
+        }
+
+        public Action<View, string> KeyEventAction;
+        class MyEditText : UIKit.UITextField, IUITextFieldDelegate
+        {
+            [Weak] EditText editText;
+            public MyEditText(EditText editText)
+            {
+                this.editText = editText;
+                TextColor = UIColor.White;
+                this.Delegate = this;
+                EditorEnterAction += () => {
+                    this.editText?.EditorEnterAction?.Invoke(this.editText);
+                };
+               
+                EditingChanged += (sender, e) =>
+                {
+                    this.editText?.TextChangeEventHandler?.Invoke(this.editText, Text);
+                };
+                EditingDidBegin += (sender, e) =>
+                {
+                    Instance = this.editText;
+                    this.editText?.FoucsChanged?.Invoke(this.editText, new FocusEventArgs { Focus = true });
+                };
+                EditingDidEnd += (sender, e) =>
+                {
+                    this.editText?.FoucsChanged?.Invoke(this.editText, new FocusEventArgs { Focus = false });
+                };
+            }
+
+
+            public override void MovedToSuperview()
+            {
+                base.MovedToSuperview();
+                if (Superview == null)
+                {
+                    System.Console.WriteLine("浠庣埗鎺т欢涓Щ闄�");
+                }
+                else {
+                    System.Console.WriteLine("娣诲姞鍒扮埗鎺т欢");
+                }
+            }
+
+            public override void DeleteBackward()
+            {
+                base.DeleteBackward();
+                editText?.KeyEventAction?.Invoke(editText, "Del");
+            }
+
+            internal System.Action EditorEnterAction;
+            [Export("textFieldShouldReturn:")]
+            public new bool ShouldReturn(UITextField textField)
+            {
+                ResignFirstResponder();
+                EditorEnterAction?.Invoke();
+                return true;
+            }
+
+
+
+            nfloat x;
+       
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                editText?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                editText?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                editText?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                editText?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+        }
+    }
+    public class FocusEventArgs : EventArgs
+    {
+        /// <summary>
+        /// true 涓鸿幏鍙栧埌鐒︾偣
+        /// false 鐒︾偣娑堝け
+        /// </summary>
+        public bool Focus;
+    }
+}
+
+
diff --git a/Shared.IOS/UI/EditTextView.cs b/Shared.IOS/UI/EditTextView.cs
new file mode 100644
index 0000000..9283d25
--- /dev/null
+++ b/Shared.IOS/UI/EditTextView.cs
@@ -0,0 +1,587 @@
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UIKit;
+using Foundation;
+using Shared.IO;
+using CoreGraphics;
+
+namespace Shared
+{
+    /// <summary>
+    /// EditTextView 鏂囨湰杈撳叆妗�
+    /// 鏀寔鎹㈣
+    /// </summary>
+    public class EditTextView : View
+    {
+        public Action<View, FocusEventArgs> FoucsChanged;
+        /// <summary>
+        /// 褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The ios user interface text view.</value>
+        MyEditTextView iosUITextView
+        {
+            get
+            {
+                return uiView as MyEditTextView;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+        //涓�绔彛杩涘叆閰嶇疆妯″紡 1鎻愮ず涓嶈鎺ュ叆璁惧  2鑾峰彇璁惧鍒楄〃  3鎺ュ叆璁惧  4杩藉姞璁惧
+        /// <summary>
+        /// 鏂囧瓧澶у皬
+        /// </summary>
+        /// <value>The size of the text.</value>
+        public float TextSize
+        {
+            get
+            {
+                return (float)iosUITextView.Font.PointSize;
+            }
+            set
+            {
+                iosUITextView.Font = UIFont.SystemFontOfSize(value);// .SetTextSize (ComplexUnitType.Sp, value);
+                iosUITextView.placeholderUILabel.Font = UIFont.SystemFontOfSize(value);// .SetTextSize (ComplexUnitType.Sp, value);
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁璁剧疆涓哄姞杞芥椂鏄剧ず杈撳叆閿洏
+        /// </summary>
+        /// <value><c>true</c> if is first responder; otherwise, <c>false</c>.</value>
+        public bool IsFirstResponder
+        {
+            get
+            {
+                return iosUITextView.IsFirstResponder;
+            }
+            set
+            {
+                if (value)
+                {
+                    iosUITextView.BecomeFirstResponder();
+                }
+                else
+                {
+                    iosUITextView.ResignFirstResponder();
+                }
+            }
+        }
+
+        int textID;
+        /// <summary>
+        /// 鏍规嵁ID鑾峰彇瀵瑰簲鐨勫娉�
+        /// </summary>
+        /// <value>The text I.</value>
+        public int TextID
+        {
+            get
+            {
+                return textID;
+            }
+            set
+            {
+                textID = value;
+                Text = Language.StringByID(TextID);
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁浣胯兘
+        /// </summary>
+        /// <value>鏄惁浣胯兘</value>
+        public override bool Enable
+        {
+            get
+            {
+                return true;
+            }
+            set
+            {
+                //iosUITextView.Enabled = value;
+            }
+        }
+
+
+        string _placeholderText = " ";
+        /// <summary>
+        /// 鏄剧ず鎻愮ず淇℃伅
+        /// </summary>
+        /// <value>The placeholder.</value>
+        public string PlaceholderText
+        {
+            get
+            {
+                return _placeholderText;
+            }
+            set
+            {
+                //iosUITextView.Placeholder = value;
+
+                _placeholderText = value;
+
+                iosUITextView.placeholderUILabel.Text = _placeholderText;
+            }
+        }
+
+
+        UIColor _placeholderTextUIColor;
+        uint placeholderTextColor;
+        /// <summary>
+        /// Gets or sets the color of the placeholder text.
+        /// </summary>
+        /// <value>The color of the placeholder text.</value>
+        public uint PlaceholderTextColor
+        {
+            get
+            {
+                return placeholderTextColor;
+            }
+            set
+            {
+                placeholderTextColor = value;
+                byte r, g, b, a;
+                r = (byte)(placeholderTextColor / 256 / 256 % 256);
+                g = (byte)(placeholderTextColor / 256 % 256);
+                b = (byte)(placeholderTextColor % 256);
+                a = (byte)(placeholderTextColor / 256 / 256 / 256 % 256);
+
+                //iosUITextView.SetValueForKeyPath(UIColor.FromRGBA(r, g, b, a), new NSString("_placeholderLabel.textColor"));
+
+                _placeholderTextUIColor = UIColor.FromRGBA(r, g, b, a);
+
+                iosUITextView.placeholderUILabel.TextColor = _placeholderTextUIColor;
+            }
+        }
+
+   
+        /// <summary>
+        /// 鏄惁鐢�*鍙烽殣钘忓瓧绗�
+        /// </summary>
+        /// <value>The secure text entry.</value>
+        public bool SecureTextEntry
+        {
+            get
+            {
+                return iosUITextView.SecureTextEntry;
+            }
+            set
+            {
+                iosUITextView.SecureTextEntry = value;
+            }
+        }
+        public static EditTextView Instance;
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public EditTextView()
+        {
+            iosUITextView = new MyEditTextView(this) { };
+
+            this.TextSize = Application.FontSize;
+        }
+
+        /// <summary>
+        /// 鍒涙柊闇�瑕佸垱鏂扮殑淇℃伅
+        /// </summary>
+        public override void Refresh()
+        {
+            base.Refresh();
+            IsSelected = isSelected;
+        }
+
+
+        /// <summary>
+        /// 鏂囨湰
+        /// </summary>
+        /// <value>The text.</value>
+        public string Text
+        {
+            get
+            {
+                return iosUITextView.Text;
+            }
+            set
+            {
+
+                iosUITextView.Text = value;
+                TextChangeEventHandler?.Invoke(this, value);//璧嬪�硷紝澧炲姞瑙﹀彂浜嬩欢
+            }
+        }
+
+        uint textColor;
+        /// <summary>
+        /// 鏂囧瓧棰滆壊
+        /// </summary>
+        /// <value>The color of the text.</value>
+        public uint TextColor
+        {
+            get
+            {
+                return textColor;
+            }
+            set
+            {
+                textColor = value;
+                byte r, g, b, a;
+                r = (byte)(textColor / 256 / 256 % 256);
+                g = (byte)(textColor / 256 % 256);
+                b = (byte)(textColor % 256);
+                a = (byte)(textColor / 256 / 256 / 256 % 256);
+                iosUITextView.TextColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+
+            }
+        }
+
+
+        bool isSelected;
+        /// <summary>
+        /// Gets or sets a value indicating whether this instance is selected.
+        /// </summary>
+        /// <value><c>true</c> if this instance is selected; otherwise, <c>false</c>.</value>
+        public bool IsSelected
+        {
+            get
+            {
+                return isSelected;
+            }
+            set
+            {
+                isSelected = value;
+
+                if (!IsCanRefresh)
+                {
+                    return;
+                }
+                if (isSelected)
+                {
+                    byte r, g, b, a;
+                    r = (byte)(SelectedBackgroundColor / 256 / 256 % 256);
+                    g = (byte)(SelectedBackgroundColor / 256 % 256);
+                    b = (byte)(SelectedBackgroundColor % 256);
+                    a = (byte)(SelectedBackgroundColor / 256 / 256 / 256 % 256);
+                    iosUITextView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                }
+                else
+                {
+                    byte r, g, b, a;
+                    r = (byte)(BackgroundColor / 256 / 256 % 256);
+                    g = (byte)(BackgroundColor / 256 % 256);
+                    b = (byte)(BackgroundColor % 256);
+                    a = (byte)(BackgroundColor / 256 / 256 / 256 % 256);
+                    iosUITextView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 閫夋嫨鏃惰儗鏅鑹�
+        /// </summary>
+        /// <value>The color of the text.</value>
+        public uint SelectedBackgroundColor
+        {
+            get;
+            set;
+        }
+
+
+        TextAlignment textAlignment = TextAlignment.Center;
+
+        /// <summary>
+        /// Texts the alignment.
+        /// </summary>
+        public TextAlignment TextAlignment
+        {
+            get
+            {
+                return textAlignment;
+            }
+            set
+            {
+                textAlignment = value;
+                switch (value)
+                {
+                    case TextAlignment.TopLeft:
+                        //iosUITextView.TextAlignment = UITextAlignment.Left;
+                        break;
+                    case TextAlignment.TopCenter:
+                        //iosUITextView.TextAlignment = UITextAlignment.Center| UITextAlignment.Left;
+                        break;
+                    case TextAlignment.TopRight:
+                        //	iosUITextView.TextAlignment = UITextAlignment.Right;
+                        break;
+                    case TextAlignment.CenterLeft:
+                        iosUITextView.TextAlignment = UITextAlignment.Left;
+                        break;
+                    case TextAlignment.Center:
+                        iosUITextView.TextAlignment = UITextAlignment.Center;
+                        break;
+                    case TextAlignment.CenterRight:
+                        iosUITextView.TextAlignment = UITextAlignment.Right;
+                        break;
+                    case TextAlignment.BottomLeft:
+                        //					iosUITextView.TextAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+                        //					iosUITextView.TextAlignment = UIKit.UIControlContentHorizontalAlignment.Left;
+                        break;
+                    case TextAlignment.BottomCenter:
+                        //					iosUITextView.TextAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+                        //					iosUITextView.TextAlignment = UIKit.UIControlContentHorizontalAlignment.Center;
+                        break;
+                    case TextAlignment.BottomRight:
+                        //					iosUITextView.VerticalAlignment = UIKit.UIControlContentVerticalAlignment.Bottom;
+                        //					iosUITextView.HorizontalAlignment = UIKit.UIControlContentHorizontalAlignment.Right;
+                        break;
+                }
+            }
+        }
+
+        /// <summary>
+        /// 閫夋嫨鏃惰儗鏅浘璺緞
+        /// </summary>
+        /// <value>The selected image path.</value>
+        public string SelectedImagePath { get; set; }
+
+        /// <summary>
+        /// 闈為�変腑鐘舵�佺殑鑳屾櫙鍥捐矾寰�
+        /// </summary>
+        /// <value>The un selected image path.</value>
+        public string UnSelectedImagePath { get; set; }
+
+
+        /// <summary>
+        /// 杈撳叆鏂囧瓧鍙樺寲浜嬩欢
+        /// </summary>
+        public Action<View, string> TextChangeEventHandler;
+
+        /// <summary>
+        /// 鎸変簡杩斿洖鎸夐敭浜嬩欢
+        /// </summary>
+        public Action<View> EditorEnterAction;
+        /// <summary>
+        /// 璁剧疆鐒︾偣
+        /// </summary>
+        public bool Foucs
+        {
+            get
+            {
+                return  iosUITextView.IsFirstResponder;
+            }
+            set
+            {
+                if (value)
+                {
+                    //鏄剧ず閿洏
+                    iosUITextView.BecomeFirstResponder();
+                }
+                else {
+                    //闅愯棌閿洏
+                    iosUITextView.ResignFirstResponder();
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鍒锋柊placeholderUILabel甯冨眬
+        /// </summary>
+        public void InitIosPlaceholderUILabelWithHeight(int mHeight)
+        {
+            var MFrame = iosUITextView.placeholderUILabel.Frame;
+            MFrame.X = 5;
+            MFrame.Y = 0;
+            MFrame.Height = mHeight;
+            MFrame.Width = iosUITextView.Frame.Size.Width - 20;
+            iosUITextView.placeholderUILabel.Frame = MFrame;
+        }
+
+        /// <summary>
+        /// 闅愯棌杞敭鐩�
+        /// </summary>
+        public void HideSoftInput()
+        {
+            Foucs = false;
+        }
+
+        public Action<View, string> KeyEventAction;
+        class MyEditTextView : UIKit.UITextView, IUITextViewDelegate
+        {
+            public UILabel placeholderUILabel;
+            [Weak] EditTextView EditTextView;
+            public MyEditTextView(EditTextView EditTextView)
+            {
+                this.EditTextView = EditTextView;
+                TextColor = UIColor.White;
+                placeholderUILabel = new UILabel(new CGRect(5, 0, this.Frame.Size.Width - 20, 40));
+                placeholderUILabel.Lines = 0;
+                placeholderUILabel.TextColor = UIColor.Gray;
+
+
+                this.AddSubview(placeholderUILabel);
+
+                this.Delegate = this;
+                EditorEnterAction += () => {
+                    this.EditTextView?.EditorEnterAction?.Invoke(this.EditTextView);
+                };
+
+                //EditingChanged += (sender, e) =>
+                //{
+                //    this.EditTextView?.TextChangeEventHandler?.Invoke(this.EditTextView, Text);
+                //};
+                //EditingDidBegin += (sender, e) =>
+                //{
+                //    Instance = this.EditTextView;
+                //    this.EditTextView?.FoucsChanged?.Invoke(this.EditTextView, new FocusEventArgs { Focus = true });
+                //};
+                //EditingDidEnd += (sender, e) =>
+                //{
+                //    this.EditTextView?.FoucsChanged?.Invoke(this.EditTextView, new FocusEventArgs { Focus = false });
+                //};
+            }
+
+            //public void InitPlaceholderUILabelWithHeight(int mHeight) {
+            //    var MFrame = placeholderUILabel.Frame;
+            //    MFrame.Height = mHeight;
+            //    MFrame.Width = this.Frame.Size.Width - 20;
+            //    placeholderUILabel.Frame = MFrame;
+            //}
+
+            public override void MovedToSuperview()
+            {
+                base.MovedToSuperview();
+                if (Superview == null)
+                {
+                    System.Console.WriteLine("浠庣埗鎺т欢涓Щ闄�");
+                }
+                else {
+                    System.Console.WriteLine("娣诲姞鍒扮埗鎺т欢");
+                }
+            }
+
+            public override void DeleteBackward()
+            {
+                base.DeleteBackward();
+                EditTextView?.KeyEventAction?.Invoke(EditTextView, "Del");
+            }
+
+            internal System.Action EditorEnterAction;
+
+
+            [Export("textViewDidChange:")]
+            public new void Changed(UITextView textView)
+            {
+                this.EditTextView?.TextChangeEventHandler?.Invoke(this.EditTextView, Text);
+
+                //鍙栨秷鎸夐挳鐐瑰嚮鏉冮檺锛屽苟鏄剧ず鏂囧瓧
+                if (textView.Text.Length == 0)
+                {
+                    placeholderUILabel.Hidden = false;
+                }
+                else
+                {
+                    placeholderUILabel.Hidden = true;
+                }
+            }
+
+            [Export("textViewDidBeginEditing:")]
+            public void EditingStarted(UITextView textView)
+            {
+                Instance = this.EditTextView;
+                this.EditTextView?.FoucsChanged?.Invoke(this.EditTextView, new FocusEventArgs { Focus = true });
+            }
+            [Export("textViewDidEndEditing:")]
+            public void EditingEnded(UITextView textView)
+            {
+                this.EditTextView?.FoucsChanged?.Invoke(this.EditTextView, new FocusEventArgs { Focus = false });
+            }
+
+            
+
+
+            nfloat x;
+       
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                EditTextView?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                EditTextView?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                EditTextView?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                EditTextView?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+        }
+    }
+    //public class FocusEventArgs : EventArgs
+    //{
+    //    /// <summary>
+    //    /// true 涓鸿幏鍙栧埌鐒︾偣
+    //    /// false 鐒︾偣娑堝け
+    //    /// </summary>
+    //    public bool Focus;
+    //}
+
+
+//    -(void) textViewDidChange:(UITextView*) textView
+//    {
+//        self.descLab.hidden = YES;
+//        self.sendBtn.userInteractionEnabled = YES;
+//        self.sendBtn.backgroundColor = MainColor;
+//        //瀹炴椂鏄剧ず瀛楁暟
+//        self.stringlenghtLab.text = [NSString stringWithFormat:@"%ld/100",(long)textView.text.length];
+    
+//    //瀛楁暟闄愬埗
+//    if (textView.text.length >= 100) {
+//            textView.text = [textView.text substringToIndex: 100];
+//        }
+    
+//    //鍙栨秷鎸夐挳鐐瑰嚮鏉冮檺锛屽苟鏄剧ず鏂囧瓧
+//    if (textView.text.length == 0) {
+//            self.descLab.hidden = NO;
+//            self.sendBtn.userInteractionEnabled = NO;
+//            self.sendBtn.backgroundColor = [UIColor lightGrayColor];
+//        }
+//    }
+
+//-(BOOL) textView:(UITextView*) textView shouldChangeTextInRange:(NSRange) range replacementText:(NSString*) text
+//    {
+//    if ([text isEqualToString:@"\n"]) {
+
+
+//        [self.FKTextView resignFirstResponder];
+        
+//        return NO;
+//    }
+    
+//    return YES;
+//}
+}
+
+
diff --git a/Shared.IOS/UI/Enum.cs b/Shared.IOS/UI/Enum.cs
new file mode 100755
index 0000000..338ebbf
--- /dev/null
+++ b/Shared.IOS/UI/Enum.cs
@@ -0,0 +1,85 @@
+锘�
+namespace Shared
+{
+
+	public static class LayoutParams
+	{
+		public static readonly int MatchParent=int.MinValue;
+	}
+		
+	public enum EventType
+	{
+		Down,
+	    Up,
+		Long
+	}
+
+	public enum Animate
+	{
+		None,
+		UpToDown,
+		DownToUp,
+		LeftToRight,
+		RightToLeft,
+        Rotation
+	}
+
+	/// <summary>
+	/// 閮ㄥ眬鏂瑰悜
+	/// </summary>
+	public enum Orientation
+	{
+		Horizontal,
+		Vertical
+	}
+	public enum Device
+	{
+		Android,
+		Ios,
+		Phone
+	}
+
+	public enum Color
+	{
+		Red=0xFF0000,
+		Green=0x00FF00,
+		Blue=0x0000FF
+	}
+
+
+
+	public enum Gravity
+	{
+		TopLeft,
+		TopCenter,
+		TopRight,
+		CenterLeft,
+		Center,
+		CenterRight,
+		BottomLeft,
+		BottomCenter,
+		BottomRight,
+		CenterVertical,
+		CenterHorizontal,
+		Frame
+	}
+
+	/// <summary>
+	/// Vertical alignment.
+	/// </summary>
+	public enum TextAlignment
+	{
+		TopLeft,
+		TopCenter,
+		TopRight,
+		CenterLeft,
+		Center,
+		CenterRight,
+		BottomLeft,
+		BottomCenter,
+		BottomRight,
+	
+	}
+}
+
+
diff --git a/Shared.IOS/UI/FrameLayout.cs b/Shared.IOS/UI/FrameLayout.cs
new file mode 100644
index 0000000..44e7af7
--- /dev/null
+++ b/Shared.IOS/UI/FrameLayout.cs
@@ -0,0 +1,89 @@
+锘縰sing System;
+using UIKit;
+using Shared.IO;
+using CoreGraphics;
+using Foundation;
+
+namespace Shared
+{
+	/// <summary>
+	/// 缁濆浣嶇疆甯冨眬锛屽凡缁忓叏闈㈡鏌�
+	/// </summary>
+	public  class FrameLayout:ViewGroup
+	{
+		/// <summary>
+		/// 缁濆甯冨眬
+		/// </summary>
+		public FrameLayout()
+		{
+			viewGroup = new MyFrameLayout(this) { };
+            
+            realViewGroup = viewGroup;
+		}
+
+		internal FrameLayout(UIView frameLayout)
+		{
+			viewGroup = frameLayout;
+			realViewGroup = viewGroup;
+		}
+	}
+
+	public class MyFrameLayout : UIView
+	{
+        [Weak] View view;
+		public MyFrameLayout(View view)
+		{
+            this.view = view;
+			//瓒呭嚭鍖哄煙涓嶆樉绀�
+			Layer.MasksToBounds = true;
+		}
+
+
+        /// <summary>
+        /// 鐐瑰嚮寮�濮�
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesBegan(NSSet touches, UIEvent evt)
+        {
+            view?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+        /// <summary>
+        ///  绉诲姩
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesMoved(NSSet touches, UIEvent evt)
+        {
+            view?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮寮硅捣
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesEnded(NSSet touches, UIEvent evt)
+        {
+            view?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+
+        public override void TouchesCancelled(NSSet touches, UIEvent evt)
+        {
+            view?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+        /// <summary>
+        /// 鍥犱负杩欎釜瑙嗗浘寰堝鎬紝浼氳嚜鍔ㄥ姞浜嗕袱涓猆IImageView锛屾墍浠ヨ繖涓壒娈婂鐞嗕竴涓�
+        /// </summary>
+        /// <param name="view">View.</param>
+        public override void AddSubview(UIView view)
+		{
+			if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+			{
+				return;
+			}
+			base.AddSubview(view);
+		}
+	}
+}
+
diff --git a/Shared.IOS/UI/GDMapView.cs b/Shared.IOS/UI/GDMapView.cs
new file mode 100644
index 0000000..8baccf9
--- /dev/null
+++ b/Shared.IOS/UI/GDMapView.cs
@@ -0,0 +1,41 @@
+锘縰sing System;
+using Shared.IOS.TBL;
+
+namespace Shared
+{
+    public static class GDMapKit
+    {
+        public static void Show(Action<double , double, int, string> action, string titleName = "", bool bSetHome = false, double mLatitude = 0.0, double mLongitude = 0.0, int mRadius = 500)
+        {
+
+        
+            GDMapViewController mGDMapViewController = new GDMapViewController();
+
+            mGDMapViewController.TitleName = titleName;
+            mGDMapViewController.MSaveButtonCallBack += (mmLatitude, mmLongitude, mmRadius, addressName) =>
+            {
+                action?.Invoke(mmLatitude, mmLongitude, mmRadius, addressName);
+            };
+
+
+            Application.currentVC.NavigationController.PushViewController(mGDMapViewController, true);
+
+
+            if (bSetHome && (mLatitude != 0.0) && (mLongitude != 0.0))
+            {
+                //mGDMapViewController.MRadius = mRadius;
+                mGDMapViewController.SetmHomeCoordinate(mLatitude, mLongitude, mRadius);
+                Console.WriteLine("GDMapKitShow: " + mLongitude + "-" + mLatitude);
+            }
+
+        }
+
+
+        public static void setGDApiKey(string KEY)
+        {
+   
+            AMapServices.SharedServices.ApiKey = KEY;
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/GestureLockView.cs b/Shared.IOS/UI/GestureLockView.cs
new file mode 100644
index 0000000..5632691
--- /dev/null
+++ b/Shared.IOS/UI/GestureLockView.cs
@@ -0,0 +1,219 @@
+锘縰sing System;
+
+using Shared.IOS.TBL;
+
+
+namespace Shared
+{
+
+
+
+    /// <summary>
+    /// GestureLockView
+    /// </summary>
+    public class GestureLockView : View
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The GestureLockView.</value>
+        HDLGestureLockView mHDLGestureLockView
+        {
+            get
+            {
+                return uiView as HDLGestureLockView;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public GestureLockView()
+        {
+            mHDLGestureLockView = new HDLGestureLockView
+            {
+
+                Delegate = new OnLockVerifyListener(this)
+            };
+
+        }
+
+
+        /// <summary>
+        /// 鍒锋柊甯冨眬
+        /// </summary>
+        private void RefreshFrame()
+        {
+            mHDLGestureLockView.InitWithFrameLockView(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+        }
+
+        /// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+        {
+            get
+            {
+                return base.Width;
+            }
+            set
+            {
+                base.Width = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨勯珮搴�
+        /// </summary>
+        public override int Height
+        {
+            get
+            {
+                return base.Height;
+            }
+            set
+            {
+                base.Height = value;
+                RefreshFrame();
+
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int X
+        {
+            get
+            {
+                return base.X;
+            }
+            set
+            {
+                base.X = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int Y
+        {
+            get
+            {
+                return base.Y;
+            }
+            set
+            {
+                base.Y = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+
+
+        /// <summary>
+        /// 璁剧疆姝g‘鍜屾櫘閫氭椂鐨勯鑹�
+        /// </summary>
+        /// <value>绾块鑹�</value>
+        public uint LockViewCorrectColor
+        {
+            set
+            {
+
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+
+                mHDLGestureLockView.SelectedLineColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+
+            }
+        }
+
+
+
+        /// <summary>
+        /// 璁剧疆閿欒鏃剁殑棰滆壊
+        /// </summary>
+        /// <value>绾块鑹�</value>
+        public uint LockViewErrorColor
+        {
+            set
+            {
+
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+
+                mHDLGestureLockView.ErrorLineColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                //mHDLArcSeekBar.SetProgressTextColor(UIKit.UIColor.FromRGBA(r,  g, b, a));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鏄剧ず鎵嬪娍瑙i攣view 鏄惁鏄剧ず姝g‘
+        /// </summary>
+        public void showCorrectStatus(bool isTrue)
+        {
+            mHDLGestureLockView.ShowErrorStatus = !isTrue;
+        }
+
+
+
+        /// <summary>
+        /// Action
+        /// </summary>
+        public Action<string, int> OnLockVerifyEvent;
+
+        /// <summary>
+        /// OnLockVerifyListener 鎵嬪娍婊戝姩缁撴潫
+        /// </summary>
+        OnLockVerifyListener mOnLockVerifyListener;
+
+        public class OnLockVerifyListener : SSGestureLockViewDelegate
+        {
+
+            [Weak] GestureLockView _GestureLockView;
+
+            public OnLockVerifyListener(GestureLockView view)
+            {
+                _GestureLockView = view;
+            }
+
+            public override void onDidSelectedGestureLockView(string selectNumStr, int selectCount) {
+                _GestureLockView.OnLockVerifyEvent?.Invoke(selectNumStr, selectCount);
+            }
+            //public override void SelectIndex2(nint selectIndex1, nint selectIndex2, nint selectIndex3)
+            //{
+            //    _GestureLockView.OnLockVerifyEvent?.Invoke();
+            //}
+
+            //public override void OnProgressChanged(int mProgress)
+            //{
+            //    _WaveSeekBar.OnProgressChangedEvent?.Invoke(this, mProgress);
+            //}
+
+
+        }
+    }
+}
diff --git a/Shared.IOS/UI/HorizontalPages.cs b/Shared.IOS/UI/HorizontalPages.cs
new file mode 100644
index 0000000..fcee4f2
--- /dev/null
+++ b/Shared.IOS/UI/HorizontalPages.cs
@@ -0,0 +1,373 @@
+using System;
+using UIKit;
+using Shared.IO;
+using CoreGraphics;
+using Foundation;
+
+namespace Shared
+{
+    /// <summary>
+    /// 浣嶇疆甯冨眬
+    /// </summary>
+    public class HorizontalPages : ViewGroup
+    {
+        readonly MyHorizontalPages iosUIScrolView;
+
+        //readonly UIPageControl iosUIPageControl;
+
+        /// <summary>
+        /// 椤甸潰鍙樺寲浜嬩欢
+        /// </summary>
+        public Action<HorizontalPages,int> PageChange;
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyHorizontalPages : UIScrollView
+        {
+            [Weak]  HorizontalPages HorizontalPages;
+            //nfloat mLastX, mLastY, deltaX;
+            public MyHorizontalPages(HorizontalPages HorizontalPages)
+            {
+
+                this.HorizontalPages = HorizontalPages;
+                //this.ScrollEnabled = false;
+
+                DecelerationStarted += (s, e) =>
+                {
+                    var tempUIScrolView = s as MyHorizontalPages;
+                    //鑾峰彇褰撳墠鐣岄潰鐨勭储寮�
+                    //System.Console.WriteLine($"DecelerationStarted-------{tempUIScrolView.ContentOffset.X}");
+                    var tempPageIndex = Convert.ToInt32(tempUIScrolView.ContentOffset.X / (tempUIScrolView.Frame.Width - 2 * this.HorizontalPages._RowPadding + this.HorizontalPages._PagePadding));
+                    this.HorizontalPages.PageIndex = tempPageIndex;
+                };
+
+                DraggingEnded += (s, e) =>
+                {
+
+                    var tempUIScrolView = s as MyHorizontalPages;
+                    if (!e.Decelerate)
+                    {
+                       
+                        //System.Console.WriteLine($"DraggingEnded-------{tempUIScrolView.ContentOffset.X}");
+                        var tempPageIndex = Convert.ToInt32(tempUIScrolView.ContentOffset.X / (tempUIScrolView.Frame.Width - 2 * this.HorizontalPages._RowPadding + this.HorizontalPages._PagePadding));
+                        this.HorizontalPages.PageIndex = tempPageIndex;
+                    }
+                };
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+          
+                HorizontalPages?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+
+                //CGPoint point = (touches.AnyObject as UITouch).LocationInView(this);
+                ////璁板綍鐐瑰嚮鐨勬渶鏂癤鍧愭爣
+                //mLastX = point.X;
+                //bMove = false;
+                //System.Console.WriteLine($"TouchesBegan-------{mLastX}");
+            }
+
+            int mTouchSlop = 20;
+            bool bMove;
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+
+
+                HorizontalPages?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+
+                //CGPoint point = (touches.AnyObject as UITouch).LocationInView(this);
+                //deltaX = point.X - mLastX;
+                //if (Math.Abs(deltaX) >= mTouchSlop) {
+                //    bMove = true;
+                //}
+                //System.Console.WriteLine($"deltaX-------{deltaX}");
+        
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                HorizontalPages?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+
+                //if (bMove)
+                //{
+                //    if (deltaX < 0)//宸︽粦
+                //    {
+                //        this.HorizontalPages.PageIndex--;
+                //    }
+                //    else
+                //    {
+                //        this.HorizontalPages.PageIndex++;
+
+                //    }
+                //}
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                HorizontalPages?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+
+                if (view.ToString().Contains("UIScrollViewScrollIndicator"))
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public HorizontalPages()
+        {
+            viewGroup = new UIView();
+            iosUIScrolView = new MyHorizontalPages(this) {  };  
+            realViewGroup = iosUIScrolView;
+            //鍚姩缈婚〉鍔熻兘
+            //iosUIScrolView.PagingEnabled = true;
+            iosUIScrolView.ShowsHorizontalScrollIndicator = false;
+            viewGroup.AddSubview(iosUIScrolView);
+            _PagePadding = Application.GetRealWidth(50);
+            _RowPadding = Application.GetRealWidth(100);
+
+        }
+
+         //涓や釜Page涔嬮棿鐨勮窛绂�
+        int _PagePadding;
+        public int PagePadding
+        {
+            get
+            {
+                return _PagePadding;
+            }
+            set
+            {
+                _PagePadding = value;
+                ReLocation();
+            }
+        }
+        //page鐨勫杈硅窛
+        int _RowPadding;
+        public int RowPadding
+        {
+            get
+            {
+                return _RowPadding;
+            }
+            set
+            {
+                _RowPadding = value;
+                ReLocation();
+            }
+        }
+
+        
+
+
+
+
+        /// <summary>
+        /// 鏄惁鍏佽婊戝姩
+        /// </summary>
+        /// <value><c>true</c> if scroll enabled; otherwise, <c>false</c>.</value>
+        public bool ScrollEnabled
+        {
+            get
+            {
+                return (iosUIScrolView as MyHorizontalPages).ScrollEnabled;
+            }
+            set
+            {
+                (iosUIScrolView as MyHorizontalPages).ScrollEnabled = value;
+            }
+        }
+
+		int pageIndex;
+		/// <summary>
+		/// 璁剧疆鎴栬�呰幏鍙栧綋鍓嶇殑鐣岄潰绱㈠紩
+		/// </summary>
+		/// <value>The index of the page.</value>
+		public int PageIndex
+		{
+			get
+			{
+				return pageIndex;
+			}
+			set
+			{
+                if (value < 0 || ChildrenCount <= value)
+                {
+                    return;
+                }
+                int beforePageIndex = pageIndex;
+				pageIndex = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+              
+				var viewSize = iosUIScrolView.Frame.Size;
+
+
+                var rect = new CGRect(pageIndex * viewSize.Width, 0, viewSize.Width, viewSize.Height);
+                if (pageIndex != 0) {
+                    var frame = iosUIScrolView.Subviews[pageIndex].Frame;
+                    var w = frame.X - _RowPadding;
+
+                    rect = new CGRect(w, 0, viewSize.Width, viewSize.Height);
+                    //System.Console.WriteLine($"CGRect xx-------{w}");
+                }
+
+                //System.Console.WriteLine($"pageIndex xx-------{pageIndex}");
+                iosUIScrolView.ScrollRectToVisible(rect, false);
+
+                if (beforePageIndex != pageIndex)
+                {  
+                    PageChange?.Invoke(this, pageIndex);
+                }
+			}
+		}
+		/// <summary>
+		/// 澧炲姞瀛愭帶浠�
+		/// </summary>
+		/// <param name="view">View.</param>
+		public override void AddChidren(View view)
+		{
+            //var v = Application.AverageScale;
+            //var vv = Application.CurrentHeight;
+            //var dddd = Application.DesignWidth;
+			base.AddChidren(view);
+			ReLocation();
+		}
+
+		/// <summary>
+		/// 閲嶆柊鎺掍綅缃強璁惧鍐呭澶у皬
+		/// </summary>
+		public virtual void ReLocation()
+		{
+			if (iosUIScrolView.Subviews.Length == 0)
+			{
+				return;
+			}
+
+            var frame0 = iosUIScrolView.Subviews[0].Frame;
+            frame0.X = _RowPadding;
+            iosUIScrolView.Subviews[0].Frame = frame0;
+
+
+
+            for (int i = 1; i < iosUIScrolView.Subviews.Length; i++)
+			{
+				var frame = iosUIScrolView.Subviews[i].Frame;
+				frame.X = iosUIScrolView.Subviews[i - 1].Frame.Right+_PagePadding;
+				iosUIScrolView.Subviews[i].Frame = frame;
+			}
+
+			iosUIScrolView.ContentSize = new CoreGraphics.CGSize(iosUIScrolView.Subviews[iosUIScrolView.Subviews.Length - 1].Frame.Right+_RowPadding, iosUIScrolView.Frame.Height);
+		}
+
+
+
+		/// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		/// <value>The width.</value>
+		public override int Width
+		{
+			get
+			{
+				return base.Width;
+			}
+			set
+			{
+				base.Width = value;
+     
+                if (!IsCanRefresh)
+					return;
+			}
+		}
+
+		/// <summary>
+		/// 鎺т欢鐨勯珮搴�
+		/// </summary>
+		/// <value>The height.</value>
+		public override int Height
+		{
+			get
+			{
+				return base.Height;
+			}
+			set
+			{
+				base.Height = value;
+				if (!IsCanRefresh)
+					return;
+
+			}
+		}
+
+        /// <summary>
+        /// 绉婚櫎褰撳墠鎺т欢
+        /// </summary>
+        /// <param name="view">View.</param>
+        internal override void Remove(View view)
+        {
+            base.Remove(view);
+            ReLocation();
+
+            if (PageIndex > ChildrenCount - 1)
+            {
+                PageIndex = ChildrenCount - 1;
+            }
+ 
+        }
+
+		/// <summary>
+		/// 绉婚櫎鎵�鏈夌殑鎺т欢
+		/// </summary>
+		public override void RemoveAll()
+		{
+			base.RemoveAll();
+			ReLocation();
+            PageIndex = 0;
+		}
+
+		/// <summary>
+		/// 鏍规嵁绱㈠紩绉婚櫎鎺т欢
+		/// </summary>
+		/// <param name="index">Index.</param>
+		public override void RemoveAt(int index)
+		{
+            if (viewList.Count - 1 < index || index < 0)
+            {
+                return;
+            }
+            Remove(viewList[index]);
+		}
+    }
+}
+
diff --git a/Shared.IOS/UI/HorizontalScrolViewLayout.cs b/Shared.IOS/UI/HorizontalScrolViewLayout.cs
new file mode 100644
index 0000000..031003a
--- /dev/null
+++ b/Shared.IOS/UI/HorizontalScrolViewLayout.cs
@@ -0,0 +1,183 @@
+锘縰sing System;
+using UIKit;
+using Shared.IO;
+using Foundation;
+
+namespace Shared
+{
+	/// <summary>
+	/// 浣嶇疆甯冨眬
+	/// </summary>
+	public  class HorizontalScrolViewLayout:ViewGroup
+	{
+		/// <summary>
+		/// 鏋勯�犲嚱鏁�
+		/// </summary>
+		public HorizontalScrolViewLayout()
+		{   			
+			viewGroup = new MyHorizontalScrolViewLayout(this) { };
+			realViewGroup = viewGroup;
+            HorizontalScrollBarEnabled = false;
+        }
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyHorizontalScrolViewLayout : UIScrollView
+        {
+            [Weak] internal HorizontalScrolViewLayout horizontalScrolViewLayout;
+            public MyHorizontalScrolViewLayout(HorizontalScrolViewLayout horizontalScrolViewLayout)
+            {
+                this.horizontalScrolViewLayout = horizontalScrolViewLayout;
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                horizontalScrolViewLayout?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                horizontalScrolViewLayout?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                horizontalScrolViewLayout?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                horizontalScrolViewLayout?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+
+        /// <summary>
+        /// 澧炲姞瀛愯鍥�
+        /// </summary>
+        /// <returns>The chidren.</returns>
+        /// <param name="view">View.</param>
+        public override void AddChidren(View view)
+		{
+			base.AddChidren(view);
+			ReLocation();
+		}
+
+		/// <summary>
+		/// 閲嶆柊鎺掍綅缃強璁惧鍐呭澶у皬
+		/// </summary>
+		public virtual void ReLocation()
+		{
+			if (0 == viewList.Count)
+			{
+				return;
+			}
+			for (int i = 1; i < viewList.Count; i++)
+			{
+				var frame = viewList[i].RealView.Frame;
+				frame.X = viewList[i - 1].RealView.Frame.Right;
+				viewList[i].RealView.Frame = frame;
+			}
+
+			(realViewGroup as MyHorizontalScrolViewLayout).ContentSize = new CoreGraphics.CGSize(viewList[viewList.Count - 1].Right <= Width ? Width + 1 : viewList[viewList.Count - 1].Right,0);
+		}
+
+
+		/// <summary>
+		/// 绉婚櫎鎵�鏈夌殑瑙嗗浘
+		/// </summary>
+		public override  void RemoveAll()
+		{
+			base.RemoveAll();
+			ReLocation ();
+		}
+
+		/// <summary>
+		/// 绉婚櫎鎺т欢
+		/// </summary>
+		/// <param name="view">View.</param>
+		internal override void Remove(View view)
+		{
+			base.Remove(view);
+			ReLocation ();
+		}
+
+
+		/// <summary>
+		///  绉婚櫎鎸囧畾绱㈠紩瀵硅薄
+		/// </summary>
+		/// <param name="index">Index.</param>
+		public override void RemoveAt(int index)
+		{
+			base.RemoveAt(index);
+			ReLocation ();
+		}
+
+		/// <summary>
+		/// 鏄惁鍏佽婊戝姩
+		/// </summary>
+		/// <value><c>true</c> if scroll enabled; otherwise, <c>false</c>.</value>
+		public bool ScrollEnabled
+		{
+			get
+			{
+				return (viewGroup as MyHorizontalScrolViewLayout).ScrollEnabled;
+			}
+			set
+			{
+				(viewGroup as MyHorizontalScrolViewLayout).ScrollEnabled = value;
+			}
+		}
+
+		/// <summary>
+		/// 鏄惁姝e湪婊戝姩
+		/// </summary>
+		/// <value><c>true</c> if decelerating; otherwise, <c>false</c>.</value>
+		public bool Decelerating
+		{
+			get
+			{
+				return (viewGroup as MyHorizontalScrolViewLayout).Decelerating;
+			}
+		}
+
+        /// <summary>鈥�        /// 鏄惁鏄剧ず姘村钩婊氬姩鏉♀��        /// </summary>
+
+        public bool HorizontalScrollBarEnabled
+        {
+            get鈥�            {鈥�                return (viewGroup as MyHorizontalScrolViewLayout).ShowsHorizontalScrollIndicator;鈥�            }
+            set
+            {
+                (viewGroup as MyHorizontalScrolViewLayout).ShowsHorizontalScrollIndicator = value;
+
+            }
+        }
+    }
+
+
+}
diff --git a/Shared.IOS/UI/HorizontalSeekBar.cs b/Shared.IOS/UI/HorizontalSeekBar.cs
new file mode 100644
index 0000000..9908a3d
--- /dev/null
+++ b/Shared.IOS/UI/HorizontalSeekBar.cs
@@ -0,0 +1,340 @@
+using System;
+using UIKit;
+using System.IO;
+using Foundation;
+using CoreGraphics;
+using Shared.IO;
+
+namespace Shared
+{
+    /// <summary>
+    /// 浣嶇疆甯冨眬
+    /// </summary>
+    public class HorizontalSeekBar : View
+    {
+        MySlide currentRealView;
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public HorizontalSeekBar()
+        {
+            currentRealView = new MySlide(this) { };
+           
+            uiView = currentRealView;
+        }
+
+        /// <summary>
+        ///  杩涘害鍙樺寲浜嬩欢
+        /// </summary>
+        public Action<View, int> ProgressChanged;
+
+
+        int max = 100;
+        /// <summary>
+        /// 鏈�澶у��
+        /// </summary>
+        /// <value>The max.</value>
+        public int Max
+        {
+            get
+            {
+                return max;
+            }
+            set
+            {
+                max = value;
+                if (!IsCanRefresh)
+                {
+                    return;
+                }
+                currentRealView.MaxValue = value;
+            }
+        }
+        bool isCanScrolled = true;
+        /// <summary>
+        /// 鏄惁鍏佽婊戝姩婊戝潡
+        /// </summary>
+        /// <value><c>true</c> if is can scrolled; otherwise, <c>false</c>.</value>
+        public bool IsCanScrolled
+        {
+            get
+            {
+                return isCanScrolled;
+            }
+            set
+            {
+                isCanScrolled = value;
+                if (!IsCanRefresh)
+                {
+                    return;
+                }
+                currentRealView.UserInteractionEnabled = value;
+                if (value)
+                {
+                    //currentRealView.ThumbTintColor = UIColor.White;
+                }
+                else
+                {
+                    //currentRealView.ThumbTintColor = UIColor.Clear;
+                }
+            }
+        }
+
+        //2019-08-29 鏀�100姣
+        public int DelayTime = 100;
+        //闃叉璺冲姩锛屽欢鏃舵樉绀虹姸鎬�
+        DateTime delayDateTime = DateTime.MinValue;
+        int progress;
+        /// <summary>
+        /// 褰撳墠杩涘害
+        /// </summary>
+        /// <value>The progress.</value>
+        public int Progress
+        {
+            get
+            {
+                return (int)currentRealView.Value;
+            }
+            set
+            {
+                progress = value;
+                if (!IsCanRefresh)
+                {
+                    return;
+                }
+                //鍙戦�佸懡浠ゅ悗3000姣鍐呬笉鏇存柊鐘舵�侊紝闃叉璺冲姩
+                if ((DateTime.Now - delayDateTime).TotalMilliseconds < DelayTime)
+                {
+                    return;
+                }
+                currentRealView.Value = value;
+            }
+        }
+
+        public int SleepTime = 0;
+        uint progressColor = 0xFFEB642C;
+        /// <summary>
+        /// 杩涘害棰滆壊
+        /// </summary>
+        /// <value>The color of the progress.</value>
+        public uint ProgressColor
+        {
+            get
+            {
+                return progressColor;
+            }
+            set
+            {
+                progressColor = value;
+                int r = (byte)(progressColor / 256 / 256 % 256);
+                int g = (byte)(progressColor / 256 % 256);
+                int b = (byte)(progressColor % 256);
+                int a = (byte)(progressColor / 256 / 256 / 256 % 256);
+                currentRealView.MinimumTrackTintColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+            }
+        }
+
+        uint backgroundColor = 0xFFFFFFFF;
+        /// <summary>
+        /// 搴曢儴棰滆壊
+        /// </summary>
+        /// <value>The color of the background.</value>
+        public new uint BackgroundColor
+        {
+            get
+            {
+                return backgroundColor;
+            }
+            set
+            {
+                backgroundColor = value;
+                int r = (byte)(backgroundColor / 256 / 256 % 256);
+                int g = (byte)(backgroundColor / 256 % 256);
+                int b = (byte)(backgroundColor % 256);
+                int a = (byte)(backgroundColor / 256 / 256 / 256 % 256);
+                currentRealView.MaximumTrackTintColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+            }
+        }
+
+        uint thumbColor = 0xFFFFFFFF;
+        /// <summary>
+        /// 婊戝潡棰滆壊
+        /// </summary>
+        /// <value>The color of the background.</value>
+        public uint ThumbColor
+        {
+            get
+            {
+                return thumbColor;
+            }
+            set
+            {
+                thumbColor = value;
+                int r = (byte)(thumbColor / 256 / 256 % 256);
+                int g = (byte)(thumbColor / 256 % 256);
+                int b = (byte)(thumbColor % 256);
+                int a = (byte)(thumbColor / 256 / 256 / 256 % 256);
+                currentRealView.SetThumbImage(createImageWithColor(UIColor.FromRGBA(r, g, b, a)), UIControlState.Normal);
+            }
+        }
+
+
+        /// <summary>
+        /// 鏄惁鍙互婊戝姩
+        /// </summary>
+        public bool IsCanMove = true;
+        public DateTime dateTime = DateTime.MinValue;
+        internal override bool TouchEvent(EventActions eventAction, CGPoint point)
+        {
+            if (!IsCanMove)
+            {
+                return true;
+            }
+            delayDateTime = DateTime.Now;
+            switch (eventAction)
+            {
+                case EventActions.Down:
+                    dateTime = DateTime.MinValue;
+                    setValue((float)point.X);
+                    break;
+                case EventActions.Move:
+                    if (dateTime == DateTime.MinValue)
+                    {
+                        dateTime = DateTime.Now;
+                    }
+                    setValue((float)point.X);
+                    break;
+                case EventActions.Up:
+                    dateTime = DateTime.MinValue;
+                    setValue((float)point.X);
+                    break;
+                case EventActions.Cancel:
+                    dateTime = DateTime.MinValue;
+                    setValue((float)point.X);
+                    break;
+            }
+            return base.TouchEvent(eventAction, point);
+        }
+        float beforeValue = -1;
+        void setValue(float x)
+        {
+            if (x < 0)
+            {
+                x = 0;
+            }
+            if (Width - ThumbRadius < x)
+            {
+                x = Width - ThumbRadius;
+            }
+
+            currentRealView.Value = (x / (Width - ThumbRadius) * max);
+
+            if (beforeValue != currentRealView.Value)
+            {
+                //鐐瑰嚮涓嬫垨鑰呭脊璧锋垨鑰呮粦鍔ㄦ椂闂�500姣鐨勬椂鍊欙紝灏辫Е鍙戜簨浠�
+                if (ProgressChanged != null
+                    && SleepTime < (DateTime.Now - dateTime).TotalMilliseconds)
+                {
+                    beforeValue = currentRealView.Value;
+                    dateTime = DateTime.MinValue;
+                    delayDateTime = DateTime.Now;
+                    ProgressChanged(this, (int)currentRealView.Value);
+                }
+            }
+        }
+
+        int thumbRadius = 9;// 12;
+        public int ThumbRadius
+        {
+            get
+            {
+                return thumbRadius;
+            }
+            set
+            {
+                thumbRadius = value;
+                int r = (byte)(thumbColor / 256 / 256 % 256);
+                int g = (byte)(thumbColor / 256 % 256);
+                int b = (byte)(thumbColor % 256);
+                int a = (byte)(thumbColor / 256 / 256 / 256 % 256);
+                currentRealView.SetThumbImage(createImageWithColor(UIColor.FromRGBA(r, g, b, a)), UIControlState.Normal);
+            }
+        }
+
+        /// <summary>
+        /// 鍒锋柊褰撳墠瑙嗗浘
+        /// </summary>
+        public override void Refresh()
+        {
+            base.Refresh();
+            Max = max;
+            ProgressColor = progressColor;
+            Progress = progress;
+            IsCanScrolled = isCanScrolled;
+            ThumbRadius = thumbRadius;
+        }
+
+        UIImage createImageWithColor(UIColor color)
+        {
+            //璁剧疆闀垮
+            CGRect rect = new CGRect(0.0f, 0.0f, ThumbRadius * 2, ThumbRadius * 2);
+            UIGraphics.BeginImageContext(rect.Size);
+            var context = UIGraphics.GetCurrentContext();
+            context.SetFillColor(color.CGColor);
+            context.FillRect(rect);
+            UIImage resultImage = UIGraphics.GetImageFromCurrentImageContext();
+            UIGraphics.EndImageContext();
+            // 寮�濮嬩竴涓狪mage鐨勪笂涓嬫枃
+            UIGraphics.BeginImageContextWithOptions(resultImage.Size, false, 0.0f);
+            // 娣诲姞鍦嗚
+            UIBezierPath.FromRoundedRect(rect, ThumbRadius).AddClip();
+            // 缁樺埗鍥剧墖
+            resultImage.Draw(rect);
+            // 鎺ュ彈缁樺埗鎴愬姛鐨勫浘鐗�
+            resultImage = UIGraphics.GetImageFromCurrentImageContext();
+            UIGraphics.EndImageContext();
+            return resultImage;
+        }
+
+        class MySlide : UISlider
+        {
+            [Weak] View view;
+            public MySlide(View view) {
+                this.view = view;
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+        }
+    }
+}
diff --git a/Shared.IOS/UI/ImageView.cs b/Shared.IOS/UI/ImageView.cs
new file mode 100644
index 0000000..003a09a
--- /dev/null
+++ b/Shared.IOS/UI/ImageView.cs
@@ -0,0 +1,130 @@
+锘縰sing System;
+using Foundation;
+using Shared.IO;
+using UIKit;
+
+namespace Shared
+{
+	/// <summary>
+	/// ImageView 
+	/// </summary>
+	public class ImageView : View
+    {
+        MyImageView myImageView
+        {
+            get
+            {
+                return uiView as MyImageView;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Shared.Button"/> class.
+        /// </summary>
+        public ImageView()
+        {
+            myImageView = new MyImageView(this) { };
+            
+        }
+
+		internal string imagePath, tempImagePath;
+		/// <summary>
+		/// 闈為�変腑鐘舵�佺殑鑳屾櫙鍥捐矾寰�
+		/// </summary>
+		/// <value>The un selected image path.</value>
+		public string ImagePath
+		{
+			get
+			{
+				return imagePath;
+			}
+			set
+			{
+                tempImagePath = value;
+                if (!IsCanRefresh)
+                {
+                    return;
+                }
+                if (imageBytes != null)
+                {
+                    myImageView.SetBackgroundImage(UIImage.LoadFromData(NSData.FromArray(imageBytes)), UIControlState.Normal);
+                    return;
+                }
+                if (ImagePath == value)
+                {
+                    return;
+                }
+                imagePath = value;
+				myImageView.SetBackgroundImage(UIImage.FromFile(FileUtils.GetImageFilePath(imagePath)), UIControlState.Normal);
+			}
+		}
+
+        byte[] imageBytes;
+        public byte[] ImageBytes
+        {
+            get
+            {
+                return imageBytes;
+            }
+            set
+            {
+                imageBytes = value;
+                ImagePath = tempImagePath;
+            }
+        }
+
+
+        public override void Refresh()
+		{
+			base.Refresh();
+
+            ImagePath = tempImagePath;
+        }
+    }
+
+	class MyImageView : UIKit.UIButton
+	{
+        [Weak] View view;
+        public MyImageView(View view)
+        {
+            this.view = view;
+        }
+        /// <summary>
+        /// 鐐瑰嚮寮�濮�
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesBegan(NSSet touches, UIEvent evt)
+        {
+            view?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+        /// <summary>
+        ///  绉诲姩
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesMoved(NSSet touches, UIEvent evt)
+        {
+            view?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮寮硅捣
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesEnded(NSSet touches, UIEvent evt)
+        {
+            view?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+
+        public override void TouchesCancelled(NSSet touches, UIEvent evt)
+        {
+            view?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+    }
+}
diff --git a/Shared.IOS/UI/Lanuage.cs b/Shared.IOS/UI/Lanuage.cs
new file mode 100755
index 0000000..431fde6
--- /dev/null
+++ b/Shared.IOS/UI/Lanuage.cs
@@ -0,0 +1,99 @@
+锘縰sing System;
+using System.IO;
+
+namespace Shared
+{
+	public static class Language
+	{
+		static System.Collections.Generic.List<string> currentStringList;
+		static Language()
+		{
+			UpdateLanguage ();
+			if (0 < currentStringList.Count&&currentStringList[0].StartsWith("CurrentLanguage=")) {
+				CurrentLanguage = currentStringList [0].Substring ("CurrentLanguage=".Length);
+			}
+		}
+		static System.Collections.Generic.List<string> readStringList(string fileName,System.Text.Encoding encoding)
+		{
+            var stringList = new System.Collections.Generic.List<string> ();
+			System.IO.StreamReader fs = null;
+			try {
+                var filePath = Foundation.NSBundle.MainBundle.PathForResource(fileName, null);
+                if (filePath == null)
+                {
+                    return stringList;
+                }
+				//if (System.IO.File.Exists (System.IO.Path.Combine (Application.RootPath, fileName))) {
+					//fs = new   StreamReader (System.IO.Path.Combine (Application.RootPath, fileName),encoding);
+				//} else if (System.IO.File.Exists (fileName)) {
+                    fs = new  StreamReader (filePath,encoding);
+				//} else {
+					//return stringList;
+				//}
+				string s;
+				while(null!=(s=fs.ReadLine()))
+				{
+					stringList.Add(s.Trim());
+				}
+				return stringList;
+			} catch {
+				return stringList;
+			} finally {
+				try {
+					if (fs != null) {
+						fs.Close ();	
+					}
+				} catch {
+
+				}
+			}
+		}
+		/// <summary>
+		/// 閲嶆柊鏇存柊璇█搴撴暟鎹�
+		/// </summary>
+		public static void UpdateLanguage()
+		{
+			currentStringList = readStringList("Language.ini", System.Text.Encoding.UTF8);
+		}
+		/// <summary>
+		/// 褰撳墠璁剧疆鐨勮瑷�
+		/// </summary>
+		public static string CurrentLanguage="English";
+		/// <summary>
+		/// 鏍规嵁ID鑾峰彇瀵瑰簲鐨勫娉�
+		/// </summary>
+		/// <returns>The by I.</returns>
+		/// <param name="id">Identifier.</param>
+		public static string StringByID(int id)
+		{
+			bool flag = false;
+			for (int i = 0; i < currentStringList.Count; i++) {
+				string currentLine = currentStringList [i];
+				if (flag) {
+					if (currentLine.Contains("=")&&currentLine.StartsWith(id.ToString()+"=")) {
+						return currentLine.Substring (id.ToString ().Length + 1);
+					}
+				} else if (currentLine == "[" + CurrentLanguage + "]") {
+					flag = true;
+				} else {
+					continue;
+				}
+			}
+			return string.Empty;
+		}
+
+		public static string  []GetAllLanguage()
+		{
+			var list = new System.Collections.Generic.List<string> ();
+
+			for (int i = 0; i < currentStringList.Count; i++) {
+				string currentLine = currentStringList [i].Trim();
+				if (currentLine.StartsWith ("[") && currentLine.EndsWith ("]")) {
+					list.Add(currentLine.Substring(1,currentLine.Length-2));
+				}
+			}
+			return list.ToArray();
+		}
+	}
+}
+
diff --git a/Shared.IOS/UI/Loading.cs b/Shared.IOS/UI/Loading.cs
new file mode 100644
index 0000000..a4f8f2e
--- /dev/null
+++ b/Shared.IOS/UI/Loading.cs
@@ -0,0 +1,191 @@
+锘縰sing System;
+using UIKit;
+using CoreGraphics;
+
+namespace Shared
+{
+	/// <summary>
+	/// Loading UI
+	/// </summary>
+	public class Loading : View
+	{
+
+        public bool CurStatus = false;
+		internal IosLoading iosLoading
+		{
+			get
+			{
+				return uiView as IosLoading;
+			}
+			set
+			{
+				uiView = value;
+			}
+		}
+
+		/// <summary>
+		/// Loading UI
+		/// </summary>
+		public Loading()
+		{
+			var bounds = UIScreen.MainScreen.Bounds;
+			iosLoading = new IosLoading(bounds);
+		}
+
+
+		/// <summary>
+		/// 寮�濮嬪綋鍓嶈鍥�
+		/// </summary>
+		public void Start()
+		{
+			iosLoading.uiLabel.Text = "Loading......";
+			iosLoading.Start();
+            CurStatus = true;
+        }
+
+		/// <summary>
+		/// 寮�濮嬪綋鍓嶈鍥�
+		/// </summary>
+		public void Start(string s)
+		{
+			iosLoading.uiLabel.Text = s;
+			iosLoading.Start();
+        }
+
+
+		/// <summary>
+		/// 闅愯棌褰撳墠瑙嗗浘
+		/// </summary>
+		public void Hide()
+		{
+            iosLoading.uiLabel.Text = "Loading......";
+            iosLoading.Hide();
+            CurStatus = false;
+        }
+
+		public string Text
+		{
+			get
+			{
+				return iosLoading.uiLabel.Text;
+			}
+			set
+			{
+				iosLoading.uiLabel.Text = value;
+			}
+		}
+
+        public virtual uint LodingBackgroundColor
+        {
+            get
+            {
+                return (iosLoading as IosLoading).LodingBackgroundColor;
+            }
+            set
+            {
+                (iosLoading as IosLoading).LodingBackgroundColor = value;
+            }
+        }
+    }
+
+	internal class IosLoading : UIView {
+		
+		UIActivityIndicatorView activitySpinner= new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge);
+        public UILabel uiLabel=new UILabel();
+        UIView backUIView = new UIView(new CGRect(0, 0, 160, 100));
+
+        public IosLoading(CGRect frame)
+        {
+            Frame = frame;
+            Hidden = true;
+
+            AutoresizingMask = UIViewAutoresizing.All;
+
+            var f = backUIView.Frame;
+            f.Width = frame.Width;
+            f.Height = frame.Height;
+            backUIView.Frame = f;
+            var center = backUIView.Center;
+            center.X = Frame.Width / 2; 
+            center.Y = Frame.Height / 2; 
+            backUIView.Center = center;
+            AddSubview(backUIView);
+            // create the activity spinner, center it horizontall and put it 5 points above center x
+            var center1 = activitySpinner.Center;
+            center1.X = backUIView.Frame.Width / 2;
+            center1.Y = (backUIView.Frame.Height - 22) / 2;
+            activitySpinner.Center = center1;
+            backUIView.AddSubview(activitySpinner);
+            activitySpinner.BackgroundColor = UIColor.Clear;
+
+            var frame2 = uiLabel.Frame;
+            frame2.Y = activitySpinner.Frame.Bottom+22;
+            frame2.Width = backUIView.Frame.Width;
+            frame2.Height = 22;
+            uiLabel.Frame = frame2;
+
+            uiLabel.BackgroundColor = UIColor.Clear;
+            uiLabel.TextColor = UIColor.White;
+            uiLabel.TextAlignment = UITextAlignment.Center;
+            backUIView.AddSubview(uiLabel);
+        }
+
+        public void Start()
+        {
+            if (Superview == null)
+            {
+                return;
+            }
+            BackgroundColor = UIKit.UIColor.FromRGBA(0x32, 0x32, 0x32, 0xF0);
+            Hidden = false;
+            activitySpinner.StartAnimating();
+            Superview.BringSubviewToFront(this);
+        }
+
+		/// <summary>
+		/// Fades out the control and then removes it from the super view
+		/// </summary>
+		public void Hide ()
+		{
+            if(Superview==null){
+                return;
+            }
+			Hidden = true;
+			activitySpinner.StopAnimating ();
+			Superview.SendSubviewToBack(this);
+		}
+
+        uint loadingBackgroundColor;
+        /// <summary>
+        /// 鑳屾櫙棰滆壊
+        /// </summary>
+        /// <value>The color of the background.</value>
+        public virtual uint LodingBackgroundColor
+        {
+            get
+            {
+                return loadingBackgroundColor;
+            }
+            set
+            {
+                loadingBackgroundColor = value;
+
+                if (this.GetType() != typeof(ImageView))
+                {
+                    byte r, g, b, a;
+                    r = (byte)(loadingBackgroundColor / 256 / 256 % 256);
+                    g = (byte)(loadingBackgroundColor / 256 % 256);
+                    b = (byte)(loadingBackgroundColor % 256);
+                    a = (byte)(loadingBackgroundColor / 256 / 256 / 256 % 256);
+                    backUIView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+
+
+                    backUIView.Layer.MasksToBounds = true;
+                    backUIView.Layer.CornerRadius = 6;
+                    backUIView.Layer.BorderWidth = 0;
+                }
+            }
+        }
+    }
+}
+
diff --git a/Shared.IOS/UI/LongPressMoveVerticalScrolViewLayout.cs b/Shared.IOS/UI/LongPressMoveVerticalScrolViewLayout.cs
new file mode 100644
index 0000000..75b2c09
--- /dev/null
+++ b/Shared.IOS/UI/LongPressMoveVerticalScrolViewLayout.cs
@@ -0,0 +1,277 @@
+锘縰sing System;
+using CoreGraphics;
+using Foundation;
+using UIKit;
+
+namespace Shared
+{
+    public class LongPressMoveVerticalScrolViewLayout:ViewGroup
+    {
+		/// <summary>
+		/// 鏋勯�犲嚱鏁�
+		/// </summary>
+		public LongPressMoveVerticalScrolViewLayout()
+		{
+			viewGroup = new MyLongPressMoveVerticalScrolViewLayout(this);
+            realViewGroup = viewGroup;
+            viewGroup.AddGestureRecognizer(new MyUILongPressGestureRecognizer(sender =>
+            {
+                (sender as MyUILongPressGestureRecognizer).longPressMoveVerticalScrolViewLayout?.uiViewLongPressed(sender);
+            })
+            { longPressMoveVerticalScrolViewLayout = this });
+        }
+
+        class MyUILongPressGestureRecognizer : UILongPressGestureRecognizer {
+            [Weak] internal LongPressMoveVerticalScrolViewLayout longPressMoveVerticalScrolViewLayout;
+            public MyUILongPressGestureRecognizer(Action<UILongPressGestureRecognizer> action):base(action) {
+               
+            }
+        }
+
+        public override void AddChidren(View view)
+        {
+            base.AddChidren(view);
+            int maxHeight = 0;
+            foreach (View tempView in viewList)
+            {
+                if (maxHeight < tempView.Bottom)
+                {
+                    maxHeight = tempView.Bottom;
+                }
+            }
+            (realViewGroup as MyLongPressMoveVerticalScrolViewLayout).ContentSize = new CGSize(Width, maxHeight);
+        }
+
+		/// <summary>
+		/// 鏍规嵁鐐瑰嚮浣嶇疆鎵惧嚭鐐瑰嚮鍒扮殑瑙嗗浘
+		/// </summary>
+		/// <returns>The view of point.</returns>
+		/// <param name="point">Point.</param>
+		/// <param name="uiview">Uiview.</param>
+		UIView replaceUIViewOfPoint(CGPoint point, UIView uiview)
+		{
+            //绗竴涓槸鑳屾櫙鍥�
+            for (int i = 1; i < realViewGroup.Subviews.Length; i++)
+			{
+                var tempUIView = realViewGroup.Subviews[i];
+				if (tempUIView != uiview)
+				{
+					if (tempUIView.Frame.Contains(point))
+					{
+                        return tempUIView;
+					}
+				}
+			}
+            return null;
+		}
+
+		/// <summary>
+        /// 瀵规崲浣嶇疆鐨勪袱涓鍥�
+        /// </summary>
+        public Action<View,View> ReplaceChanged;
+
+        /// <summary>
+        /// 鏍规嵁鐐瑰嚮浣嶇疆鎵惧嚭鐐瑰嚮鍒扮殑瑙嗗浘
+        /// </summary>
+        /// <returns>杩斿洖鐐瑰嚮鍒扮殑瑙嗗浘</returns>
+        /// <param name="point">褰撳墠鐐瑰嚮浣嶇疆</param>
+        UIView selectedUIViewOfPoint(CGPoint point)
+        {
+            foreach (UIView uiView in realViewGroup.Subviews)
+            {
+                if (uiView.GetType() != typeof(UIImageView) && uiView.Frame.Contains(point))
+                {
+                    return uiView;
+                }
+            }
+            return null;
+        }
+
+
+		CGPoint originPoint;
+		bool contain;
+		UIView selectedUIView;
+		void uiViewLongPressed(UILongPressGestureRecognizer sender)
+		{
+            //闀挎寜寮�濮�
+            if (sender.State == UIGestureRecognizerState.Began)
+            {
+                //鎵惧嚭褰撳墠鐐瑰嚮浣嶇疆鐨勮鍥�
+                selectedUIView = selectedUIViewOfPoint(sender.LocationInView(sender.View));
+                if (selectedUIView == null)
+                {
+                    return;
+                }
+                originPoint = selectedUIView.Center;
+                UIView.Animate(1.0f, () =>
+                {
+                    selectedUIView.Transform = CGAffineTransform.MakeScale(1.1f, 1.1f);
+                    selectedUIView.Alpha = 0.7f;
+                });
+            }
+            else if (sender.State == UIGestureRecognizerState.Changed)
+            {
+                if (selectedUIView == null)
+                {
+                    return;
+                }
+                //绉诲姩褰撳墠瑙嗗浘
+                selectedUIView.Center = sender.LocationInView(sender.View);
+                //鑾峰彇褰撳墠瑙嗗浘杩涘叆浜嗗摢涓鍥剧殑鍖哄煙
+                var replaceUIView = replaceUIViewOfPoint(selectedUIView.Center, selectedUIView);
+                if (replaceUIView ==null)
+                {
+                    contain = false;
+                }
+                else
+                {
+                    //杩涘叆鍖哄煙鍚庡垏鎹綅缃�
+                    UIView.Animate(1.0f, () =>
+                    {
+                        var temp = replaceUIView.Center;
+                        replaceUIView.Center = originPoint;
+                        selectedUIView.Center = temp;
+                        originPoint = selectedUIView.Center;
+                        contain = true;
+                    }, () =>
+                    {
+                        View selectedView = null;
+                        foreach (View view in viewList)
+                        {
+                            if (view.RealView == selectedUIView)
+                            {
+                                selectedView = view;
+                                break;
+                            }
+                        }
+                        View replaceView = null;
+                        foreach (View view in viewList)
+                        {
+                            if (view.RealView == replaceUIView)
+                            {
+                                replaceView = view;
+                                break;
+                            }
+                        }
+                        if(ReplaceChanged!=null){
+                            ReplaceChanged(selectedView, replaceView);
+                        }
+
+                    });
+                }
+            }
+			else if (sender.State == UIGestureRecognizerState.Ended)
+			{
+				if (selectedUIView == null)
+				{
+					return;
+				}
+				UIView.Animate(1.0f, () =>
+				   {
+					   selectedUIView.Transform = CGAffineTransform.MakeIdentity();
+					   selectedUIView.Alpha = 1.0f;
+					   //濡傛灉涓嶉渶瑕佺Щ鍔ㄤ綅缃�
+					   if (!contain)
+					   {
+						   selectedUIView.Center = originPoint;
+					   }
+				   });
+			}
+		}
+
+		/// <summary>
+		/// 鏄惁鍏佽婊戝姩
+		/// </summary>
+		/// <value><c>true</c> if scroll enabled; otherwise, <c>false</c>.</value>
+		public bool ScrollEnabled
+		{
+			get
+			{
+				return (viewGroup as MyLongPressMoveVerticalScrolViewLayout).ScrollEnabled;
+			}
+			set
+			{
+				(viewGroup as MyLongPressMoveVerticalScrolViewLayout).ScrollEnabled = value;
+			}
+		}
+
+		/// <summary>
+		/// 鏄惁姝e湪婊戝姩
+		/// </summary>
+		/// <value><c>true</c> if decelerating; otherwise, <c>false</c>.</value>
+		public bool Decelerating
+		{
+			get
+			{
+				return (viewGroup as MyLongPressMoveVerticalScrolViewLayout).Decelerating;
+			}
+		}
+
+		/// <summary>
+		/// 婊戝姩浜嬩欢
+		/// </summary>
+		public  EventHandler<MouseEventArgs> ScrolledEventHandler;
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyLongPressMoveVerticalScrolViewLayout : UIScrollView
+        {
+            [Weak] LongPressMoveVerticalScrolViewLayout  view;
+            public MyLongPressMoveVerticalScrolViewLayout(LongPressMoveVerticalScrolViewLayout view)
+            {
+                this.view = view;
+               
+                Scrolled += (sender, e) =>
+                {
+                   this.view?.ScrolledEventHandler?.Invoke(this, new MouseEventArgs { X = (float)(sender as MyLongPressMoveVerticalScrolViewLayout).ContentOffset.X, Y = (float)(sender as MyLongPressMoveVerticalScrolViewLayout).ContentOffset.Y });
+                };
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+    }
+}
diff --git a/Shared.IOS/UI/MusicVerticalScrolViewLayout.cs b/Shared.IOS/UI/MusicVerticalScrolViewLayout.cs
new file mode 100644
index 0000000..9f14fc2
--- /dev/null
+++ b/Shared.IOS/UI/MusicVerticalScrolViewLayout.cs
@@ -0,0 +1,262 @@
+锘縰sing System;
+using CoreGraphics;
+using Foundation;
+using UIKit;
+
+namespace Shared
+{
+    public class MusicVerticalScrolViewLayout:ViewGroup
+    {
+		/// <summary>
+		/// 鏋勯�犲嚱鏁�
+		/// </summary>
+		public MusicVerticalScrolViewLayout()
+		{
+			viewGroup = new MyMusicVerticalScrolViewLayout(this) { };
+            
+			viewGroup.AddGestureRecognizer(new MyUILongPressGestureRecognizer(sender =>
+                {
+                    (sender as MyUILongPressGestureRecognizer).musicVerticalScrolViewLayout?.uiViewLongPressed(sender);
+                })
+            { MinimumPressDuration = 1.0f,musicVerticalScrolViewLayout=this });
+			realViewGroup = viewGroup;
+		}
+
+        class MyUILongPressGestureRecognizer : UILongPressGestureRecognizer
+        {
+            [Weak] internal MusicVerticalScrolViewLayout musicVerticalScrolViewLayout;
+            public MyUILongPressGestureRecognizer(Action<UILongPressGestureRecognizer> action) : base(action)
+            {
+                
+            }
+        }
+
+        public override void AddChidren(View view)
+        {
+            base.AddChidren(view);
+            int maxHeight = 0;
+            foreach (View tempView in viewList)
+            {
+                if (maxHeight < tempView.Bottom)
+                {
+                    maxHeight = tempView.Bottom;
+                }
+            }
+            (realViewGroup as MyMusicVerticalScrolViewLayout).ContentSize = new CGSize(Width, maxHeight < realViewGroup.Frame.Height ? (realViewGroup.Frame.Height + 1) : maxHeight);
+        }
+
+		/// <summary>
+		/// 鏍规嵁鐐瑰嚮浣嶇疆鎵惧嚭鐐瑰嚮鍒扮殑瑙嗗浘
+		/// </summary>
+		/// <returns>The view of point.</returns>
+		/// <param name="point">Point.</param>
+		/// <param name="uiview">Uiview.</param>
+		UIView replaceUIViewOfPoint(CGPoint point, UIView uiview)
+		{
+            //绗竴涓槸鑳屾櫙鍥�
+            for (int i = 1; i < realViewGroup.Subviews.Length; i++)
+			{
+                var tempUIView = realViewGroup.Subviews[i];
+				if (tempUIView != uiview)
+				{
+					if (tempUIView.Frame.Contains(point))
+					{
+                        return tempUIView;
+					}
+				}
+			}
+            return null;
+		}
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Action<View, View> ReplaceChanged;
+		/// <summary>
+        /// 闀挎寜浜嬩欢
+        /// </summary>
+        public Action<View> LongPressAction;
+
+        /// <summary>
+        /// 鏍规嵁鐐瑰嚮浣嶇疆鎵惧嚭鐐瑰嚮鍒扮殑瑙嗗浘
+        /// </summary>
+        /// <returns>杩斿洖鐐瑰嚮鍒扮殑瑙嗗浘</returns>
+        /// <param name="point">褰撳墠鐐瑰嚮浣嶇疆</param>
+        UIView selectedUIViewOfPoint(CGPoint point)
+        {
+            foreach (UIView uiView in realViewGroup.Subviews)
+            {
+                if (uiView.GetType() != typeof(UIImageView) && uiView.Frame.Contains(point))
+                {
+                    return uiView;
+                }
+            }
+            return null;
+        }
+		CGPoint originPoint;
+		UIView selectedUIView,replaceUIView;
+        bool isFirst;
+        void uiViewLongPressed(UILongPressGestureRecognizer sender)
+        {
+            //闀挎寜寮�濮�
+            if (sender.State == UIGestureRecognizerState.Began)
+            {
+                //鎵惧嚭褰撳墠鐐瑰嚮浣嶇疆鐨勮鍥�
+                selectedUIView = selectedUIViewOfPoint(sender.LocationInView(sender.View));
+                if (selectedUIView == null)
+                {
+                    return;
+                }
+                viewGroup.BringSubviewToFront(selectedUIView);
+                originPoint = selectedUIView.Center;
+                isFirst = false;
+                UIView.Animate(1.0f, () =>
+                {
+                    selectedUIView.Transform = CGAffineTransform.MakeScale(0.8f, 0.8f);
+                    selectedUIView.Alpha = 0.7f;
+                });
+            }
+            else if (sender.State == UIGestureRecognizerState.Changed)
+            {
+                if (selectedUIView == null)
+                {
+                    return;
+                }
+                //绉诲姩褰撳墠瑙嗗浘
+                selectedUIView.Center = sender.LocationInView(sender.View);
+                //鑾峰彇褰撳墠瑙嗗浘杩涘叆浜嗗摢涓鍥剧殑鍖哄煙
+                var temReplaceUIView = replaceUIViewOfPoint(selectedUIView.Center, selectedUIView);
+                replaceUIView = temReplaceUIView;
+                if (temReplaceUIView != null)
+                {
+                    if (isFirst)
+                    {
+                        return;
+                    }
+                    isFirst = true;
+                    ////杩涘叆鍖哄煙鍚庡垏鎹綅缃�
+                    UIView.Animate(1.0f, () =>
+                    {
+                        temReplaceUIView.Transform = CGAffineTransform.MakeScale(1.1f, 1.1f);
+                    }, () =>
+                    {
+                        temReplaceUIView.Transform = CGAffineTransform.MakeScale(1.0f, 1.0f);
+                    });
+
+                }
+            }
+            else if (sender.State == UIGestureRecognizerState.Ended)
+            {
+                if (selectedUIView == null)
+                {
+                    return;
+                }
+                View selectedView = null;
+                foreach (View view in viewList)
+                {
+                    if (view.RealView == selectedUIView)
+                    {
+                        selectedView = view;
+                        break;
+                    }
+                }
+
+                if(selectedUIView!=null&&selectedUIView.Frame.Contains(originPoint)){
+                    UIView.Animate(1.0f, () =>
+                    {
+                        selectedUIView.Transform = CGAffineTransform.MakeIdentity();
+                        selectedUIView.Alpha = 1.0f;
+                        selectedUIView.Center = originPoint;
+                    });
+                    return;
+                }
+                UIView.Animate(1.0f, () =>
+                   {
+                       selectedUIView.Transform = CGAffineTransform.MakeIdentity();
+                       selectedUIView.Alpha = 1.0f;
+                       selectedUIView.Center = originPoint;
+                });
+
+                if (replaceUIView == null)
+                {
+                    if (LongPressAction != null)
+                    {
+                        LongPressAction(selectedView);
+                    }
+                    return;
+                }
+
+                View replaceView = null;
+                foreach (View view in viewList)
+                {
+                    if (view.RealView == replaceUIView)
+                    {
+                        replaceView = view;
+                        break;
+                    }
+                }
+                if (ReplaceChanged != null)
+                {
+                    ReplaceChanged(replaceView, selectedView);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyMusicVerticalScrolViewLayout : UIScrollView
+        {
+            [Weak] View view;
+            public MyMusicVerticalScrolViewLayout(View view)
+            {
+                this.view = view;
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                view?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+    }
+}
diff --git a/Shared.IOS/UI/MyEchartsView.cs b/Shared.IOS/UI/MyEchartsView.cs
new file mode 100644
index 0000000..075d4da
--- /dev/null
+++ b/Shared.IOS/UI/MyEchartsView.cs
@@ -0,0 +1,133 @@
+//using UIKit;
+//using Foundation;
+//using Shared.IO;
+//using CoreFoundation;
+//using System.Collections.Generic;
+//using System;
+//using System.Runtime;
+
+//namespace Shared
+//{
+//    /// <summary>
+//    /// Button 鎸夐敭
+//    /// </summary>
+//    public class MyEchartsView : View
+//    {
+//        JsonData jsonData = new JsonData { };
+//        UIWebView uIWebView;
+//        public MyEchartsView()
+//        {
+//            uIWebView = new UIWebView { };
+//            uiView = uIWebView;
+//            uIWebView.ScrollView.Bounces = false;
+//            uIWebView.ScrollView.ScrollEnabled = false;
+//            var filePath = NSBundle.MainBundle.PathForResource("echarts", "html");
+//            var url = new NSUrl(filePath);
+//            var request = new NSUrlRequest(url);
+//            uIWebView.LoadRequest(request);
+//            uIWebView.LoadFinished += (sender, e) => {
+//                uIWebView.EvaluateJavascript($"loadEcharts({Newtonsoft.Json.JsonConvert.SerializeObject(jsonData)},'undefined')");
+//            };
+//        }
+//        public void Show(string title, string[] xArray, object[] yArray)
+//        {
+//            jsonData.Title = title;
+//            jsonData.XArray = xArray;
+//            jsonData.YArray = yArray;
+//            uIWebView.EvaluateJavascript($"loadEcharts({Newtonsoft.Json.JsonConvert.SerializeObject(jsonData)},'undefined')");
+//        }
+//        ///Users/hdl/MyFiles/My/Xamarin/MyApp/Library/Shared.IOS/UI/MyEchartsView.cs(30,30): Error CS0012: The type 'Attribute' is defined in an assembly that is not referenced.You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. (CS0012) (Shared.IOS)
+//        ///Users/hdl/MyFiles/My/Xamarin/MyApp/Demo/IOS/MTOUCH: Error MT2101: Can't resolve the reference 'System.Reflection.Emit.ILGenerator System.Reflection.Emit.DynamicMethod::GetILGenerator()', referenced from the method 'Newtonsoft.Json.Serialization.ObjectConstructor`1<System.Object> Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory::CreateParameterizedConstructor(System.Reflection.MethodBase)' in 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. (MT2101) (Demo.IOS)
+//        ///Users/hdl/MyFiles/My/Xamarin/MyApp/Demo/IOS/MTOUCH: Error MT2101: Can't resolve the reference 'System.Reflection.Emit.ILGenerator System.Reflection.Emit.DynamicMethod::GetILGenerator()', referenced from the method 'Newtonsoft.Json.Serialization.ObjectConstructor`1<System.Object> Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory::CreateParameterizedConstructor(System.Reflection.MethodBase)' in 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. (MT2101) (Demo.IOS)
+//        ///Users/hdl/MyFiles/My/Xamarin/MyApp/Demo/IOS/MTOUCH: Error MT2101: Can't resolve the reference 'System.Reflection.Emit.ILGenerator System.Reflection.Emit.DynamicMethod::GetILGenerator()', referenced from the method 'Newtonsoft.Json.Serialization.ObjectConstructor`1<System.Object> Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory::CreateParameterizedConstructor(System.Reflection.MethodBase)' in 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. (MT2101) (Demo.IOS)
+//        public string Unit
+//        {
+//            get
+//            {
+//                return jsonData.Unit;
+//            }
+//            set
+//            {
+//                jsonData.Unit = value;
+//            }
+//        }
+
+        
+//        [Serializable]
+//        class JsonData
+//        {
+//            /// <summary>
+//            /// 鏍囬鍐呭
+//            /// </summary>
+//            /// <value>The title.</value>
+//            [Newtonsoft.Json.JsonIgnore]
+//            public string Title
+//            {
+//                get
+//                {
+//                    return title["text"].ToString();
+//                }
+//                set
+//                {
+//                    title["text"] = value;
+//                }
+//            }
+//            [Newtonsoft.Json.JsonProperty]
+//            readonly Dictionary<string, object> title = new Dictionary<string, object> { ["text"] = "" };
+//            [Newtonsoft.Json.JsonProperty]
+//            readonly Dictionary<string, object> tooltip = new Dictionary<string, object> { ["trigger"] = "axis" };
+//            /// <summary>
+//            /// X杞村潗鏍囩偣
+//            /// </summary>
+//            /// <value>The XA rray.</value>
+//            [Newtonsoft.Json.JsonIgnore]
+//            public string[] XArray
+//            {
+//                get
+//                {
+//                    return (xAxis[0] as Dictionary<string, object>)["data"] as string[];
+//                }
+//                set
+//                {
+//                    (xAxis[0] as Dictionary<string, object>)["data"] = value;
+//                }
+//            }
+//            [Newtonsoft.Json.JsonProperty]
+//            readonly List<object> xAxis = new List<object> { new Dictionary<string, object> { ["type"] = "category", ["boundaryGap"] = false, ["data"] = new object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } } };
+//            [Newtonsoft.Json.JsonIgnore]
+//            public string Unit
+//            {
+//                get
+//                {
+//                    return ((yAxis[0] as Dictionary<string, object>)["axisLabel"] as Dictionary<string, object>)["formatter"].ToString().Substring("{value}".Length);
+//                }
+//                set
+//                {
+//                    ((yAxis[0] as Dictionary<string, object>)["axisLabel"] as Dictionary<string, object>)["formatter"] = "{value}" + value;
+//                }
+//            }
+//            [Newtonsoft.Json.JsonProperty]
+//            readonly List<object> yAxis = new List<object> { new Dictionary<string, object> { ["type"] = "value", ["axisLabel"] = new Dictionary<string, object> { ["formatter"] = "{value}" } } };
+//            /// <summary>
+//            /// Y杞村潗鏍囩偣
+//            /// </summary>
+//            /// <value>The YA rray.</value>
+//            [Newtonsoft.Json.JsonIgnore]
+//            public object[] YArray
+//            {
+//                get
+//                {
+//                    return (series[0] as Dictionary<string, object>)["data"] as object[];
+//                }
+//                set
+//                {
+//                    (series[0] as Dictionary<string, object>)["data"] = value;
+//                }
+//            }
+//            [Newtonsoft.Json.JsonProperty]
+//            readonly List<object> series = new List<object> { new Dictionary<string, object> { ["name"] = "Value", ["type"] = "line", ["data"] = new object[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, ["markPoint"] = new Dictionary<string, object> { ["data"] = new List<object> { new Dictionary<string, object> { ["type"] = "max", ["name"] = "Max" }, new Dictionary<string, object> { ["type"] = "min", ["name"] = "Min" } } }, ["markLine"] = new Dictionary<string, object> { ["data"] = new List<object> { new Dictionary<string, object> { ["type"] = "average", ["name"] = "Average" } } } } };
+//        }
+//    }
+//}
+
+
diff --git a/Shared.IOS/UI/PageLayout.cs b/Shared.IOS/UI/PageLayout.cs
new file mode 100644
index 0000000..b3b512f
--- /dev/null
+++ b/Shared.IOS/UI/PageLayout.cs
@@ -0,0 +1,303 @@
+using System;
+using UIKit;
+using Shared.IO;
+using CoreGraphics;
+using Foundation;
+
+namespace Shared
+{
+    /// <summary>
+    /// 浣嶇疆甯冨眬
+    /// </summary>
+    public class PageLayout : ViewGroup
+    {
+        readonly MyPageLayout iosUIScrolView;
+
+        readonly UIPageControl iosUIPageControl;
+
+        /// <summary>
+        /// 椤甸潰鍙樺寲浜嬩欢
+        /// </summary>
+        public Action<PageLayout,int> PageChange;
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyPageLayout : UIScrollView
+        {
+            [Weak]  PageLayout pageLayout;
+            public MyPageLayout(PageLayout pageLayout)
+            {
+                this.pageLayout = pageLayout;
+                DecelerationEnded += (s, e) =>
+                {
+                    var tempUIScrolView = s as MyPageLayout;
+                    //鑾峰彇褰撳墠鐣岄潰鐨勭储寮�
+                    var tempPageIndex = Convert.ToInt32(tempUIScrolView.ContentOffset.X / tempUIScrolView.Frame.Width);
+
+                    //閫氱煡鐣岄潰绱㈠紩鍙樺寲
+                    if (this.pageLayout.pageIndex != tempPageIndex)
+                    {
+                        this.pageLayout.pageIndex = tempPageIndex;
+                        this.pageLayout.iosUIPageControl.CurrentPage = tempPageIndex;
+                        this.pageLayout.PageChange?.Invoke(this.pageLayout, this.pageLayout.pageIndex);
+                    }
+                };
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                pageLayout?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                pageLayout?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                pageLayout?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                pageLayout?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+
+                if (view.ToString().Contains("UIScrollViewScrollIndicator"))
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public PageLayout()
+        {
+            viewGroup = new UIView();
+            iosUIPageControl = new UIPageControl { Enabled = false };
+            iosUIScrolView = new MyPageLayout(this) {  };
+           
+            realViewGroup = iosUIScrolView;
+
+            var frame = iosUIPageControl.Frame;
+            frame.Height = 16;
+            iosUIPageControl.Frame = frame;
+            //鍚姩缈婚〉鍔熻兘
+            iosUIScrolView.PagingEnabled = true;
+            iosUIScrolView.Bounces = false;
+            iosUIScrolView.ShowsHorizontalScrollIndicator = false;
+            viewGroup.AddSubview(iosUIScrolView);
+            viewGroup.AddSubview(iosUIPageControl);
+            
+        }
+
+        
+        /// <summary>
+        ///  鏄惁鏄剧ず涓嬮潰涓�鎺掔殑鐐�
+        /// </summary>
+        /// <value><c>true</c> if is show point; otherwise, <c>false</c>.</value>
+        public bool IsShowPoint
+        {
+            get
+            {
+                return !iosUIPageControl.Hidden;
+            }
+            set
+            {
+                iosUIPageControl.Hidden = !value;
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁鍏佽婊戝姩
+        /// </summary>
+        /// <value><c>true</c> if scroll enabled; otherwise, <c>false</c>.</value>
+        public bool ScrollEnabled
+        {
+            get
+            {
+                return (iosUIScrolView as MyPageLayout).ScrollEnabled;
+            }
+            set
+            {
+                (iosUIScrolView as MyPageLayout).ScrollEnabled = value;
+            }
+        }
+
+		int pageIndex;
+		/// <summary>
+		/// 璁剧疆鎴栬�呰幏鍙栧綋鍓嶇殑鐣岄潰绱㈠紩
+		/// </summary>
+		/// <value>The index of the page.</value>
+		public int PageIndex
+		{
+			get
+			{
+				return pageIndex;
+			}
+			set
+			{
+                if (value < 0 || ChildrenCount <= value)
+                {
+                    return;
+                }
+                int beforePageIndex = pageIndex;
+				pageIndex = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+              
+				var viewSize = iosUIScrolView.Frame.Size;
+                var rect = new CGRect(pageIndex * viewSize.Width, 0, viewSize.Width, viewSize.Height);
+                iosUIScrolView.ScrollRectToVisible(rect, false);
+
+                if (beforePageIndex != pageIndex)
+                {
+                    iosUIPageControl.CurrentPage = pageIndex;
+                    PageChange?.Invoke(this, pageIndex);
+                }
+			}
+		}
+		/// <summary>
+		/// 澧炲姞瀛愭帶浠�
+		/// </summary>
+		/// <param name="view">View.</param>
+		public override void AddChidren(View view)
+		{
+            //var v = Application.AverageScale;
+            //var vv = Application.CurrentHeight;
+            //var dddd = Application.DesignWidth;
+			base.AddChidren(view);
+			iosUIPageControl.Pages = ChildrenCount;
+			ReLocation();
+		}
+
+		/// <summary>
+		/// 閲嶆柊鎺掍綅缃強璁惧鍐呭澶у皬
+		/// </summary>
+		public virtual void ReLocation()
+		{
+			if (iosUIScrolView.Subviews.Length == 0)
+			{
+				return;
+			}
+
+			for (int i = 1; i < iosUIScrolView.Subviews.Length; i++)
+			{
+				var frame = iosUIScrolView.Subviews[i].Frame;
+				frame.X = iosUIScrolView.Subviews[i - 1].Frame.Right;
+				iosUIScrolView.Subviews[i].Frame = frame;
+			}
+
+			iosUIScrolView.ContentSize = new CoreGraphics.CGSize(iosUIScrolView.Subviews[iosUIScrolView.Subviews.Length - 1].Frame.Right, iosUIScrolView.Frame.Height);
+		}
+
+
+
+		/// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		/// <value>The width.</value>
+		public override int Width
+		{
+			get
+			{
+				return base.Width;
+			}
+			set
+			{
+				base.Width = value;
+				if (!IsCanRefresh)
+					return;
+				var frame = iosUIPageControl.Frame;
+				frame.Width = Width;
+				iosUIPageControl.Frame = frame;
+			}
+		}
+
+		/// <summary>
+		/// 鎺т欢鐨勯珮搴�
+		/// </summary>
+		/// <value>The height.</value>
+		public override int Height
+		{
+			get
+			{
+				return base.Height;
+			}
+			set
+			{
+				base.Height = value;
+				if (!IsCanRefresh)
+					return;
+				var frame = iosUIPageControl.Frame;
+				frame.Y = Height - frame.Height;
+				iosUIPageControl.Frame = frame;
+			}
+		}
+
+        /// <summary>
+        /// 绉婚櫎褰撳墠鎺т欢
+        /// </summary>
+        /// <param name="view">View.</param>
+        internal override void Remove(View view)
+        {
+            base.Remove(view);
+            ReLocation();
+            PageIndex = ChildrenCount - 1;
+            iosUIPageControl.Pages = ChildrenCount;
+            iosUIPageControl.CurrentPage = PageIndex;
+        }
+
+		/// <summary>
+		/// 绉婚櫎鎵�鏈夌殑鎺т欢
+		/// </summary>
+		public override void RemoveAll()
+		{
+			base.RemoveAll();
+			ReLocation();
+            iosUIPageControl.Pages = 0;
+            PageIndex = 0;
+            iosUIPageControl.CurrentPage = 0;
+		}
+
+		/// <summary>
+		/// 鏍规嵁绱㈠紩绉婚櫎鎺т欢
+		/// </summary>
+		/// <param name="index">Index.</param>
+		public override void RemoveAt(int index)
+		{
+            Remove(viewList[index]);
+		}
+    }
+}
+
diff --git a/Shared.IOS/UI/PickerView.cs b/Shared.IOS/UI/PickerView.cs
new file mode 100644
index 0000000..d9d96a3
--- /dev/null
+++ b/Shared.IOS/UI/PickerView.cs
@@ -0,0 +1,176 @@
+锘縰sing System;
+using Foundation;
+using System.Collections.Generic;
+using Shared.IOS.TBL;
+
+namespace Shared
+{
+    public static class PickerView
+    {
+        //public static void Show(List<KeyValuePair<string, string[]>> list, Action<int> action, string sure = "Sure", string beforeValue = "")
+        //{
+        //    var tempList = new List<NSDictionary>();
+        //    foreach (KeyValuePair<string, string[]> kv in list)
+        //    {
+        //        tempList.Add(NSDictionary.FromObjectAndKey(NSArray.FromStrings(kv.Value), new NSString(kv.Key)));
+        //    }
+        //    var nSArray = NSArray.FromNSObjects(tempList.ToArray());
+        //    ZJPickerView.Zj_showWithDataList(nSArray,
+        //                                     NSDictionary.FromObjectsAndKeys(new NSString[]{
+        //        new NSString(beforeValue),
+        //        new NSString(sure),
+        //        //new NSString(cancel),
+        //    }, new NSString[] {
+        //        Constants.ZJPickerViewPropertyTipLabelTextKey ,
+        //        Constants.ZJPickerViewPropertySureBtnTitleKey,
+        //        //Constants.ZJPickerViewPropertyCanceBtnTitleKey
+        //    }), (selectIndex1, selectIndex2, selectIndex3s) =>
+        //    {
+        //        if (action != null)
+        //        {
+        //            action((int)selectIndex1);
+        //        }
+        //    });
+        //}
+
+
+        public static void Show(List<string> mList, Action<int> action, int mSelectIndex1 = 0, string title = "", string sure = "纭", string cancel = "鍙栨秷")
+        {
+
+            //璁剧疆榛樿閫変腑绱㈠紩  鏍煎紡锛�"selectIndex1-selectIndex2-selectIndex3"
+            string selectStr = mSelectIndex1 + "-0-0";
+
+            ZJPickerView.Zj_showWithDataList(NSArray.FromObjects(mList.ToArray()),
+                                             NSDictionary.FromObjectsAndKeys(new NSString[]{
+                new NSString(title),
+                new NSString(sure),
+                new NSString(cancel),
+                new NSString(selectStr)//璁剧疆榛樿閫変腑绱㈠紩
+            }, new NSString[] {
+                Constants.ZJPickerViewPropertyTipLabelTextKey,
+                Constants.ZJPickerViewPropertySureBtnTitleKey,
+                Constants.ZJPickerViewPropertyCanceBtnTitleKey,
+                Constants.ZJPickerViewPropertyDefaultSelectedIndexKey
+
+            }), (selectIndex1, selectIndex2, selectIndex3) => {
+                action?.Invoke((int)selectIndex1);
+            });
+        }
+
+        /// <summary>
+        /// 浜岀骇鑱斿姩寮圭獥 鏀寔鑷畾涔夋爣棰橈紝纭鎸夐挳锛屽彇娑堟寜閽枃瀛�
+        /// </summary>
+        public static void ShowSecondary(List<string> mFirstList, List<List<string>> mSecondList, Action<int, int> action, int mSelectIndex1 = 0, int mSelectIndex2 = 0, string title = "", string sure = "纭", string cancel = "鍙栨秷")
+        {
+            if (mFirstList == null)
+            {
+                return;
+            }
+
+            if (mFirstList.Count != mSecondList.Count)
+            {
+
+                return;
+            }
+
+            //璁剧疆榛樿閫変腑绱㈠紩  鏍煎紡锛�"selectIndex1-selectIndex2-selectIndex3"
+            string selectStr = mSelectIndex1 + "-" + mSelectIndex2 + "-0";
+
+            var dictDataList = new NSMutableArray();
+
+
+            for (int i = 0; i < mFirstList.Count; i++)
+            {
+
+                dictDataList.Add(NSDictionary.FromObjectAndKey(NSArray.FromObjects(mSecondList[i].ToArray()), new NSString(mFirstList[i])));
+
+            }
+
+            //System.Console.WriteLine("OnOptionsSelect: ZJPickerView锛�" + dictDataList.ToString());
+
+            NSDictionary settingNSDictionary = NSDictionary.FromObjectsAndKeys(new NSString[]{
+                new NSString(title),
+                new NSString(sure),
+                new NSString(cancel),
+                new NSString(selectStr)//璁剧疆榛樿閫変腑绱㈠紩
+            }, new NSString[] {
+                Constants.ZJPickerViewPropertyTipLabelTextKey,
+                Constants.ZJPickerViewPropertySureBtnTitleKey,
+                Constants.ZJPickerViewPropertyCanceBtnTitleKey,
+                Constants.ZJPickerViewPropertyDefaultSelectedIndexKey
+
+            });
+
+            ZJPickerView.Zj_showWithDataList(
+                dictDataList,
+                settingNSDictionary,
+                (selectIndex1, selectIndex2, selectIndex3) => {
+                    action?.Invoke((int)selectIndex1, (int)selectIndex2);
+                });
+
+
+        }
+
+
+
+
+        /// <summary>
+        /// 涓嶈仈鍔ㄦ敮鎸佽嚜瀹氫箟鏍囬锛岀‘璁ゆ寜閽紝鍙栨秷鎸夐挳鏂囧瓧
+        /// </summary>
+        public static void ShowNormal(List<string> mFirstList, List<string> mSecondList, List<string> mThirdList, Action<int, int, int> action, int mSelectIndex1 = 0, int mSelectIndex2 = 0, int mSelectIndex3 = 0, string title = "", string sure = "纭", string cancel = "鍙栨秷")
+        {
+            if (mFirstList == null)
+            {
+                return;
+            }
+
+            if (mSecondList == null)
+            {
+                return;
+            }
+
+            NSArray mThirdListNSArray = null;
+            if (mThirdList != null)
+            {
+                mThirdListNSArray = NSArray.FromObjects(mThirdList.ToArray());
+            }
+
+
+
+            //璁剧疆榛樿閫変腑绱㈠紩  鏍煎紡锛�"selectIndex1-selectIndex2-selectIndex3"
+            string selectStr = mSelectIndex1 + "-" + mSelectIndex2 + "-" + mSelectIndex3;
+
+
+            NSDictionary settingNSDictionary = NSDictionary.FromObjectsAndKeys(new NSString[]{
+                new NSString(title),
+                new NSString(sure),
+                new NSString(cancel),
+                new NSString(selectStr)//璁剧疆榛樿閫変腑绱㈠紩
+            }, new NSString[] {
+                Constants.ZJPickerViewPropertyTipLabelTextKey,
+                Constants.ZJPickerViewPropertySureBtnTitleKey,
+                Constants.ZJPickerViewPropertyCanceBtnTitleKey,
+                Constants.ZJPickerViewPropertyDefaultSelectedIndexKey
+
+            });
+
+
+            System.Console.WriteLine("OnOptionsSelect: ZJPickerView锛�" + NSArray.FromObjects(mFirstList.ToArray()).ToString() + "\n mSecondList锛�" + NSArray.FromObjects(mSecondList.ToArray()).ToString());
+
+            ZJPickerView.Zj_showWithDataListWithNotLinked(
+                NSArray.FromObjects(mFirstList.ToArray()),
+                NSArray.FromObjects(mSecondList.ToArray()),
+                mThirdListNSArray,
+                settingNSDictionary,
+                (selectIndex1, selectIndex2, selectIndex3) => {
+                    action?.Invoke((int)selectIndex1, (int)selectIndex2, (int)selectIndex3);
+                });
+
+
+        }
+
+    }
+
+
+
+}
diff --git a/Shared.IOS/UI/RowLayout.cs b/Shared.IOS/UI/RowLayout.cs
new file mode 100644
index 0000000..66462e2
--- /dev/null
+++ b/Shared.IOS/UI/RowLayout.cs
@@ -0,0 +1,262 @@
+using System;
+using UIKit;
+using CoreGraphics;
+using Shared.IO;
+using Foundation;
+
+namespace Shared
+{
+	/// <summary>
+	/// 鍦ㄦ粦鍔ㄤ簨浠朵笅锛屽彲鏄剧ず闅愯棌浜涜嚜瀹氫箟瑙嗗浘
+	/// </summary>
+	public class RowLayout : ViewGroup
+	{
+		/// <summary>
+		/// 鍙宠竟鐨勮鍥惧垪琛�
+		/// </summary>
+		internal System.Collections.Generic.List<Button> leftView = new System.Collections.Generic.List<Button>();
+		/// <summary>
+		/// 鍙宠竟鐨勮鍥惧垪琛�
+		/// </summary>
+		internal System.Collections.Generic.List<Button> rigthView = new System.Collections.Generic.List<Button>();
+		/// <summary>
+		/// 涓嬮潰閭h竟寮�
+		/// </summary>
+		UIView lineUIView = new UIView();
+
+		/// <summary>
+		/// 閲嶆柊鍒锋柊鎺т欢
+		/// </summary>
+		public override void Refresh()
+		{
+			base.Refresh();
+			LineColor = lineColor;
+		}
+		/// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+		{
+			get
+			{
+				return base.Width;
+			}
+			set
+			{
+				base.Width = value;
+				if (!IsCanRefresh)
+					return;
+
+				var frame4 = lineUIView.Frame;
+				frame4.Width = base.Width;
+				lineUIView.Frame = frame4;
+			}
+		}
+
+		/// <summary>
+		/// 瀛愯鍥剧殑瀹藉害
+		/// </summary>
+		public int SubViewWidth = 70;
+
+		/// <summary>
+		/// 鎺т欢鐨勯珮搴�
+		/// </summary>
+		/// <value>The height.</value>
+		public override int Height
+		{
+			get
+			{
+				return base.Height;
+			}
+			set
+			{
+				base.Height = value;
+				if (!IsCanRefresh)
+					return;
+
+				{
+					var frame = realViewGroup.Frame;
+					frame.Height = Height;
+					realViewGroup.Frame = frame;
+				}
+
+				var frame4 = lineUIView.Frame;
+				frame4.Y = base.Height - frame4.Height;
+				lineUIView.Frame = frame4;
+			}
+		}
+
+		uint lineColor = 0x80818181;
+		/// <summary>
+		/// 鑳屾櫙棰滆壊
+		/// </summary>
+		/// <value>The color of the background.</value>
+		public virtual uint LineColor
+		{
+			get
+			{
+				return lineColor;
+			}
+			set
+			{
+				lineColor = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				byte r, g, b, a;
+				r = (byte)(lineColor / 256 / 256 % 256);
+				g = (byte)(lineColor / 256 % 256);
+				b = (byte)(lineColor % 256);
+				a = (byte)(lineColor / 256 / 256 / 256 % 256);
+				lineUIView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+			}
+		}
+
+		/// <summary>
+		/// 澧炲姞宸﹁竟瑙嗗浘
+		/// </summary>
+		/// <param name="view">View.</param>
+		public void AddLeftView(Button view)
+		{
+			if (null == view)
+			{
+				return;
+			}
+			view.X = leftView.Count * SubViewWidth;
+			view.Y = 0;
+			view.Width = SubViewWidth;
+			view.Height = Height;
+			viewGroup.AddSubview(view.RealView);
+			view.Parent = this;
+			view.Refresh();
+			leftView.Add(view);
+			var frame = realViewGroup.Frame;
+			frame.X += SubViewWidth;
+			realViewGroup.Frame = frame;
+			foreach (var right in rigthView)
+			{
+				right.X += SubViewWidth;
+			}
+			(viewGroup as UIScrollView).ContentSize = new CoreGraphics.CGSize((leftView.Count + rigthView.Count) * SubViewWidth + realViewGroup.Frame.Width, 0);
+			(viewGroup as UIScrollView).SetContentOffset(new CGPoint(realViewGroup.Frame.X, 0), false);
+		}
+
+        internal override void removeChildParent()
+        {
+            foreach (var tempView in leftView)
+            {
+                tempView.Parent = null;
+            }
+            foreach (var tempView in rigthView)
+            {
+                tempView.Parent = null;
+            }
+            base.removeChildParent();
+        }
+
+        /// <summary>
+        /// 澧炲姞鍙宠竟瑙嗗浘
+        /// </summary>
+        /// <param name="view">View.</param>
+        public void AddRightView(Button view)
+		{
+           if (null == view)
+			{
+				return;
+			}
+			view.X =(int)realViewGroup.Frame.Right+ rigthView.Count * SubViewWidth;
+			view.Y = 0;
+			view.Width = SubViewWidth;
+			view.Height = Height;
+			viewGroup.AddSubview(view.RealView);
+			view.Parent = this;
+			view.Refresh();
+			rigthView.Add(view);
+
+			(viewGroup as UIScrollView).ContentSize = new CoreGraphics.CGSize((leftView.Count + rigthView.Count) * SubViewWidth + realViewGroup.Frame.Width, 0);
+			(viewGroup as UIScrollView).SetContentOffset(new CGPoint(realViewGroup.Frame.X, 0), false);
+
+		}
+
+        /// <summary>
+        /// 鍦ㄦ粦鍔ㄤ簨浠朵笅锛屽彲鏄剧ず闅愯棌浜涜嚜瀹氫箟瑙嗗浘
+        /// </summary>
+        public RowLayout()
+		{
+            viewGroup = new UIScrollView { Bounces = false };
+            realViewGroup = new MyRowLayout(this) { };
+            
+			viewGroup.AddSubview(realViewGroup);
+			viewGroup.Layer.MasksToBounds = true;
+
+			lineUIView.BackgroundColor = new UIColor(0x81 / 255.0f, 0x81 / 255.0f, 0x81 / 255.0f, 0.8f);
+			var lineUIViewFrame = lineUIView.Frame;
+			lineUIViewFrame.Height = 1.0f;
+			lineUIView.Frame = lineUIViewFrame;
+			viewGroup.AddSubview(lineUIView);
+
+            (viewGroup as UIScrollView).ShowsHorizontalScrollIndicator = false;//闅愯棌姘村钩婊氬姩鏉�
+          
+        }
+
+
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyRowLayout : UIView
+        {
+            [Weak] internal RowLayout rowLayout;
+            public MyRowLayout(RowLayout rowLayout)
+            {
+                this.rowLayout = rowLayout;
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                rowLayout?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                rowLayout?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                rowLayout?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                rowLayout?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/Scan.cs b/Shared.IOS/UI/Scan.cs
new file mode 100644
index 0000000..6aec6b9
--- /dev/null
+++ b/Shared.IOS/UI/Scan.cs
@@ -0,0 +1,26 @@
+锘�//using System;
+//using ZXing.Mobile;
+
+//namespace Shared.Droid
+//{
+//    public static class Scan
+//    {
+//        static ZXing.Mobile.MobileBarcodeScanner scanner;
+//        public static async System.Threading.Tasks.Task ScanQRcode(Action<string> action)
+//        {
+//            if (scanner == null)
+//            {
+//                scanner = new ZXing.Mobile.MobileBarcodeScanner(new UIKit.UIViewController { });
+//            }
+
+//            var result = await scanner.Scan();
+
+//            if (result != null)
+//                action?.Invoke(result.Text);
+//            else
+//                action?.Invoke(null);
+
+
+//        }
+//    }
+//}
diff --git a/Shared.IOS/UI/Spinner.cs b/Shared.IOS/UI/Spinner.cs
new file mode 100644
index 0000000..b622784
--- /dev/null
+++ b/Shared.IOS/UI/Spinner.cs
@@ -0,0 +1,186 @@
+锘縰sing System;
+using UIKit;
+using CoreAnimation;
+
+
+namespace Shared
+{
+	/// <summary>
+	/// 褰撳墠瑙嗗浘
+	/// </summary>
+	public class Spinner : Button
+	{
+		/// <summary>
+		/// 鏋勯�犲嚱鏁�
+		/// </summary>
+		public Spinner () 
+		{
+			TextColor = 0xff007aff;
+			BorderWidth = 1;
+			Radius = 10;
+			MouseUpEventHandler += (sender1, e1) => {
+				if (AdapterStr == null || AdapterStr.Length == 0)
+				{
+					return;
+				}
+				UIScrollView tempUIScrollView = new UIScrollView();
+				tempUIScrollView.BackgroundColor = UIColor.Clear;
+				var frame2 = tempUIScrollView.Frame;
+				frame2.Width = Application.CurrentWidth;
+				frame2.Height = Application.CurrentHeight;
+				tempUIScrollView.Frame = frame2;
+				tempUIScrollView.Alpha = 0.94f;
+				UITapGestureRecognizer gestureRecognizer = new UITapGestureRecognizer(() =>
+				{
+					remoteFromSuperview(tempUIScrollView);
+				});
+				tempUIScrollView.AddGestureRecognizer(gestureRecognizer);
+
+				int height = 40;
+
+				var size = tempUIScrollView.ContentSize;
+				size.Width = Application.CurrentWidth;
+				size.Height = height * AdapterStr.Length;
+				tempUIScrollView.ContentSize = size;
+				size.Width = 20;
+				size.Height = 20;
+				for (int i = 0; i < AdapterStr.Length; i++)
+				{
+					UIButton button = new UIButton();
+					var tempButtonFrame = button.Frame;
+					tempButtonFrame.Y = (int)Math.Max(tempUIScrollView.Frame.Height, tempUIScrollView.ContentSize.Height) - (height * (i + 1));
+					tempButtonFrame.Width = Application.CurrentWidth;
+					tempButtonFrame.Height = height;
+					button.Frame = tempButtonFrame;
+					button.SetTitle(AdapterStr[i], UIControlState.Normal);
+					button.SetTitleColor(new UIColor(0x6d / 255.0f, 0x6d / 255.0f, 0x72 / 255.0f, 1), UIControlState.Normal);
+					button.BackgroundColor = UIColor.White;
+					button.Tag = i;
+					button.TouchUpInside += (sender, ee) =>
+					{
+						remoteFromSuperview(tempUIScrollView);
+						Text = AdapterStr[button.Tag];
+						if (SelectedItemChanged != null)
+						{
+							SelectedItemChanged(this, (int)button.Tag);
+						}
+					};
+					tempUIScrollView.AddSubview(button);
+
+					if (i == this.AdapterStr.Length - 1)
+					{
+
+						UIBezierPath uIBezierPath = UIBezierPath.FromRoundedRect(button.Bounds, UIRectCorner.TopLeft | UIRectCorner.TopRight, size);
+
+						CAShapeLayer cAShapeLayer = new CAShapeLayer();
+						cAShapeLayer.Frame = button.Bounds;
+						cAShapeLayer.Path = uIBezierPath.CGPath;
+						button.Layer.Mask = cAShapeLayer;
+
+					}
+					else {
+
+						UIView line = new UIView();
+						var ddd = line.Frame;
+						ddd.Y = button.Frame.Y;
+						ddd.Width = Application.CurrentWidth;
+						ddd.Height = 1;
+						line.Frame = ddd;
+
+						line.BackgroundColor = new UIColor(0xdd / 255.0f, 0xdd / 255.0f, 0xdd / 255.0f, 1);
+						tempUIScrollView.AddSubview(line);
+
+						if (i == 0)
+						{
+							UIBezierPath uIBezierPath = UIBezierPath.FromRoundedRect(button.Bounds, UIRectCorner.BottomLeft | UIRectCorner.BottomRight, size);
+							CAShapeLayer cAShapeLayer = new CAShapeLayer();
+							cAShapeLayer.Frame = button.Bounds;
+							cAShapeLayer.Path = uIBezierPath.CGPath;
+							button.Layer.Mask = cAShapeLayer;
+						}
+					}
+				}
+				var frame = tempUIScrollView.Frame;
+				frame.Y = Application.CurrentHeight;
+				tempUIScrollView.Frame = frame;
+				Application.RootFrameLayout.AddSubview(tempUIScrollView);
+
+				UIView.AnimateNotify(0.6f, 0.01f, UIViewAnimationOptions.CurveLinear, () =>
+				{
+					frame.Y = 0;
+					tempUIScrollView.Frame = frame;
+				}, null);
+			};
+		}
+
+		void remoteFromSuperview(UIScrollView uIScrollView)
+		{
+			UIView.AnimateNotify(0.6f,0.01f,UIViewAnimationOptions.CurveLinear,() => {
+				var frame=	uIScrollView.Frame ;
+				frame.Y=Application.CurrentHeight;
+				uIScrollView.Frame=frame;
+			},(b)=>{
+				if(b)
+				{
+					uIScrollView.RemoveFromSuperview();
+				}
+			});
+
+		}
+
+		/// <summary>
+		/// 鍒锋柊褰撳墠瑙嗗浘
+		/// </summary>
+		public override void Refresh()
+		{
+			base.Refresh();
+			CurrentRow = currentRow;
+		}
+			
+
+
+		int currentRow;
+		/// <summary>
+		/// 
+		/// </summary>
+		/// <value>The current row.</value>
+		public int CurrentRow
+		{
+			get
+			{
+				return currentRow;
+
+			}
+			set
+			{
+				if (AdapterStr == null || value < 0 || AdapterStr.Length <= value)
+				{
+					return;
+				}
+
+				currentRow = value;
+				Text = AdapterStr[value];
+			}
+		}
+	
+
+		/// <summary>
+		/// 娣诲姞涓嬫媺鍒楄〃鐨勬暟鎹�
+		/// </summary>
+		/// <param name="Str">String.</param>
+		public string []AdapterStr {
+			get;
+			set ;
+		}
+
+        /// <summary>
+        /// 閫夋嫨鍒楄〃鍙樺寲鐨勪簨浠�
+        /// </summary>
+         public Action<View, int> SelectedItemChanged;
+
+	}
+
+
+}
+
+
diff --git a/Shared.IOS/UI/TextView.cs b/Shared.IOS/UI/TextView.cs
new file mode 100644
index 0000000..c5b2a75
--- /dev/null
+++ b/Shared.IOS/UI/TextView.cs
@@ -0,0 +1,467 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UIKit;
+using Foundation;
+using Shared.IO;
+using CoreGraphics;
+
+namespace Shared
+{
+	/// <summary>
+	/// 鏂囨湰杈撳叆妗�
+	/// </summary>
+	public class TextView : View
+	{
+		/// <summary>
+		/// 鏂囧瓧澶у皬
+		/// </summary>
+		/// <value>The size of the text.</value>
+		public float TextSize
+		{
+			get
+			{
+				return (float)uILable.TextSize.PointSize;
+			}
+			set
+			{
+				uILable.TextSize = UIFont.SystemFontOfSize(value);
+			}
+		}
+
+		int textID;
+		/// <summary>
+		/// 鏍规嵁ID鑾峰彇瀵瑰簲鐨勫娉�
+		/// </summary>
+		public int TextID
+		{
+			get
+			{
+				return textID;
+			}
+			set
+			{
+				textID = value;
+				Text = Language.StringByID(TextID);
+			}
+		}
+
+		MyUILable uILable;
+		public TextView()
+		{
+			uiView = uILable = new MyUILable(this) { };
+           
+		}
+
+        string text = "";
+		/// <summary>
+		/// 鏂囨湰
+		/// </summary>
+		/// <value>鏂囨湰</value>
+		public string Text
+		{
+			get
+			{
+                return text;
+			}
+			set
+			{
+                text = value;
+                if(!IsCanRefresh){
+                    return;
+                }
+				uILable.Text = value;
+			}
+		}
+
+		/// <summary>
+		/// 鏂囨湰棰滆壊
+		/// </summary>
+		public uint TextColor
+		{
+			get
+			{
+				nfloat r, g, b, a;
+				uILable.TextColor.GetRGBA(out r, out g, out b, out a);
+				r *= 255;
+				g *= 255;
+				b *= 255;
+				a *= 255;
+				return (uint)(r * 256 * 256 * 256 + g * 256 * 256 + b * 256 + a);
+			}
+			set
+			{
+				byte r, g, b, a;
+				r = (byte)(value / 256 / 256 % 256);
+				g = (byte)(value / 256 % 256);
+				b = (byte)(value % 256);
+				a = (byte)(value / 256 / 256 / 256 % 256);
+				uILable.TextColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+			}
+		}
+
+        /// <summary>
+        /// 鏄惁鏀寔鎹㈣
+        /// </summary>
+        /// <value><c>true</c> if is more lines; otherwise, <c>false</c>.</value>
+        public bool IsMoreLines
+        {
+            get
+            {
+                return uILable.IsMoreLines;
+            }
+            set
+            {
+                uILable.IsMoreLines = value;
+            }
+        }
+
+	
+        public override void Refresh()
+        {
+            base.Refresh();
+            Text = Text;
+        }
+
+	}
+
+    class MyUILable : UILabel
+    {
+        [Weak] TextView textView;
+        public MyUILable(TextView textView)
+        {
+            this.textView = textView;
+            LineBreakMode = UILineBreakMode.MiddleTruncation;
+            TextAlignment = UITextAlignment.Center;
+        }
+
+        bool isMoreLines;
+        public bool IsMoreLines
+        {
+            get
+            {
+                return isMoreLines;
+            }
+            set
+            {
+                isMoreLines = value;
+                if (isMoreLines)
+                {
+                    Lines = 0;
+                }
+                else
+                {
+                    Lines = 1;
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮寮�濮�
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesBegan(NSSet touches, UIEvent evt)
+        {
+            textView?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+        /// <summary>
+        ///  绉诲姩
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesMoved(NSSet touches, UIEvent evt)
+        {
+            textView?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮寮硅捣
+        /// </summary>
+        /// <param name="touches">Touches.</param>
+        /// <param name="evt">Evt.</param>
+        public override void TouchesEnded(NSSet touches, UIEvent evt)
+        {
+            textView?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+
+        public override void TouchesCancelled(NSSet touches, UIEvent evt)
+        {
+            textView?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+        }
+
+
+        /// <summary>
+        /// 鍥犱负杩欎釜瑙嗗浘寰堝鎬紝浼氳嚜鍔ㄥ姞浜嗕袱涓猆IImageView锛屾墍浠ヨ繖涓壒娈婂鐞嗕竴涓�
+        /// </summary>
+        /// <param name="view">View.</param>
+        public override void AddSubview(UIView view)
+        {
+            if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+            {
+                return;
+            }
+            base.AddSubview(view);
+        }
+
+
+        /// <summary>
+        /// 鏂囨湰
+        /// </summary>
+        /// <value>The text.</value>
+        public string Text
+        {
+            get
+            {
+                return base.Text;
+            }
+            set
+            {
+                base.Text = value;
+            }
+        }
+
+        /// <summary>
+        /// 鏂囨湰鐨勯鑹�
+        /// </summary>
+        /// <value>鏂囨湰鐨勯鑹�</value>
+        public UIColor TextColor
+        {
+            get
+            {
+                return base.TextColor;
+            }
+            set
+            {
+                base.TextColor = value;
+            }
+        }
+
+        /// <summary>
+        /// 鏂囨湰鐨勫ぇ灏�
+        /// </summary>
+        /// <value>鏂囨湰鐨勫ぇ灏�</value>
+        public UIFont TextSize
+        {
+            get
+            {
+                return base.Font;
+            }
+            set
+            {
+                base.Font = value;
+            }
+        }
+    }
+
+	//class MyUILable : UIScrollView
+	//{
+ //       View view; 
+	//	public MyUILable(View view)
+	//	{
+	//		this.view = view;
+	//		commonInit();
+	//	}
+
+	//	/// <summary>
+	//	/// 鐐瑰嚮寮�濮�
+	//	/// </summary>
+	//	/// <param name="touches">Touches.</param>
+	//	/// <param name="evt">Evt.</param>
+	//	public override void TouchesBegan(NSSet touches, UIEvent evt)
+	//	{
+	//		//base.TouchesBegan(touches, evt);
+	//		view.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+	//	}
+	//	/// <summary>
+	//	///  绉诲姩
+	//	/// </summary>
+	//	/// <param name="touches">Touches.</param>
+	//	/// <param name="evt">Evt.</param>
+	//	public override void TouchesMoved(NSSet touches, UIEvent evt)
+	//	{
+	//		//base.TouchesMoved(touches, evt);
+	//		view.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+	//	}
+
+
+
+	//	/// <summary>
+	//	/// 鐐瑰嚮寮硅捣
+	//	/// </summary>
+	//	/// <param name="touches">Touches.</param>
+	//	/// <param name="evt">Evt.</param>
+	//	public override void TouchesEnded(NSSet touches, UIEvent evt)
+	//	{
+	//		//base.TouchesEnded(touches, evt);
+	//		view.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+	//	}
+		
+
+	//	/// <summary>
+	//	/// 鍥犱负杩欎釜瑙嗗浘寰堝鎬紝浼氳嚜鍔ㄥ姞浜嗕袱涓猆IImageView锛屾墍浠ヨ繖涓壒娈婂鐞嗕竴涓�
+	//	/// </summary>
+	//	/// <param name="view">View.</param>
+	//	public override void AddSubview(UIView view)
+	//	{
+	//		if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+	//		{
+	//			return;
+	//		}
+	//		base.AddSubview(view);
+	//	}
+
+	//	UILabel[] labels = new UILabel[2];
+	//	float scrollSpeed = 30;
+	//	float bufferSpaceBetweenLabels = 20;
+	//	void commonInit()
+	//	{
+	//		for (int i = 0; i < labels.Length; ++i)
+	//		{
+ //               labels[i] = new UILabel();
+	//			labels[i].TextColor = UIColor.White;
+	//			labels[i].BackgroundColor = UIColor.Clear;
+ //               labels[i].Text = " ";
+	//			AddSubview(labels[i]);
+	//		}
+	//		ShowsVerticalScrollIndicator = false;
+	//		ShowsHorizontalScrollIndicator = false;
+	//		UserInteractionEnabled = false;
+	//	}
+
+
+	//	void scroll()
+	//	{
+	//		ContentOffset = new CGPoint(0, 0);
+	//		AnimateNotify(
+	//			labels[0].Frame.Size.Width / scrollSpeed,
+	//			0f,
+	//			UIViewAnimationOptions.CurveLinear, () =>
+	//			{
+	//				ContentOffset = new CGPoint(labels[0].Frame.Width + bufferSpaceBetweenLabels, 0);
+	//			},
+	//			finished =>
+	//			{
+	//				if (finished)
+	//					scroll();
+	//			}
+	//		);
+	//	}
+
+	//	void readjustLabels()
+	//	{
+	//		Layer.RemoveAllAnimations();
+	//		float offset = 0.0f;
+	//		for (int i = 0; i < labels.Length; ++i)
+	//		{
+	//			labels[i].SizeToFit();
+	//			CGPoint center;
+	//			center = labels[i].Center;
+	//			center.Y = Center.Y - Frame.Y;
+	//			labels[i].Center = center;
+
+	//			CGRect frame;
+	//			frame = labels[i].Frame;
+	//			frame.X = offset;
+	//			labels[i].Frame = frame;
+
+	//			offset += (float)labels[i].Frame.Width + bufferSpaceBetweenLabels;
+	//		}
+
+	//		var size = new CGSize
+	//		{
+	//			Width = labels[0].Frame.Width + Frame.Width + bufferSpaceBetweenLabels,
+	//			Height = Frame.Height
+	//		};
+	//		ContentSize = size;
+
+	//		SetContentOffset(new CGPoint(0, 0), false);
+
+	//		if (labels[0].Frame.Width > Frame.Width)
+	//		{
+	//			for (int i = 1; i < labels.Length; ++i)
+	//			{
+	//				labels[i].Hidden = false;
+	//			}
+	//			scroll();
+	//		}
+	//		else
+	//		{
+	//			for (int i = 1; i < labels.Length; ++i)
+	//			{
+	//				labels[i].Hidden = true;
+	//			}
+	//			CGPoint center;
+	//			center = labels[0].Center;
+	//			center.X = Center.X - Frame.X;
+	//			labels[0].Center = center;
+	//		}
+	//	}
+
+	//	/// <summary>
+	//	/// 鏂囨湰
+	//	/// </summary>
+	//	/// <value>The text.</value>
+	//	public string Text
+	//	{
+	//		get
+	//		{
+	//			return labels[0].Text;
+	//		}
+	//		set
+	//		{
+	//			if (labels[0].Text == value)
+	//			{
+	//				return;
+	//			}
+	//			for (int i = 0; i < labels.Length; ++i)
+	//			{
+	//				labels[i].Text = value;
+	//			}
+
+	//			readjustLabels();
+	//		}
+	//	}
+
+	//	/// <summary>
+	//	/// 鏂囨湰鐨勯鑹�
+	//	/// </summary>
+	//	/// <value>鏂囨湰鐨勯鑹�</value>
+	//	public UIColor TextColor
+	//	{
+	//		get
+	//		{
+	//			return labels[0].TextColor;
+	//		}
+	//		set
+	//		{
+	//			for (int i = 0; i < labels.Length; ++i)
+	//			{
+	//				labels[i].TextColor = value;
+	//			}
+	//		}
+	//	}
+
+	//	/// <summary>
+	//	/// 鏂囨湰鐨勫ぇ灏�
+	//	/// </summary>
+	//	/// <value>鏂囨湰鐨勫ぇ灏�</value>
+	//	public UIFont TextSize
+	//	{
+	//		get
+	//		{
+	//			return labels[0].Font;
+	//		}
+	//		set
+	//		{
+	//			for (int i = 0; i < labels.Length; ++i)
+	//			{
+	//				labels[i].Font = value;
+	//			}
+	//		}
+	//	}
+	//}
+}
+
+
diff --git a/Shared.IOS/UI/TimeView.cs b/Shared.IOS/UI/TimeView.cs
new file mode 100644
index 0000000..8704442
--- /dev/null
+++ b/Shared.IOS/UI/TimeView.cs
@@ -0,0 +1,113 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using CoreGraphics;
+using Foundation;
+using UIKit;
+
+namespace Shared
+{
+	/// <summary>
+	/// 鏃堕棿瑙嗗浘
+	/// </summary>
+	public class TimeView : View
+	{
+		/// <summary>
+		/// 褰撳墠瑙嗗浘
+		/// </summary>
+		/// <value>The android text.</value>
+		MyUITimePicker currentUITimePicker
+		{
+			get
+			{
+				return uiView as MyUITimePicker;
+			}
+			set
+			{
+				uiView = value;
+			}
+		}
+
+
+		/// <summary>
+		/// 鏃�
+		/// </summary>
+		public int Hour
+		{
+			get { return (int)currentUITimePicker.current.Hour; }
+		}
+		/// <summary>
+		/// 鍒�
+		/// </summary>
+		public int Minute
+		{
+			get { return (int)currentUITimePicker.current.Minute; }
+		}
+
+		/// <summary>
+		/// 瑙嗗浘
+		/// </summary>
+		public TimeView()
+		{
+			currentUITimePicker = new MyUITimePicker(this) { };
+            
+		}
+
+		 class MyUITimePicker : UIDatePicker
+		{
+            [Weak] TimeView timeView;
+			public MyUITimePicker(TimeView timeView)
+			{
+                this.timeView = timeView;
+                Mode = UIDatePickerMode.Time;
+			}
+
+			nfloat x;
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                timeView?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                timeView?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                timeView?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                timeView?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public NSDateComponents current
+			{
+				get
+				{
+					NSCalendar cal = NSCalendar.CurrentCalendar;
+					return cal.Components(NSCalendarUnit.Hour | NSCalendarUnit.Minute | NSCalendarUnit.Second, Date);// [cal components: unitFlags fromDate: now
+				}
+			}
+
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/Tip.cs b/Shared.IOS/UI/Tip.cs
new file mode 100755
index 0000000..4caa4bd
--- /dev/null
+++ b/Shared.IOS/UI/Tip.cs
@@ -0,0 +1,77 @@
+锘縰sing System;
+using UIKit;
+using CoreGraphics;
+
+namespace Shared
+{
+	/// <summary>
+	/// 淇℃伅鎻愮ず
+	/// </summary>
+	public  class Tip
+	{
+		/// <summary>
+		/// 鏋勯�犲嚱鏁�
+		/// </summary>
+		public Tip()
+		{
+			this.BackgroundColor = 0xff323232;
+		}
+		/// <summary>
+		/// 鍏抽棴鏃堕棿
+		/// </summary>
+		/// <value>The close time.</value>
+		public int CloseTime {
+			get;
+			set;
+		}
+		/// <summary>
+		/// 鎻愮ず鍐呭
+		/// </summary>
+		/// <value>The text.</value>
+		public string Text {
+			get;
+			set;
+		}
+
+		/// <summary>
+		/// 鏂囧瓧鎻愮ず鏂瑰悜
+		/// </summary>
+		/// <value>The direction.</value>
+		public AMPopTipDirection Direction {
+			get;
+			set;
+		}
+		/// <summary>
+		/// 鏈�澶у搴�
+		/// </summary>
+		/// <value>The width of the max.</value>
+		public int MaxWidth {
+			get;
+			set;
+		}
+
+		/// <summary>
+		///  鑳屾櫙棰滆壊
+		/// </summary>
+		/// <value>The color of the background.</value>
+		public uint BackgroundColor {
+			get;
+			set;
+		}
+
+
+		/// <summary>
+		/// 鐐瑰嚮鍝釜View鏃舵樉璧彁绀�
+		/// </summary>
+		public void Show(View view)
+		{
+			var popTip=	AMPopTip.PopTip ();
+			popTip.PopoverColor = new UIKit.UIColor(((this.BackgroundColor >> 16) & 0xff)/255.0f, ((this.BackgroundColor >> 8) & 0xFF)/255.0f, (this.BackgroundColor & 0xFF)/255.0f, ((this.BackgroundColor >> 24) & 0xFF)/255.0f);
+			popTip.ShowText (this.Text,Direction,MaxWidth, Application.RootFrameLayout, view.RealView.ConvertRectToView(view.RealView.Bounds,Application.RootFrameLayout),CloseTime);
+		}
+
+
+	}
+		
+}
+
diff --git a/Shared.IOS/UI/UICoverFlowView.cs b/Shared.IOS/UI/UICoverFlowView.cs
new file mode 100644
index 0000000..28ed1a4
--- /dev/null
+++ b/Shared.IOS/UI/UICoverFlowView.cs
@@ -0,0 +1,303 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Foundation;
+using Shared.IOS.TBL;
+using UIKit;
+
+namespace Shared
+{
+
+
+
+    /// <summary>
+    /// UICoverFlowView
+    /// </summary>
+    public class UICoverFlowView : View
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The UICoverFlowView.</value>
+        HDLCoverFlow mHDLCoverFlow
+        {
+            get
+            {
+                return uiView as HDLCoverFlow;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+     
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public UICoverFlowView()
+        {
+            mHDLCoverFlow = new HDLCoverFlow
+            {
+           
+                //MChangedDelegate = new OnSelectChangeListener(this)
+            };
+
+            Parents = new ViewGroup();
+        }
+
+
+        /// <summary>
+        /// 鍒锋柊甯冨眬
+        /// </summary>
+        private void RefreshFrame()
+        {
+            mHDLCoverFlow.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+        }
+
+        /// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+        {
+            get
+            {
+                return base.Width;
+            }
+            set
+            {
+                base.Width = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨勯珮搴�
+        /// </summary>
+        public override int Height
+        {
+            get
+            {
+                return base.Height;
+            }
+            set
+            {
+                base.Height = value;
+                RefreshFrame();
+
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int X
+        {
+            get
+            {
+                return base.X;
+            }
+            set
+            {
+                base.X = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int Y
+        {
+            get
+            {
+                return base.Y;
+            }
+            set
+            {
+                base.Y = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+
+        //public void setCurrentItems(int option1, int option2, int option3)
+        //{
+
+        //    mHDLCoverFlow.SetCurrentItems(option1, option2, option3);
+
+        //}
+
+        //public void setNPicker(List<string> mFirstList, List<string> mSecondList, List<string> mThirdList)
+        //{
+
+        //    mHDLCoverFlow.SetNPicker(NSArray.FromObjects(mFirstList.ToArray()), NSArray.FromObjects(mSecondList.ToArray()), NSArray.FromObjects(mThirdList.ToArray()));
+
+        //}
+
+
+
+        UIView[] mAndroidViewsList;
+        List<View> viewList = new List<View>();
+
+        private void UpdateViewsList()
+        {
+
+            mAndroidViewsList = new UIView[viewList.Count];
+            for (int i=0;i<viewList.Count;i++)
+            {
+                
+                mAndroidViewsList[i]= viewList[i].RealView;
+            }
+
+            mHDLCoverFlow.AddCoverFlowViewDatas(mAndroidViewsList);
+        }
+
+        int pageIndex;
+        /// <summary>
+        /// 璁剧疆鎴栬�呰幏鍙栧綋鍓嶇殑鐣岄潰绱㈠紩
+        /// </summary>
+        /// <value>The index of the page.</value>
+        public int PageIndex
+        {
+            get
+            {
+                return pageIndex;
+            }
+            set
+            {
+                if (value < 0 || viewList.Count < value)
+                {
+                    return;
+                }
+
+                pageIndex = value;
+                mHDLCoverFlow.SetCoverFlowSelectIndex(pageIndex);
+
+
+            }
+        }
+
+
+
+        public void Remove(View view)
+        {
+            if (view == null)
+            {
+                return;
+            }
+
+            viewList.Remove(view);
+            //realViewGroup.RemoveView(view.AndroidView);
+            //view.Parent = null;
+
+            //base.Remove(view);
+            //UpdateViewsList();
+        }
+
+        /// <summary>
+        /// 鐖跺鍣�
+        /// </summary>
+        /// <value>The parent.</value>
+        ViewGroup Parents;
+        /// <summary>
+        /// 澧炲姞瀛愭帶浠�
+        /// </summary>
+        /// <param name="view">View.</param>
+        public void AddChidren(View view)
+        {
+            view.Parent = Parents;
+            view.Refresh();
+            viewList.Add(view);
+
+            //base.AddChidren(view);
+            UpdateViewsList();
+        }
+
+
+        /// <summary>
+        /// 娓呯┖鎵�鏈夌殑鎺т欢
+        /// </summary>
+        public void RemoveAll()
+        {
+            viewList.Clear();
+            //base.RemoveAll();
+            UpdateViewsList();
+        }
+
+        /// <summary>
+        /// 绉婚櫎鎸囧畾绱㈠紩瀵硅薄
+        /// </summary>
+        /// <param name="index">Index.</param>
+        public void RemoveAt(int index)
+        {
+            if (GetChildren(index) != null)
+            {
+                viewList.Remove(GetChildren(index));
+                UpdateViewsList();
+            }
+
+            //base.RemoveAt(index);
+            //UpdateViewsList();
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇鎸囧畾绱㈠紩瀵硅薄
+        /// </summary>
+        /// <returns>The children.</returns>
+        /// <param name="index">Index.</param>
+        public View GetChildren(int index)
+        {
+            if (viewList.Count - 1 < index || index < 0)
+            {
+                return null;
+            }
+            return viewList[index];
+        }
+
+
+
+
+
+
+
+
+        //public Action<int> OnSelectChangeEvent;
+        public Action<int> OnCoverFlowViewClickEvent;
+
+        /// <summary>
+        /// Action
+        /// </summary>
+        public Action<int> OnSelectChangeEvent;
+
+        /// <summary>
+        /// OnSelectChangeListener 缁ф壙鍝嶅簲浜嬩欢
+        /// </summary>
+        OnSelectChangeListener mOnSelectChangeListener;
+
+        public class OnSelectChangeListener : SelectItemDelegate
+        {
+
+            [Weak] UICoverFlowView _UICoverFlowView;
+
+            public OnSelectChangeListener(UICoverFlowView view)
+            {
+                _UICoverFlowView = view;
+            }
+
+            public override void OnSelectItem(nint mSelectIndex)
+            {
+                _UICoverFlowView.OnSelectChangeEvent?.Invoke((int)mSelectIndex);
+            }
+
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/UIDrawerLayout.cs b/Shared.IOS/UI/UIDrawerLayout.cs
new file mode 100644
index 0000000..63921a8
--- /dev/null
+++ b/Shared.IOS/UI/UIDrawerLayout.cs
@@ -0,0 +1,444 @@
+锘縰sing System;
+using CoreAnimation;
+using CoreGraphics;
+using Foundation;
+using UIKit;
+
+
+
+namespace Shared
+{
+    /// <summary>
+    /// 鍙虫粦鎶藉眽View
+    /// </summary>
+    public class UIDrawerLayout : ViewGroup
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The UICoverFlowView.</value>
+        MyUIDrawerLayout mUIDrawerLayout
+        {
+            get
+            {
+                return uiView as MyUIDrawerLayout;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+        UIView leftView;
+        UIView mainView;
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public UIDrawerLayout()
+        {
+
+            mUIDrawerLayout = new MyUIDrawerLayout(this) { };
+
+            viewGroup = mUIDrawerLayout;
+            mainView = new UIView();
+            realViewGroup = mainView;
+
+
+            viewGroup.AddSubview(realViewGroup);
+            viewGroup.Layer.MasksToBounds = true;
+
+            leftView = new UIView();
+            //new UIView(new CGRect(0, 0, Application.CurrentWidth, Application.CurrentHeight));
+            var mFrame = leftView.Frame;
+            mFrame.Y = 0;
+            mFrame.X = 0;
+            mFrame.Width = Application.CurrentWidth;
+            mFrame.Height = Application.CurrentHeight;
+            mFrame.X = -Application.CurrentWidth;
+            leftView.Frame = mFrame;
+            leftView.BackgroundColor = UIColor.FromRGBA(0, 0, 0, 99);
+
+            viewGroup.AddSubview(leftView);
+
+        }
+
+
+
+
+        View leftChildView;
+        /// <summary>
+        /// 澧炲姞宸﹁竟瑙嗗浘
+        /// </summary>
+        /// <param name="view">View.</param>
+        public void AddLeftView(View view)
+        {
+            if (null == view)
+            {
+                return;
+            }
+            LeftViewRemoveAllViews();
+
+            view.Parent = this;
+            leftChildView = view;
+            //view.X = 0;
+            //view.Y = 0;
+            //view.Width = Width;
+            //view.Height = Height;
+
+            //view.Parent = this;
+            //view.Refresh();
+            var addFrame = leftView.Frame;
+            addFrame.X = 0;
+            addFrame.Y = 0;
+            //addFrame.Height = Height;
+            //addFrame.Width = Width;
+
+            leftChildView.RealView.Frame = addFrame;
+            leftView.AddSubview(leftChildView.RealView);
+
+        }
+
+
+        /// <summary>
+        /// RemoveLeftView
+        /// </summary>
+        public void LeftViewRemoveAllViews()
+        {
+            if (leftChildView == null) return;
+
+
+            if (leftChildView.RealView.Superview != null)
+            {
+                leftChildView.RealView.RemoveFromSuperview();
+            }
+            leftChildView.Parent = null;
+        }
+
+        /// <summary>
+        /// 鏄惁閿佸畾鍙虫粦鍔熻兘锛� 閿佸畾鍚庡彸婊戝脊鍑鸿彍鍗曞け鏁�
+        /// </summary>
+        bool _IsDrawerLockMode;
+        public bool IsDrawerLockMode
+        {
+            get鈥�            {鈥�                return _IsDrawerLockMode;鈥�            }
+            set
+            {
+                _IsDrawerLockMode = value;
+                mUIDrawerLayout.IsDrawerLockMode = _IsDrawerLockMode;
+
+            }
+        }
+
+
+
+        bool _IsDrawerOpen = false;
+
+        private bool IsDrawerOpen
+        {
+            get鈥�            {鈥�                return _IsDrawerOpen;鈥�            }
+            set
+            {
+                _IsDrawerOpen = value;
+                mUIDrawerLayout.IsDrawerOpen = _IsDrawerOpen;
+
+
+            }
+        }
+
+        /// <summary>
+        /// 鎵撳紑鎶藉眽view
+        /// </summary>
+        public void OpenLeftMenu()
+        {
+
+            if (!IsDrawerOpen)
+            {
+                IsDrawerOpen = true;
+                ShowLeftView(IsDrawerOpen);
+                System.Console.WriteLine("OpenLeftMenu-------");
+            }
+       
+        }
+
+
+
+        /// <summary>
+        /// 鍏抽棴鎶藉眽view
+        /// </summary>
+        public void CloseLeftMenu()
+        {
+            if (IsDrawerOpen)
+            {
+                IsDrawerOpen = false;
+                ShowLeftView(IsDrawerOpen);
+                System.Console.WriteLine("CloseLeftMenu-------");
+            }
+        }
+
+
+        //private CABasicAnimation moveX(float X)
+        //{
+        //    //CABasicAnimation animation = new CABasicAnimation("transform.translation.x");
+        //    CABasicAnimation animation = CABasicAnimation.FromKeyPath("transform.translation.x");
+        //    animation.To = NSNumber.FromFloat(X);
+        //    animation.Duration = 0.2F;
+        //    animation.RemovedOnCompletion = false;//yes鐨勮瘽锛屽張杩斿洖鍘熶綅缃簡銆�  
+        //    animation.RepeatCount = 1;
+        //    animation.FillMode = CAFillMode.Forwards;
+        //    return animation;
+        //}
+
+
+
+
+        /// <summary>
+        /// 鏄惁鎵撳紑鏄剧ず宸﹁竟鑿滃崟view
+        /// </summary>
+        private void ShowLeftView(bool bShow)
+        {
+            var mFrame = leftView.Frame;
+            mFrame.X = bShow ? 0 : -mUIDrawerLayout.Frame.Size.Width;
+            leftView.Frame = mFrame;
+        }
+
+        /// <summary>
+        /// 绉诲姩宸﹁竟view
+        /// </summary>
+        public void MoveLeftView(nfloat XX)
+        { 
+            if (IsDrawerOpen)
+            {
+                if (XX < 0)
+                {
+                    var mFrame = leftView.Frame;
+                    mFrame.X = 0 + XX;
+                    leftView.Frame = mFrame;
+                }
+            }
+            else
+            {
+                if(XX > 0)
+                {
+                    var mFrame = leftView.Frame;
+                    mFrame.X = -mUIDrawerLayout.Frame.Size.Width + XX;
+                    leftView.Frame = mFrame;
+                }
+
+            }
+        }
+
+
+        /// <summary>
+        /// 閲嶇疆宸﹁竟view
+        /// </summary>
+        public void ResetView()
+        {
+
+            var mFrame = leftView.Frame;
+            if (IsDrawerOpen)
+            {
+                mFrame.X = 0;
+                System.Console.WriteLine($"Reset Open");
+            }
+            else
+            {
+                mFrame.X = -mUIDrawerLayout.Frame.Size.Width;
+                System.Console.WriteLine($"Reset CLOSE");
+            }
+
+            leftView.Frame = mFrame;
+        }
+
+
+        nfloat mLastX, mLastY, deltaX;
+        int mTouchSlop = 3;
+
+        private void MYTouchEvent(EventActions eventAction, CGPoint point)
+        {
+            if (_IsDrawerLockMode) return;
+
+            switch (eventAction)
+            {
+                case EventActions.Down:
+
+                    //璁板綍鐐瑰嚮鐨勬渶鏂癤鍧愭爣
+                    mLastX = point.X;
+                    mLastY = point.Y;
+                    System.Console.WriteLine($"DrawerLayout:EventActions.Down XXX{mLastX}");
+                    break;
+                case EventActions.Move:
+                    moveWithPoint(point);
+                    //System.Console.WriteLine("DrawerLayout:EventActions.Move");
+                    break;
+                case EventActions.Up:
+                    System.Console.WriteLine($"DrawerLayout:EventActions.Down deltaX{deltaX}   WWW:{mUIDrawerLayout.Frame.Size.Width} ");
+                    if (Math.Abs(deltaX) >= mUIDrawerLayout.Frame.Size.Width / 2)
+                    {
+                        if (deltaX > 0)
+                        {
+                            System.Console.WriteLine("DrawerOpen");
+                            IsDrawerOpen = true;
+                            ShowLeftView(IsDrawerOpen);
+                        }
+                        else
+                        {
+                            System.Console.WriteLine("Drawer CLOSE");
+                            IsDrawerOpen = false;
+                            ShowLeftView(IsDrawerOpen);
+                        }
+                    }
+                    else
+                    {
+                        ResetView();
+
+                    }
+                    System.Console.WriteLine("DrawerLayout:EventActions.Up");
+                    break;
+
+            }
+        }
+
+        private void moveWithPoint(CGPoint movePoint)
+        {
+            var x = movePoint.X;
+            deltaX = x - mLastX;
+
+            if (deltaX * deltaX > mTouchSlop * mTouchSlop)
+            {
+                //寮�濮嬬Щ鍔ㄨ鍥�
+                if (IsDrawerOpen)
+                {
+                    //MoveAction?.Invoke(deltaX);
+                    MoveLeftView(deltaX);
+                }
+                else
+                {
+                    if (mLastX < 10)
+                    {
+                        MoveLeftView(deltaX);
+                        //浠庡睆骞曞乏渚у紑濮嬫粦鍔紝鎵嶈Е鍙�
+                        //MoveAction?.Invoke(deltaX);
+
+                    }
+
+
+                }
+
+            }
+
+        }
+
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyUIDrawerLayout : UIView
+        {
+            public bool IsDrawerOpen = false;
+            public bool IsDrawerLockMode = false;
+
+            [Weak] internal UIDrawerLayout mUIDrawerLayout;
+
+            public MyUIDrawerLayout(UIDrawerLayout mUIDrawerLayout)
+            {
+                this.mUIDrawerLayout = mUIDrawerLayout;
+
+
+            }
+
+
+            /// <summary>
+            /// 瀵绘壘鏈�閫傚悎鐨刅iew
+            /// 瀹炵幇鎷︽埅
+            /// </summary>
+            public override UIView HitTest(CGPoint point, UIEvent uievent)
+            {
+
+                if (!IsDrawerLockMode)//涓嶉攣瀹氾紝鍏佽鍙虫粦
+                {
+                    if (PointInside(point, uievent))
+                    {
+                        if (IsDrawerOpen)//宸﹁彍鍗曟槸鍚︽墦寮�
+                        {
+                            if (point.X > this.Frame.Size.Width - 10)
+                            {
+                                //System.Console.WriteLine($"MyUIDrawerLayout:HitTest{point.X}   uievent{uievent.ToString()}");
+                                return this;//鎷︽埅
+                            }
+
+                        }
+                        else
+                        {
+                            if (point.X < 10)
+                            {
+                                //System.Console.WriteLine($"MyUIDrawerLayout:HitTest{point.X}   uievent{uievent.ToString()}");
+                                return this; return this;//鎷︽埅
+                            }
+                        }
+
+                    }
+                }
+
+                return base.HitTest(point, uievent);//涓嶆嫤鎴�
+            }
+
+
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                System.Console.WriteLine("MyUIDrawerLayout:TouchesBegan");
+                mUIDrawerLayout?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+                mUIDrawerLayout?.MYTouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+                
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                mUIDrawerLayout?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+                mUIDrawerLayout?.MYTouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                mUIDrawerLayout?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+                mUIDrawerLayout?.MYTouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+                System.Console.WriteLine("MyUIDrawerLayout:TouchesEnded");
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                mUIDrawerLayout?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+                mUIDrawerLayout?.MYTouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+
+
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/UIPickerView.cs b/Shared.IOS/UI/UIPickerView.cs
new file mode 100644
index 0000000..fcd0639
--- /dev/null
+++ b/Shared.IOS/UI/UIPickerView.cs
@@ -0,0 +1,249 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Foundation;
+using Shared.IOS.TBL;
+
+
+namespace Shared
+{
+
+
+
+    /// <summary>
+    /// UIPickerView
+    /// </summary>
+    public class UIPickerView : View
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The UIPickerView.</value>
+        HDLPickerView mHDLPickerView
+        {
+            get
+            {
+                return uiView as HDLPickerView;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+     
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public UIPickerView()
+        {
+            mHDLPickerView = new HDLPickerView
+            {
+           
+                MChangedDelegate = new OnSelectChangeListener(this)
+            };
+
+        }
+
+
+        /// <summary>
+        /// 鍒锋柊甯冨眬
+        /// </summary>
+        private void RefreshFrame()
+        {
+            mHDLPickerView.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+        }
+
+        /// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+        {
+            get
+            {
+                return base.Width;
+            }
+            set
+            {
+                base.Width = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨勯珮搴�
+        /// </summary>
+        public override int Height
+        {
+            get
+            {
+                return base.Height;
+            }
+            set
+            {
+                base.Height = value;
+                RefreshFrame();
+
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int X
+        {
+            get
+            {
+                return base.X;
+            }
+            set
+            {
+                base.X = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int Y
+        {
+            get
+            {
+                return base.Y;
+            }
+            set
+            {
+                base.Y = value;
+                RefreshFrame();
+
+            }
+        }
+
+
+        /// <summary>
+        /// 璁剧疆PickerView 榛樿閫変腑椤�
+        /// </summary>
+        public void setCurrentItems(int option1, int option2, int option3)
+        {
+
+            mHDLPickerView.SetCurrentItems(option1, option2, option3);
+
+        }
+
+
+        /// <summary>
+        /// 璁剧疆PickerView 鏁版嵁
+        /// </summary>
+        public void setNPicker(List<string> mFirstList, List<string> mSecondList, List<string> mThirdList)
+        {
+            if (mFirstList == null)
+            {
+                return;
+            }
+
+            if (mSecondList == null)
+            {
+                mHDLPickerView.SetNPicker(NSArray.FromObjects(mFirstList.ToArray()), null, null);
+
+            }
+            else
+            {
+                if (mThirdList == null)
+                {
+                    mHDLPickerView.SetNPicker(NSArray.FromObjects(mFirstList.ToArray()), NSArray.FromObjects(mSecondList.ToArray()), null);
+                }
+                else {
+                    mHDLPickerView.SetNPicker(NSArray.FromObjects(mFirstList.ToArray()), NSArray.FromObjects(mSecondList.ToArray()), NSArray.FromObjects(mThirdList.ToArray()));
+                }
+
+            }
+
+
+        }
+
+        /// <summary>
+        /// 璁剧疆PickerView 鏁版嵁
+        /// </summary>
+        public void setPicker(List<string> mFirstList, List<List<string>> mSecondList)
+        {
+            if (mFirstList == null)
+            {
+                return;
+            }
+
+            if (mFirstList.Count != mSecondList.Count)
+            {
+                return;
+            }
+
+            var dictDataList = new NSMutableArray();
+
+            for (int i = 0; i < mFirstList.Count; i++)
+            {
+
+                dictDataList.Add(NSDictionary.FromObjectAndKey(NSArray.FromObjects(mSecondList[i].ToArray()), new NSString(mFirstList[i])));
+
+            }
+
+            mHDLPickerView.SetPicker(dictDataList);
+
+        }
+
+
+        /// <summary>
+        /// 璁剧疆PickerView 閫変腑鏂囧瓧鐨勯鑹�
+        /// </summary>
+        public void setTextColorCenter(uint mColor, int indexID)
+        {
+
+            byte r, g, b, a;
+            r = (byte)(mColor / 256 / 256 % 256);
+            g = (byte)(mColor / 256 % 256);
+            b = (byte)(mColor % 256);
+            a = (byte)(mColor / 256 / 256 / 256 % 256);
+
+     
+            mHDLPickerView.SetTextColorCenter(UIKit.UIColor.FromRGBA(r, g, b, a), indexID);
+        }
+
+
+
+        /// <summary>
+        /// Action
+        /// </summary>
+        public Action<int, int, int> OnSelectChangeEvent;
+
+        /// <summary>
+        /// OnSelectChangeListener 缁ф壙鍝嶅簲浜嬩欢
+        /// </summary>
+        OnSelectChangeListener mOnSelectChangeListener;
+
+        public class OnSelectChangeListener : HDLPickerviewChangedDelegate
+        {
+
+            [Weak] UIPickerView _UIPickerView;
+
+            public OnSelectChangeListener(UIPickerView view)
+            {
+                _UIPickerView = view;
+            }
+
+            public override void SelectIndex2(nint selectIndex1, nint selectIndex2, nint selectIndex3)
+            {
+                _UIPickerView.OnSelectChangeEvent?.Invoke((int)selectIndex1, (int)selectIndex2, (int)selectIndex3);
+            }
+
+            //public override void OnProgressChanged(int mProgress)
+            //{
+            //    _WaveSeekBar.OnProgressChangedEvent?.Invoke(this, mProgress);
+            //}
+
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/UrlMonitor.cs b/Shared.IOS/UI/UrlMonitor.cs
new file mode 100644
index 0000000..572b0b4
--- /dev/null
+++ b/Shared.IOS/UI/UrlMonitor.cs
@@ -0,0 +1,131 @@
+锘縰sing System;
+using System.Net;
+using CoreGraphics;
+using UIKit;
+
+namespace Shared
+{
+	public class UrlMonitor : View
+	{
+		public UrlMonitor()
+		{
+			uiView = new UIImageView { Tag=int.MinValue};
+		}
+
+        public 
+
+		//鏄惁宸茬粡鍚姩
+		bool isStarted;
+		/// <summary>
+		/// 鐢ㄦ埛鍚�
+		/// </summary>
+		public string UserName = "";
+		/// <summary>
+		/// 瀵嗙爜
+		/// </summary>
+		public string Password = "";
+
+		/// <summary>
+		/// 鎽勫儚澶寸殑鍥剧墖鍦板潃
+		/// </summary>
+		public string URL;
+
+		/// <summary>
+		/// 鍚姩
+		/// </summary>
+		public void Start()
+		{
+			if (isStarted)
+			{
+				return;
+			}
+			isStarted = true;
+			System.Threading.Tasks.Task.Run(() =>
+				{
+					while (isStarted)
+					{
+						System.Threading.Thread.Sleep(100);
+						try
+						{
+							WebClient webClient = new WebClient();
+							webClient.Headers.Add("Accept-Encoding", "gzip, deflate");
+							webClient.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(UserName + ":" + Password)));
+							var bytes = webClient.DownloadData(URL);
+							var uiImage = UIImage.LoadFromData(Foundation.NSData.FromArray(bytes));
+							Application.RunOnMainThread(() =>
+							{
+								try
+								{
+									(uiView as UIImageView).Image = imimage(uiImage);
+								}
+								catch { }
+							});
+						}
+						catch { }
+					}
+				});
+		}
+		/// <summary>
+		/// 鍋滄鎾斁
+		/// </summary>
+		public void Stop()
+		{
+			isStarted = false;
+		}
+
+        /// <summary>
+        /// 鏃嬭浆褰撳墠鐢婚潰
+        /// </summary>
+        /// <returns>婧愬浘</returns>
+        /// <param name="image">鏃嬭浆鍚庣殑鐣岄潰</param>
+        UIImage imimage(UIImage image)
+        {
+            if (Application.IsPad)
+            {
+                return image;
+            }
+            else
+            {
+                var rotate = 3 * Math.PI / 2;
+                var rect = new CGRect(0, 0, image.Size.Height, image.Size.Width);
+                nfloat translateX = -rect.Size.Height;
+                nfloat translateY = 0;
+                nfloat scaleX = rect.Size.Height / rect.Size.Width;
+                nfloat scaleY = rect.Size.Width / rect.Size.Height;
+                //case UIImageOrientation.Right:
+                //rotate = 3 * Math.PI / 2;
+                //	rect = new CGRect(0, 0, image.Size.Height, image.Size.Width);
+                //	translateX = -rect.Size.Height;
+                //	translateY = 0;
+                //	scaleY = rect.Size.Width / rect.Size.Height;
+                //	scaleX = rect.Size.Height / rect.Size.Width;
+                //	break;
+                //case UIImageOrientation.Down:
+                //	rotate = M_PI;
+                //	rect = new CGRect(0, 0, image.Size.Width, image.Size.Height);
+                //	translateX = -rect.Size.Width;
+                //	translateY = -rect.Size.Height;
+                //	break;
+                //default:
+                //	rotate = 0.0f;
+                //	rect = new CGRect(0, 0, image.Size.Width, image.Size.Height);
+                //	translateX = 0;
+                //	translateY = 0;
+                //	break;
+
+                UIGraphics.BeginImageContext(rect.Size);
+                var context = UIGraphics.GetCurrentContext();
+                //鍋欳TM鍙樻崲
+                context.TranslateCTM(0.0f, rect.Size.Height);
+                context.ScaleCTM(1.0f, -1.0f);
+                context.RotateCTM((nfloat)rotate);
+                context.TranslateCTM(translateX, translateY);
+                context.ScaleCTM(scaleX, scaleY);
+
+                //缁樺埗鍥剧墖
+                context.DrawImage(new CGRect(0, 0, rect.Size.Width, rect.Size.Height), image.CGImage);
+                return UIGraphics.GetImageFromCurrentImageContext();
+            }
+        }
+	}
+}
diff --git a/Shared.IOS/UI/VerticalRefreshLayout.cs b/Shared.IOS/UI/VerticalRefreshLayout.cs
new file mode 100644
index 0000000..eaae19b
--- /dev/null
+++ b/Shared.IOS/UI/VerticalRefreshLayout.cs
@@ -0,0 +1,279 @@
+锘縰sing System;
+using UIKit;
+using CoreGraphics;
+using Shared.IO;
+using Foundation;
+using MJRefresh;
+
+namespace Shared
+{
+    /// <summary>
+    /// 浣嶇疆甯冨眬 甯︿笅鎷夊埛鏂�
+    /// </summary>
+    public class VerticalRefreshLayout : ViewGroup
+    {
+
+        public Action BeginHeaderRefreshingAction;
+        //public Action BeginFooterRefreshingAction;
+        MyRefreshScrolViewLayout mUIScrollView;
+
+        public VerticalRefreshLayout()
+        {
+            mUIScrollView = new MyRefreshScrolViewLayout(this) { };
+
+            viewGroup = mUIScrollView;
+
+            realViewGroup = mUIScrollView;
+
+            _isCanHeaderRefresh = true;
+
+            MJRefreshNormalHeader header = new MJRefreshNormalHeader();
+            //闅愯棌鎻愮ず鏂囧瓧 
+            //header.LastUpdatedTimeLabel.Hidden = true;
+            //header.StateLabel.Hidden = true;
+
+            mUIScrollView.SetMj_header(header);
+
+            header.RefreshingBlock = () =>
+            {
+                BeginHeaderRefreshingAction?.Invoke();
+            };
+
+
+
+            //header.SetTitle(NSBundle_MJRefresh.Mj_localizedStringForKey(NSBundle_MJRefresh.Mj_refreshBundle(NSBundle.MainBundle), "MJRefreshHeaderIdleText"), MJRefreshState.Idle);
+            //header.SetTitle(NSBundle_MJRefresh.Mj_localizedStringForKey(NSBundle_MJRefresh.Mj_refreshBundle(NSBundle.MainBundle), "MJRefreshHeaderPullingText"), MJRefreshState.Pulling);
+            //header.SetTitle(NSBundle_MJRefresh.Mj_localizedStringForKey(NSBundle_MJRefresh.Mj_refreshBundle(NSBundle.MainBundle), "MJRefreshHeaderRefreshingText"), MJRefreshState.Refreshing);
+
+            //header.AutomaticallyChangeAlpha = true;
+
+
+        }
+
+        //private void AddFotterView() {
+
+        //    MJRefreshAutoNormalFooter footer = new MJRefreshAutoNormalFooter();
+        //    mUIScrollView.SetMj_footer(footer);
+
+        //    footer.RefreshingBlock = async () =>
+        //    {
+        //        BeginFooterRefreshingAction?.Invoke();
+        //    };
+
+        //}
+
+
+
+        //***************************涓嬫媺鍒锋柊***************************
+        /// <summary>鈥�        /// 鏄惁鏀寔涓嬫媺鍒锋柊鈥�        /// </summary>
+        bool _isCanHeaderRefresh;
+        private bool IsCanHeaderRefresh
+        {
+            get鈥�            {鈥�                return _isCanHeaderRefresh;鈥�            }
+            set
+            {
+                _isCanHeaderRefresh = value;
+
+            }
+        }
+
+
+        /// <summary>鈥�        /// 澶村紑濮嬪埛鏂扳��        /// </summary>
+        public void BeginHeaderRefreshing()
+        {
+            if (!IsCanHeaderRefresh) return;
+
+
+            if (!mUIScrollView.Mj_header().Refreshing)
+            {
+                mUIScrollView.Mj_header().BeginRefreshing();
+            }
+        }
+
+        /// <summary>鈥�        /// 澶寸粨鏉熷埛鏂扳��        /// </summary>
+        public void EndHeaderRefreshing()
+        {
+            if (!IsCanHeaderRefresh) return;
+
+            if (mUIScrollView.Mj_header().Refreshing)
+            {
+                mUIScrollView.Mj_header().EndRefreshing();
+            }
+        }
+
+
+        /// <summary>鈥�        /// 鏄惁鏄剧ず婊氬姩鏉♀��        /// </summary>
+ 
+        public bool VerticalScrollBarEnabled
+        {
+            get鈥�            {鈥�                return mUIScrollView.ShowsVerticalScrollIndicator;鈥�            }
+            set
+            {
+                mUIScrollView.ShowsVerticalScrollIndicator = value;
+
+            }
+        }
+
+
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyRefreshScrolViewLayout : UIScrollView
+        {
+            [Weak] VerticalRefreshLayout _view;
+            public MyRefreshScrolViewLayout(VerticalRefreshLayout view)
+            {
+                this._view = view;
+                Scrolled += (sender, e) =>
+                {
+                    this._view?.ScrolledEventHandler?.Invoke(this, new MouseEventArgs { X = (float)(sender as MyRefreshScrolViewLayout).ContentOffset.X, Y = (float)(sender as MyRefreshScrolViewLayout).ContentOffset.Y });
+                };
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                _view?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                _view?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                _view?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                _view?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+
+        /// <summary>
+        /// 澧炲姞鎺т欢
+        /// </summary>
+        /// <param name="view">瀛愭帶浠�</param>
+        public override void AddChidren(View view)
+        {
+            base.AddChidren(view);
+            ReLocation();
+        }
+
+        /// <summary>
+        /// 閲嶆柊鎺掍綅缃強璁惧鍐呭澶у皬
+        /// </summary>
+        public virtual void ReLocation()
+        {
+            if (0 == viewList.Count)
+            {
+                return;
+            }
+            var frame1 = viewList[0].RealView.Frame;
+            frame1.Y = 0;
+            viewList[0].RealView.Frame = frame1;
+
+            for (int i = 1; i < viewList.Count; i++)
+            {
+                var frame = viewList[i].RealView.Frame;
+                frame.Y = viewList[i - 1].RealView.Frame.Bottom;
+                viewList[i].RealView.Frame = frame;
+            }
+
+            (realViewGroup as MyRefreshScrolViewLayout).ContentSize = new CoreGraphics.CGSize(0, viewList[viewList.Count - 1].Bottom <= Height ? Height + 1 : viewList[viewList.Count - 1].Bottom);
+        }
+
+        /// <summary>
+        /// 绉婚櫎鎵�鏈夌殑瑙嗗浘
+        /// </summary>
+        public override void RemoveAll()
+        {
+            base.RemoveAll();
+
+            ReLocation();
+        }
+
+        /// <summary>
+        /// 绉婚櫎褰撳墠瑙嗗浘
+        /// </summary>
+        /// <param name="view">褰撳墠瑙嗗浘</param>
+        internal override void Remove(View view)
+        {
+            base.Remove(view);
+
+            ReLocation();
+        }
+
+        /// <summary>
+        /// 绉婚櫎鎸囧畾绱㈠紩
+        /// </summary>
+        /// <param name="index">绱㈠紩</param>
+        public override void RemoveAt(int index)
+        {
+            base.RemoveAt(index);
+            ReLocation();
+        }
+
+        ///// <summary>
+        ///// 鏄惁鍏佽婊戝姩
+        ///// </summary>
+        ///// <value><c>true</c> if scroll enabled; otherwise, <c>false</c>.</value>
+        //public bool ScrollEnabled
+        //{
+        //    get
+        //    {
+        //        return (realViewGroup as MyRefreshScrolViewLayout).ScrollEnabled;
+        //    }
+        //    set
+        //    {
+        //        (realViewGroup as MyRefreshScrolViewLayout).ScrollEnabled = value;
+        //    }
+        //}
+
+        ///// <summary>
+        ///// 鏄惁姝e湪婊戝姩
+        ///// </summary>
+        ///// <value><c>true</c> if decelerating; otherwise, <c>false</c>.</value>
+        //public bool Decelerating
+        //{
+        //    get
+        //    {
+        //        return (realViewGroup as MyRefreshScrolViewLayout).Decelerating;
+        //    }
+        //}
+
+        /// <summary>
+        /// 婊戝姩浜嬩欢
+        /// </summary>
+        public EventHandler<MouseEventArgs> ScrolledEventHandler;
+
+
+    }
+}
\ No newline at end of file
diff --git a/Shared.IOS/UI/VerticalScrolViewLayout.cs b/Shared.IOS/UI/VerticalScrolViewLayout.cs
new file mode 100644
index 0000000..43458ca
--- /dev/null
+++ b/Shared.IOS/UI/VerticalScrolViewLayout.cs
@@ -0,0 +1,199 @@
+锘縰sing System;
+using UIKit;
+using CoreGraphics;
+using Shared.IO;
+using Foundation;
+
+namespace Shared
+{
+	/// <summary>
+	/// 浣嶇疆甯冨眬锛屽凡缁忓叏闈㈡鏌�
+	/// </summary>
+	public class VerticalScrolViewLayout : ViewGroup
+	{
+		/// <summary>
+		/// 鏋勯�犲嚱鏁�
+		/// </summary>
+		public VerticalScrolViewLayout()
+		{
+			viewGroup = new MyVerticalScrolViewLayout(this) { };
+           
+			realViewGroup = viewGroup;
+		}
+
+        /// <summary>
+        /// 鍨傜洿鏂瑰悜婊氬姩瑙嗗浘
+        /// </summary>
+        class MyVerticalScrolViewLayout : UIScrollView
+        {
+            [Weak] VerticalScrolViewLayout verticalScrolViewLayout;
+            public MyVerticalScrolViewLayout(VerticalScrolViewLayout verticalScrolViewLayout)
+            {
+                this.verticalScrolViewLayout = verticalScrolViewLayout;
+                Scrolled += (sender, e) =>
+                {
+                   this.verticalScrolViewLayout?.ScrolledEventHandler?.Invoke(this, new MouseEventArgs { X = (float)(sender as MyVerticalScrolViewLayout).ContentOffset.X, Y = (float)(sender as MyVerticalScrolViewLayout).ContentOffset.Y });
+                };
+            }
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                verticalScrolViewLayout?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                verticalScrolViewLayout?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                verticalScrolViewLayout?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                verticalScrolViewLayout?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            /// 妗嗘灦榛樿鍔犱簡涓や釜UIImageView 锛岃繖鏍峰彲浠ュ幓鎺夐粯璁ゆ坊鍔�
+            /// </summary>
+            /// <param name="view">View.</param>
+            public override void AddSubview(UIView view)
+            {
+                if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue)
+                {
+                    return;
+                }
+                base.AddSubview(view);
+            }
+        }
+
+        /// <summary>
+        /// 澧炲姞鎺т欢
+        /// </summary>
+        /// <param name="view">瀛愭帶浠�</param>
+        public override void AddChidren(View view)
+		{
+			base.AddChidren(view);
+			ReLocation();
+		}
+
+		/// <summary>
+		/// 閲嶆柊鎺掍綅缃強璁惧鍐呭澶у皬
+		/// </summary>
+		public virtual void ReLocation()
+		{
+			if (0 == viewList.Count)
+			{
+				return;
+			}
+            var frame1 = viewList[0].RealView.Frame;
+			frame1.Y = 0;
+			viewList[0].RealView.Frame = frame1;
+
+			for (int i = 1; i < viewList.Count; i++)
+			{
+				var frame = viewList[i].RealView.Frame;
+				frame.Y = viewList[i - 1].RealView.Frame.Bottom;
+				viewList[i].RealView.Frame = frame;
+			}
+
+			(realViewGroup as MyVerticalScrolViewLayout).ContentSize = new CoreGraphics.CGSize(0, viewList[viewList.Count - 1].Bottom <= Height ? Height + 1 : viewList[viewList.Count - 1].Bottom);
+		}
+
+		/// <summary>
+		/// 绉婚櫎鎵�鏈夌殑瑙嗗浘
+		/// </summary>
+		public override void RemoveAll()
+		{
+			base.RemoveAll();
+
+			ReLocation();
+		}
+
+		/// <summary>
+		/// 绉婚櫎褰撳墠瑙嗗浘
+		/// </summary>
+		/// <param name="view">褰撳墠瑙嗗浘</param>
+		internal override void Remove(View view)
+		{
+			base.Remove(view);
+
+			ReLocation();
+		}
+
+		/// <summary>
+		/// 绉婚櫎鎸囧畾绱㈠紩
+		/// </summary>
+		/// <param name="index">绱㈠紩</param>
+		public override void RemoveAt(int index)
+		{
+			base.RemoveAt(index);
+			ReLocation();
+		}
+
+		/// <summary>
+		/// 鏄惁鍏佽婊戝姩
+		/// </summary>
+		/// <value><c>true</c> if scroll enabled; otherwise, <c>false</c>.</value>
+		public bool ScrollEnabled
+		{
+			get
+			{
+				return (viewGroup as MyVerticalScrolViewLayout).ScrollEnabled;
+			}
+			set
+			{
+				(viewGroup as MyVerticalScrolViewLayout).ScrollEnabled = value;
+			}
+		}
+
+		/// <summary>
+		/// 鏄惁姝e湪婊戝姩
+		/// </summary>
+		/// <value><c>true</c> if decelerating; otherwise, <c>false</c>.</value>
+		public bool Decelerating
+		{
+			get
+			{
+				return (viewGroup as MyVerticalScrolViewLayout).Decelerating;
+			}
+		}
+
+		/// <summary>
+		/// 婊戝姩浜嬩欢
+		/// </summary>
+		public  EventHandler<MouseEventArgs> ScrolledEventHandler;
+
+        /// <summary>鈥�        /// 鏄惁鏄剧ず鍨傜洿婊氬姩鏉♀��        /// </summary>
+
+        public bool VerticalScrollBarEnabled
+        {
+            get鈥�            {鈥�                return (viewGroup as MyVerticalScrolViewLayout).ShowsVerticalScrollIndicator;鈥�            }
+            set
+            {
+                (viewGroup as MyVerticalScrolViewLayout).ShowsVerticalScrollIndicator = value;
+
+            }
+        }
+
+    }
+
+
+
+
+}
diff --git a/Shared.IOS/UI/VerticalSeekBar.cs b/Shared.IOS/UI/VerticalSeekBar.cs
new file mode 100644
index 0000000..f20c24b
--- /dev/null
+++ b/Shared.IOS/UI/VerticalSeekBar.cs
@@ -0,0 +1,459 @@
+using System;
+using UIKit;
+using System.IO;
+using Foundation;
+using CoreGraphics;
+using Shared.IO;
+
+namespace Shared
+{
+	/// <summary>
+	/// 浣嶇疆甯冨眬
+	/// </summary>
+	public class VerticalSeekBar : View
+	{
+		/// <summary>
+		/// 婊戝潡
+		/// </summary>
+		UIButton btnThum = new UIButton(new CGRect(0, 0, 24, 24)) { Enabled = false };
+		/// <summary>
+		/// 杩涘害鏉¢鑹�
+		/// </summary>
+		UIButton btnProgressColor = new UIButton(new CGRect(0, 0, 1, 0)) { Enabled = false };
+		/// <summary>
+		/// 鑳屾櫙杩涘害鏉¢鑹�
+		/// </summary>
+		UIButton btnBackgroundColor = new UIButton(new CGRect(0, 0, 1, 0)) { Enabled = false };
+
+		MyVerticalSeekBar currentRealView;
+		/// <summary>
+		/// 鏋勯�犲嚱鏁�
+		/// </summary>
+		public VerticalSeekBar()
+		{
+			currentRealView = new MyVerticalSeekBar(this) { };
+
+			uiView = currentRealView;
+
+			uiView.AddSubview(btnBackgroundColor);
+			uiView.AddSubview(btnProgressColor);
+			uiView.AddSubview(btnThum);
+
+		}
+
+		/// <summary>
+		/// 鐢熸垚鍦嗗舰鐨勬粦鍔�
+		/// </summary>
+		/// <returns>The image with color.</returns>
+		/// <param name="color">Color.</param>
+		UIImage createImageWithColor(UIColor color)
+		{
+			//璁剧疆闀垮
+			CGRect rect = new CGRect(0.0f, 0.0f, btnThum.Frame.Width, btnThum.Frame.Width);
+			UIGraphics.BeginImageContext(rect.Size);
+			var context = UIGraphics.GetCurrentContext();
+			context.SetFillColor(color.CGColor);
+			context.FillRect(rect);
+			UIImage resultImage = UIGraphics.GetImageFromCurrentImageContext();
+			UIGraphics.EndImageContext();
+			// 寮�濮嬩竴涓狪mage鐨勪笂涓嬫枃
+			UIGraphics.BeginImageContextWithOptions(resultImage.Size, false, 0.0f);
+			// 娣诲姞鍦嗚
+			UIBezierPath.FromRoundedRect(rect, btnThum.Frame.Width / 2).AddClip();
+			// 缁樺埗鍥剧墖
+			resultImage.Draw(rect);
+			// 鎺ュ彈缁樺埗鎴愬姛鐨勫浘鐗�
+			resultImage = UIGraphics.GetImageFromCurrentImageContext();
+			UIGraphics.EndImageContext();
+			return resultImage;
+		}
+
+		public override void Refresh()
+		{
+			base.Refresh();
+			ProgressColor = progressColor;
+			BackgroundColor = backgroundColor;
+			ThumbColor = thumbColor;
+			Progress = progress;
+		}
+
+		/// <summary>
+		/// 褰撳墠瑙嗗浘鐨勯珮搴�
+		/// </summary>
+		/// <value>The height.</value>
+		public override int Height
+		{
+			get
+			{
+				return base.Height;
+			}
+			set
+			{
+				base.Height = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				var frameBackgroundColor = btnBackgroundColor.Frame;
+				frameBackgroundColor.Height = base.Height;
+				btnBackgroundColor.Frame = frameBackgroundColor;
+			}
+		}
+
+		/// <summary>
+		/// 褰撳墠瑙嗗浘鐨勫搴�
+		/// </summary>
+		/// <value>The width.</value>
+		public override int Width
+		{
+			get
+			{
+				return base.Width;
+			}
+			set
+			{
+				base.Width = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+
+				var frameBtnFrame = btnThum.Frame;
+				frameBtnFrame.X = (base.Width - btnThum.Frame.Width) / 2;
+				btnThum.Frame = frameBtnFrame;
+
+				var frameBackgroundColor = btnBackgroundColor.Frame;
+				frameBackgroundColor.X = (base.Width - frameBackgroundColor.Width) / 2;
+				btnBackgroundColor.Frame = frameBackgroundColor;
+
+				var frameProgressColor = btnProgressColor.Frame;
+				frameProgressColor.X = (base.Width - frameProgressColor.Width) / 2;
+				btnProgressColor.Frame = frameProgressColor;
+			}
+		}
+
+
+		DateTime dateTime;
+        /// <summary>
+        ///  杩涘害鍙樺寲浜嬩欢
+        /// </summary>
+        public Action<View, int> ProgressChanged;
+
+		int max = 100;
+		/// <summary>
+		/// 鏈�澶у��
+		/// </summary>
+		/// <value>The max.</value>
+		public int Max
+		{
+			get
+			{
+				return max;
+			}
+			set
+			{
+				max = value;
+			}
+		}
+		bool isCanScrolled = true;
+		/// <summary>
+		/// 鏄惁鍏佽婊戝姩婊戝潡
+		/// </summary>
+		/// <value><c>true</c> if is can scrolled; otherwise, <c>false</c>.</value>
+		public bool IsCanScrolled
+		{
+			get
+			{
+				return isCanScrolled;
+			}
+			set
+			{
+				isCanScrolled = value;
+			}
+		}
+
+		nfloat validHeight
+		{ 
+			get {
+				return uiView.Frame.Height - btnThum.Frame.Height;
+			}
+		}
+
+        //2019-08-29 鏀�100姣
+        public int DelayTime = 100;
+        //闃叉璺冲姩锛屽欢鏃舵樉绀虹姸鎬�
+        DateTime delayDateTime = DateTime.MinValue;
+		int progress;
+		/// <summary>
+		/// 褰撳墠杩涘害
+		/// </summary>
+		/// <value>The progress.</value>
+		public int Progress
+		{
+			get
+			{
+				return (int)(Max * (validHeight  - btnThum.Frame.Y) / validHeight);
+			}
+			set
+			{
+				progress = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				//鍙戦�佸懡浠ゅ悗3000姣鍐呬笉鏇存柊鐘舵�侊紝闃叉璺冲姩
+				if ((DateTime.Now - delayDateTime).TotalMilliseconds < DelayTime)
+				{
+					return;
+				}
+
+				if (Max < progress)
+				{
+					progress = Max;
+				}
+				var frameThum = btnThum.Frame;
+				frameThum.Y = 1.0f*(Max - progress) / Max * validHeight;
+				btnThum.Frame = frameThum;
+
+				var frameProgress = btnProgressColor.Frame;
+				frameProgress.Y = frameThum.Y + frameThum.Height / 2;
+				frameProgress.Height = uiView.Frame.Height - frameProgress.Y;
+				btnProgressColor.Frame = frameProgress;
+			}
+		}
+		/// <summary>
+		/// 婊戝姩浼戠湢鏃堕棿
+		/// </summary>
+		public int SleepTime = 0;
+
+		uint progressColor = 0x99000099;
+		/// <summary>
+		/// 杩涘害棰滆壊
+		/// </summary>
+		/// <value>The color of the progress.</value>
+		public uint ProgressColor
+		{
+			get
+			{
+				return progressColor;
+			}
+			set
+			{
+				progressColor = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				int r = (byte)(progressColor / 256 / 256 % 256);
+				int g = (byte)(progressColor / 256 % 256);
+				int b = (byte)(progressColor % 256);
+				int a = (byte)(progressColor / 256 / 256 / 256 % 256);
+				btnProgressColor.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+			}
+		}
+
+		uint backgroundColor = 0xFFFFFFFF;
+		/// <summary>
+		/// 搴曢儴棰滆壊
+		/// </summary>
+		/// <value>The color of the background.</value>
+		public new uint BackgroundColor
+		{
+			get
+			{
+				return backgroundColor;
+			}
+			set
+			{
+				backgroundColor = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				int r = (byte)(backgroundColor / 256 / 256 % 256);
+				int g = (byte)(backgroundColor / 256 % 256);
+				int b = (byte)(backgroundColor % 256);
+				int a = (byte)(backgroundColor / 256 / 256 / 256 % 256);
+				btnBackgroundColor.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+			}
+		}
+
+		uint thumbColor = 0xFFFFFFFF;
+		/// <summary>
+		/// 婊戝潡棰滆壊
+		/// </summary>
+		/// <value>The color of the background.</value>
+		public uint ThumbColor
+		{
+			get
+			{
+				return thumbColor;
+			}
+			set
+			{
+				thumbColor = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				int r = (byte)(thumbColor / 256 / 256 % 256);
+				int g = (byte)(thumbColor / 256 % 256);
+				int b = (byte)(thumbColor % 256);
+				int a = (byte)(thumbColor / 256 / 256 / 256 % 256);
+
+				btnThum.SetBackgroundImage(createImageWithColor(UIColor.FromRGBA(r, g, b, a)), UIControlState.Disabled);
+			}
+		}
+
+		internal override bool TouchEvent(EventActions e, CGPoint point)
+		{
+			switch (e)
+			{
+				case EventActions.Down:
+					dateTime = DateTime.Now;
+					setButtonLoaction(point.Y);
+					break;
+				case EventActions.Move:
+					setButtonLoaction(point.Y);
+					break;
+				case EventActions.Cancel:
+				case EventActions.Up:
+					dateTime = DateTime.MinValue;
+					setButtonLoaction(point.Y);
+					break;
+			}
+            return base.TouchEvent(e,point);
+		}
+		int beforValue = 0;
+		void setButtonLoaction(nfloat y)
+		{
+			if (!IsCanScrolled)
+			{
+				return;
+			}
+			delayDateTime = DateTime.Now;
+			if (y < 0)
+			{
+				y = 0;
+			}
+
+			if (validHeight < y)
+			{
+				y = validHeight;
+			}
+
+			var frameThum = btnThum.Frame;
+			frameThum.Y = y;
+			btnThum.Frame = frameThum;
+
+			var frameProgress = btnProgressColor.Frame;
+			frameProgress.Y = frameThum.Y + frameThum.Height / 2;
+			frameProgress.Height = uiView.Frame.Height - frameProgress.Y;
+			btnProgressColor.Frame = frameProgress;
+
+			if (dateTime == DateTime.MinValue)
+			{
+				if (ProgressChanged != null && beforValue != Progress)
+				{
+					dateTime = DateTime.Now;
+					delayDateTime = DateTime.Now;
+					ProgressChanged(this, beforValue = Progress);
+				}
+			}
+			else
+			{
+				//鍙樺寲澶т簬500姣鐨勬椂鍊欐墠閫氱煡
+				if (SleepTime < (DateTime.Now - dateTime).TotalMilliseconds)
+				{
+					dateTime = DateTime.Now;
+					delayDateTime = DateTime.Now;
+					if (ProgressChanged != null && beforValue != Progress)
+					{
+						ProgressChanged(this, beforValue = Progress);
+					}
+				}
+			}
+		}
+
+
+		class MyVerticalSeekBar : UIView
+		{
+            [Weak] VerticalSeekBar view;
+            public MyVerticalSeekBar(VerticalSeekBar view) {
+                this.view = view;
+            }
+			public override UIView HitTest(CGPoint point, UIEvent uievent)
+			{
+				//濡傛灉鐐瑰嚮鏄繖涓尯鍩燂紝涓嶈鍏跺畠瑙嗗浘鎵ц浜嬩欢
+				if (PointInside(point, uievent))
+				{
+					return this;
+				}
+				return null;
+			}
+			nfloat startPointX;
+
+            /// <summary>
+            /// 鐐瑰嚮寮�濮�
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesBegan(NSSet touches, UIEvent evt)
+            {
+                parentScrolled(false);
+                var cgpoint = (touches.AnyObject as UITouch).LocationInView(this);
+                startPointX = cgpoint.X;
+                view?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+            /// <summary>
+            ///  绉诲姩
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesMoved(NSSet touches, UIEvent evt)
+            {
+                var cgpoint = (touches.AnyObject as UITouch).LocationInView(this);
+                if (20 < Math.Abs(cgpoint.X - startPointX))
+                {
+                    parentScrolled(true);
+                }
+                view?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            /// <summary>
+            /// 鐐瑰嚮寮硅捣
+            /// </summary>
+            /// <param name="touches">Touches.</param>
+            /// <param name="evt">Evt.</param>
+            public override void TouchesEnded(NSSet touches, UIEvent evt)
+            {
+                parentScrolled(true);
+                view?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+            public override void TouchesCancelled(NSSet touches, UIEvent evt)
+            {
+                parentScrolled(true);
+                view?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this));
+            }
+
+			/// <summary>
+			/// 璁剧疆鐖惰鍥炬槸鍚﹀彲浠ユ粦鍔�
+			/// </summary>
+			/// <param name="b">If set to <c>true</c> b.</param>
+			void parentScrolled(bool b)
+			{
+				var tempParent = Superview;
+				while (null != tempParent)
+				{
+					if (tempParent.GetType() == typeof(UIScrollView))
+					{
+						(tempParent as UIScrollView).ScrollEnabled = b;
+					}
+					tempParent = tempParent.Superview;
+				}
+			}
+		}
+	}
+}
+
diff --git a/Shared.IOS/UI/Video.cs b/Shared.IOS/UI/Video.cs
new file mode 100644
index 0000000..7a4ca69
--- /dev/null
+++ b/Shared.IOS/UI/Video.cs
@@ -0,0 +1,93 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UIKit;
+using Foundation;
+using Shared.IO;
+
+namespace Shared
+{
+	/// <summary>
+	/// Button 鎸夐敭
+	/// </summary>
+	public class Video : View
+	{
+		//VitamioIOSBinding.VMediaPlayer player;
+		/// <summary>
+		///  褰撳墠瑙嗗浘
+		/// </summary>
+		/// <value>The android button.</value>
+		private UIView playUIView
+		{
+			get
+			{
+				return this.uiView as  UIView;
+			}
+			set
+			{
+				this.uiView = value;
+			}
+		}
+
+		public Video()
+		{
+			this.playUIView = new UIView { };
+			this.playUIView.Frame = new CoreGraphics.CGRect (0, 0, 1024, 1024);
+			//this.player = VMediaPlayer.SharedInstance ();
+			//player.SetupPlayerWithCarrierView (this.playUIView, new VdoDelegate());
+			//player.SetVideoFillMode (FillMode.Stretch);
+
+		}
+
+		public void init()
+		{
+			//player.SetDataSource (new NSUrl (this.URL));
+			//player.PrepareAsync ();
+		}
+
+		public void Start()
+		{
+			//player.Start ();
+		}
+
+		private string url;
+
+		public string URL
+		{
+			get
+			{
+				return this.url;
+			}
+			set
+			{
+				this.url = value;
+			}
+		}
+
+		public void Stop()
+		{
+			
+		}
+
+	}
+
+//	public class VdoDelegate : VitamioIOSBinding.VMediaPlayerDelegate
+//	{
+//		public override void DidPrepared(VMediaPlayer player,NSObject obj)
+//		{
+//			//player.Start ();
+//		}
+//
+//		public override void PlaybackCompleted(VMediaPlayer player,NSObject obj)
+//		{
+//			
+//		}
+//
+//		public override void Error(VMediaPlayer player,NSObject obj)
+//		{
+//			
+//		}
+//	}
+}
+
diff --git a/Shared.IOS/UI/View.cs b/Shared.IOS/UI/View.cs
new file mode 100644
index 0000000..4d90fe0
--- /dev/null
+++ b/Shared.IOS/UI/View.cs
@@ -0,0 +1,1040 @@
+锘縰sing System;
+using System.Collections.Generic;
+using CoreAnimation;
+using CoreGraphics;
+using UIKit;
+
+//涓や釜闂锛岀涓�涓槸RCU鍗忚锛岀浜屼釜鏄疻IFI杩囧  23涓� 
+ namespace Shared{
+
+	/// <summary>
+	/// 鏍硅鍥撅紝鎵�鏈夎鍥剧殑鐖惰鍥�
+	/// </summary>
+	class RootView : ViewGroup { }
+	/// <summary>
+	/// 鎵�鏈夌被鐨勫熀绫伙紝宸茬粡鍏ㄩ潰妫�鏌�
+	/// </summary>
+	public abstract class View
+	{
+        ~View()
+        {
+#if DEBUG
+            System.Console.WriteLine("=====" + GetType() + " " + Name);
+#endif
+            if (this is ViewGroup)
+            {
+                var viewGroup = this as ViewGroup;
+                if (viewGroup.realViewGroup != RealView)
+                {
+                    foreach (var view in viewGroup.viewList)
+                    {
+                        view.RealView.Dispose();
+                    }
+                    viewGroup.realViewGroup?.Dispose();
+                }
+            }
+
+            RealView?.Dispose();
+        }
+        
+       
+        /// <summary>
+        /// 鏄惁闇�瑕佹洿鏂版帶浠�
+        /// </summary>
+        /// <value>The is need refresh.</value>
+        protected bool IsCanRefresh
+		{
+			get
+			{
+				View tempView = Parent;
+				while (tempView != null)
+				{
+					//濡傛灉鐖惰鍥炬槸RootView锛岄偅璇存槑瑙嗗浘宸茬粡鍔犺浇瀹屾垚锛屽彲浠ュ埛鏂拌鍥�
+					if (tempView.GetType() == typeof(RootView))
+					{
+						return true;
+					}
+					tempView = tempView.Parent;
+				}
+				return false;
+			}
+		}
+
+
+        /// <summary>
+        /// 褰撳墠瀵瑰簲鐨処OS鎺т欢
+        /// </summary>
+        protected UIView uiView;
+
+		/// <summary>
+		/// 鍐呰竟璺�
+		/// </summary>
+		/// <value>The padding.</value>
+		public virtual Padding Padding
+		{
+			get;
+			set;
+		}
+
+		/// <summary>
+		/// 鏄惁浣胯兘
+		/// </summary>
+		/// <value><c>true</c> if enable; otherwise, <c>false</c>.</value>
+		public virtual bool Enable
+		{
+			get;
+			set;
+		}
+
+		int height=LayoutParams.MatchParent;
+		/// <summary>
+		/// 鎺т欢鐨勯珮搴�
+		/// </summary>
+		/// <value>The height.</value>
+		public virtual int Height
+		{
+			get
+			{
+				return IsCanRefresh ? (int)uiView.Frame.Height : height;
+			}
+			set
+			{
+
+				height = value;
+
+				if (!IsCanRefresh)
+					return;
+
+				var frame = uiView.Frame;
+				var beforeValue = frame.Height;
+				if (value == LayoutParams.MatchParent)
+				{
+					frame.Height = Parent.Height;
+					uiView.Frame = frame;
+				}
+				else
+				{
+					frame.Height = value;
+					uiView.Frame = frame;
+				}
+
+				if (frame.Height != beforeValue)
+				{
+                    SizeChangeEventHandler?.Invoke(this, new Size((int)frame.Width, (int)frame.Height));
+                }
+
+				//濡傛灉鐖惰鍥炬槸VerticalScrolViewLayout锛岄偅闇�瑕侀噸鏂板埛鏂版帓鍒�
+				if (Parent is VerticalScrolViewLayout)
+				{
+					(Parent as VerticalScrolViewLayout).ReLocation();
+				}
+
+                if (Parent is VerticalRefreshLayout)
+                {
+                    (Parent as VerticalRefreshLayout).ReLocation();
+                }
+            }
+		}
+
+		int width = LayoutParams.MatchParent;
+		/// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		/// <value>The width.</value>
+		public virtual int Width
+		{
+			get
+			{
+				return IsCanRefresh ? (int)uiView.Frame.Width : width;
+			}
+			set
+			{
+				width = value;
+
+				if (!IsCanRefresh)
+					return;
+
+
+				var frame = uiView.Frame;
+				var beforeValue = frame.Width;
+				if (value == LayoutParams.MatchParent)
+				{
+					frame.Width = Parent.Width;
+					uiView.Frame = frame;
+				}
+				else
+				{
+					frame.Width = value;
+					uiView.Frame = frame;
+				}
+
+				if (frame.Width != beforeValue)
+				{
+                    SizeChangeEventHandler?.Invoke(this, new Size((int)frame.Width, (int)frame.Height));
+                }
+
+				//濡傛灉鐖惰鍥炬槸HorizontalScrolViewLayout锛岄偅闇�瑕侀噸鏂板埛鏂版帓鍒�
+				if (Parent is HorizontalScrolViewLayout)
+				{
+					(Parent as HorizontalScrolViewLayout).ReLocation();
+				}
+
+			}
+		}
+
+		Gravity gravity = Gravity.Frame;
+		/// <summary>
+		/// 褰撳墠瑙嗗浘瀵归綈鏂瑰紡
+		/// </summary>
+		/// <value>The gravity.</value>
+		public Gravity Gravity
+		{
+			get
+			{
+				return gravity;
+			}
+			set
+			{
+				gravity = value;
+				if (uiView.Superview == null)
+				{
+					return;
+				}
+				switch (value)
+				{
+					case Gravity.TopLeft:
+						X = 0;
+						Y = 0;
+						break;
+					case Gravity.TopCenter:
+						X = ((int)uiView.Superview.Frame.Width - Width) / 2;
+						Y = 0;
+						break;
+					case Gravity.TopRight:
+						X = (int)uiView.Superview.Frame.Width - Width;
+						Y = 0;
+						break;
+					case Gravity.CenterLeft:
+						X = 0;
+						Y = ((int)uiView.Superview.Frame.Height - Height) / 2;
+						break;
+					case Gravity.Center:
+						X = ((int)uiView.Superview.Frame.Width - Width) / 2;
+						Y = ((int)uiView.Superview.Frame.Height - Height) / 2;
+						break;
+					case Gravity.CenterRight:
+						X = (int)uiView.Superview.Frame.Width - Width;
+						Y = ((int)uiView.Superview.Frame.Height - Height) / 2;
+						break;
+					case Gravity.BottomLeft:
+						X = 0;
+						Y = (int)uiView.Superview.Frame.Height - Height;
+						break;
+					case Gravity.BottomCenter:
+						X = ((int)uiView.Superview.Frame.Width - Width) / 2;
+						Y = (int)uiView.Superview.Frame.Height - Height;
+						break;
+					case Gravity.BottomRight:
+						X = (int)uiView.Superview.Frame.Width - Width;
+						Y = (int)uiView.Superview.Frame.Height - Height;
+						break;
+					case Gravity.CenterVertical:
+						Y = ((int)uiView.Superview.Frame.Height - Height) / 2;
+						break;
+					case Gravity.CenterHorizontal:
+						X = ((int)uiView.Superview.Frame.Width - Width) / 2;
+						break;
+					default:
+						break;
+				}
+			}
+		}
+
+		/// <summary>
+		/// 鍒涙柊闇�瑕佸垱鏂扮殑淇℃伅
+		/// </summary>
+		public virtual void Refresh()
+		{
+			Width = width;
+			Height = height;
+			Gravity = gravity;
+			Animate = animate;
+			Radius = radius;
+		}
+
+		/// <summary>
+		/// 宸﹁竟绾夸綅缃�
+		/// </summary>
+		/// <value>The bottom.</value>
+		public int Bottom
+		{
+			get
+			{
+				return Height + Y;
+			}
+		}
+
+		/// <summary>
+		///  鍙宠竟绾夸綅缃�
+		/// </summary>
+		/// <value>The right.</value>
+		public int Right
+		{
+			get
+			{
+				return Width + X;
+			}
+		}
+
+		/// <summary>
+		/// 鍚嶇О
+		/// </summary>
+		/// <value>The name.</value>
+		public string Name { get; set; }
+
+		int x;
+		/// <summary>
+		/// X杞村潗鏍�
+		/// </summary>
+		/// <value>The x.</value>
+		public virtual int X
+		{
+			get
+			{
+				if (Parent != null && Parent is HorizontalScrolViewLayout)
+				{
+					return (int)uiView.Frame.X;
+				}
+				else
+				{
+					return x;
+				}
+			}
+			set
+			{
+				x = value;
+
+				//杩欎釜閮ㄥ眬锛屼笉闇�瑕佸鐞嗗潗鏍�
+				if (Parent != null && Parent is HorizontalScrolViewLayout)
+				{
+					return;
+				}
+				else
+				{
+					var frame = uiView.Frame;
+					frame.X = value;
+					uiView.Frame = frame;
+				}
+			}
+		}
+
+		int y;
+		/// <summary>
+		/// Y杞村潗鏍�
+		/// </summary>
+		/// <value>The y.</value>
+		public virtual int Y
+		{
+			get
+			{
+				if (Parent != null && (Parent is VerticalScrolViewLayout || Parent is VerticalRefreshLayout))
+				{
+					return (int)uiView.Frame.Y;
+				}
+				else
+				{
+					return y;
+				}
+			}
+			set
+			{
+				y = value;
+
+				//杩欎釜閮ㄥ眬锛屼笉闇�瑕佸鐞嗗潗鏍�
+				if (Parent != null && (Parent is VerticalScrolViewLayout || Parent is VerticalRefreshLayout))
+                {
+					return;
+				}
+				else {
+					var frame = uiView.Frame;
+					frame.Y = value;
+					uiView.Frame = frame;
+				}
+			}
+		}
+
+		/// <summary>
+		/// 褰撳墠绐楀彛澶у皬鍙婁綅缃�
+		/// </summary>
+		/// <value>The frame.</value>
+		public virtual Size Size
+		{
+			get
+			{
+				return new Size(Width, Height);
+			}
+			set
+			{
+				Width = value.Width;
+				Height = value.Height;
+			}
+		}
+
+        /// <summary>
+        /// 鐖跺鍣�
+        /// </summary>
+        /// <value>The parent.</value>
+        public ViewGroup Parent;
+        bool isUp;
+        bool longClicked;
+        System.Threading.Thread thread;
+        /// <summary>
+        /// 鐐瑰嚮浜嬩欢
+        /// </summary>
+        /// <returns>鍙嶉褰撳墠浜嬩欢鏄惁宸茬粡澶勭悊</returns>
+        /// <param name="e">浜嬩欢</param>
+        /// <param name="point">褰撳墠鐐瑰嚮浣嶇疆</param>
+        internal virtual bool TouchEvent(EventActions eventAction, CGPoint point)
+        {
+            switch (eventAction)
+            {
+                case EventActions.Down:
+                    isUp = false;
+                    longClicked = false;
+
+                    MouseDownEventHandler?.Invoke(this, new MouseEventArgs { X = (int)point.X, Y = (int)point.Y });
+                    if (MouseLongEventHandler != null)
+                    {
+                        try
+                        {
+                            if (thread != null && thread.IsAlive)
+                            {
+                                thread.Abort();
+                            }
+                            thread = new System.Threading.Thread(() =>
+                            {
+                                System.Threading.Thread.Sleep(800);
+                                if (!isUp)
+                                {
+                                    longClicked = true;
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        MouseLongEventHandler(this, new MouseEventArgs { X = (int)point.X, Y = (int)point.Y });
+                                    });
+                                }
+                            })
+                            { IsBackground = true };
+                            thread.Start();
+                        }
+                        catch { }
+                    }
+                    break;
+                case EventActions.Move:
+                    MouseMoveEventHandler?.Invoke(this, new MouseEventArgs { X = (int)point.X, Y = (int)point.Y });
+                    break;
+                case EventActions.Up:
+                    isUp = true;
+                    if (!longClicked)
+                    {
+                        MouseUpEventHandler?.Invoke(this, new MouseEventArgs { X = (int)point.X, Y = (int)point.Y });
+                    }
+                    break;
+                case EventActions.Cancel:
+                    isUp = true;
+                    break;
+            }
+            
+            return false;
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮鎸変笅浜嬩欢
+        /// </summary>
+        public  EventHandler<MouseEventArgs> MouseDownEventHandler;
+        /// <summary>
+        /// 鎺т欢涓婄Щ鍔ㄤ簨浠�
+        /// </summary>
+        public  EventHandler<MouseEventArgs> MouseMoveEventHandler;
+
+		/// <summary>
+		/// 鐐瑰嚮寮硅捣浜嬩欢
+		/// </summary>
+	 	public  EventHandler<MouseEventArgs> MouseUpEventHandler;
+
+        public EventHandler<MouseEventArgs> MouseLongEventHandler;
+
+        /// <summary>
+        /// 澶у皬鍙樺寲浜嬩欢
+        /// </summary>
+        public EventHandler<Size> SizeChangeEventHandler;
+
+
+		uint backgroundColor;
+		/// <summary>
+		/// 鑳屾櫙棰滆壊
+		/// </summary>
+		/// <value>The color of the background.</value>
+		public virtual uint BackgroundColor
+		{
+			get
+			{
+				return backgroundColor;
+			}
+			set
+			{
+				backgroundColor = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				byte r, g, b, a;
+				r = (byte)(backgroundColor / 256 / 256 % 256);
+				g = (byte)(backgroundColor / 256 % 256);
+				b = (byte)(backgroundColor % 256);
+				a = (byte)(backgroundColor / 256 / 256 / 256 % 256);
+				uiView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+			}
+		}
+
+		/// <summary>
+		///  鑾峰彇鐪熷疄鐨勬帶浠�
+		/// </summary>
+		/// <value>The real view.</value>
+		internal UIKit.UIView RealView
+		{
+			get { return uiView; }
+		}
+
+		/// <summary>
+		/// 灏嗘帶鍒剁Щ鍒版渶鍓�
+		/// </summary>
+		public virtual void BringToFront()
+		{
+			if (!IsCanRefresh)
+			{
+				return;
+			}
+			uiView.Superview.BringSubviewToFront(uiView);
+		}
+
+		/// <summary>
+		/// 灏嗘帶浠剁Щ鍒版渶鍚�
+		/// </summary>
+		public virtual void SendToBack()
+		{
+			if (!IsCanRefresh)
+			{
+				return;
+			}
+			uiView.Superview.SendSubviewToBack(uiView);
+		}
+
+		System.Collections.Generic.Dictionary<string, object> tag;
+
+		/// <summary>
+		/// 閿�煎锛屾柟渚垮紑鍙戠敤
+		/// </summary>
+		/// <param name="key">Key.</param>
+		/// <param name="value">Value.</param>
+		public void AddTag(string key, object value)
+		{
+			if (tag == null)
+			{
+				tag = new System.Collections.Generic.Dictionary<string, object>();
+			}
+			tag.Remove(key);
+			tag.Add(key, value);
+		}
+
+		/// <summary>
+		/// 鍒犻櫎鎸囧畾閿�煎
+		/// </summary>
+		/// <param name="key">Key.</param>
+		public void RemoveTag(string key)
+		{
+			if (tag == null)
+			{
+				return;
+			}
+			tag.Remove(key);
+		}
+
+		/// <summary>
+		/// 鏍规嵁閿幏鍙栧��
+		/// </summary>
+		/// <returns>The tag by key.</returns>
+		/// <param name="key">Key.</param>
+		public object GetTagByKey(string key)
+		{
+			if (tag == null)
+			{
+				return null;
+			}
+			object value;
+			tag.TryGetValue(key, out value);
+			return value;
+		}
+
+		/// <summary>
+		/// 鍏ㄩ儴鍒犻櫎Tag
+		/// </summary>
+		/// <returns>The tag.</returns>
+		public void ClearTag()
+		{
+			if (tag != null)
+			{
+				tag.Clear();
+			}
+		}
+
+		/// <summary>
+		/// 鏂逛究寮�鍙戣�呭紑鍙戠敤
+		/// </summary>
+		public object Tag;
+
+		/// <summary>
+		/// 鏄惁鏄剧ず
+		/// </summary>
+		/// <value><c>true</c> if visible; otherwise, <c>false</c>.</value>
+		public bool Visible
+		{
+			get
+			{
+				return !uiView.Hidden;
+			}
+			set
+			{
+				uiView.Hidden = !value;
+			}
+		}
+
+
+        /// <summary>
+        /// 浠庣埗瑙嗗浘閲岄潰绉婚櫎鎺�
+        /// </summary>
+        public virtual void RemoveFromParent()
+        {
+            if (Parent == null)
+            {
+                return;
+            }
+
+            Parent.Remove(this);
+        }
+
+       
+
+        Animate animate = Animate.None;
+		/// <summary>
+		/// 鍔ㄧ敾鏂瑰紡
+		/// </summary>
+		/// <value>The animate.</value>
+		public Animate Animate
+		{
+			get
+			{
+				return animate;
+			}
+			set
+			{
+				animate = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+
+				var frameBefore = RealView.Frame;
+				var frame = frameBefore;
+				switch (animate)
+				{
+					case Animate.DownToUp:
+						frame.Y += RealView.Frame.Height;
+						RealView.Frame = frame;
+						UIView.AnimateNotify(0.6f, 0.001f, UIViewAnimationOptions.CurveLinear, () =>
+						{
+							RealView.Frame = frameBefore;
+						}, null);
+						break;
+					case Animate.UpToDown:
+						frame.Y -= RealView.Frame.Height;
+						RealView.Frame = frame;
+						UIView.AnimateNotify(0.6f, 0.001f, UIViewAnimationOptions.CurveLinear, () =>
+						{
+							RealView.Frame = frameBefore;
+						}, null);
+						break;
+					case Animate.LeftToRight:
+						System.Threading.Tasks.Task.Run(() =>
+						{
+							System.Threading.Thread.Sleep(1);
+							Application.RunOnMainThread(() =>
+							{
+								UIView.BeginAnimations("");
+								UIView.SetAnimationCurve(UIViewAnimationCurve.EaseInOut);
+								UIView.SetAnimationDuration(1.0);
+								UIView.SetAnimationTransition(UIViewAnimationTransition.FlipFromLeft, RealView, true);// cache:YES];
+								UIView.CommitAnimations();
+							});
+						});
+						break;
+					case Animate.RightToLeft:
+						System.Threading.Tasks.Task.Run(() =>
+						{
+							System.Threading.Thread.Sleep(1);
+							Application.RunOnMainThread(() =>
+							{
+								UIView.BeginAnimations("");
+								UIView.SetAnimationCurve(UIViewAnimationCurve.EaseInOut);
+								UIView.SetAnimationDuration(1.0);
+								UIView.SetAnimationTransition(UIViewAnimationTransition.FlipFromRight, RealView, true);// cache:YES];
+								UIView.CommitAnimations();
+							});
+						});
+						break;
+                    case Animate.Rotation:
+                        rotation();
+						break;
+
+				}
+
+			}
+		}
+        void rotation()
+        {
+            UIView.Animate(4, 0, UIViewAnimationOptions.CurveLinear, () =>
+            {
+                RealView.Transform = CGAffineTransform.Rotate(RealView.Transform, 3.1415926535898f / 2);
+            }, () =>
+            {
+                if (IsCanRefresh)
+                    rotation();
+            });
+        }
+
+		/// <summary>
+		///  閫忔槑搴﹁缃�
+		/// </summary>
+		/// <value>The alpha.</value>
+		public nfloat Alpha
+		{
+			get
+			{
+				return uiView.Alpha;
+			}
+			set
+			{
+				uiView.Alpha = value;
+			}
+		}
+
+
+
+
+
+        //4涓渾瑙掑垎鍒搴旂殑鍊�
+        //float topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius;
+        ///鏈疄鐜帮紝浠e畬鍠�
+        //public void SetAloneRadius(float topLeft, float topRight, float bottomLeft, float bottomRight)
+        //{
+        //    IsSetAloneRadius = true;
+        //    topLeftRadius = topLeft;
+        //    topRightRadius = topRight;
+        //    bottomLeftRadius = bottomLeft;
+        //    bottomRightRadius = bottomRight;
+        //    RefreshAloneCorner();
+        //}
+
+        //鏄惁鍗曠嫭璁剧疆鍦嗚
+        private bool IsSetAloneRadius;
+        float mAloneRadius;
+        float mRadiusId;
+        /// <summary>
+        /// 鎸囧畾浣嶇疆 璁剧疆鐩稿悓鐨勫渾瑙�
+        /// </summary>
+        public void SetCornerWithSameRadius(float mRadius, int mSetID)
+        {
+            //bool btopLeft, btopRight, bbottomLeft, bbottomRight;
+            IsSetAloneRadius = true;
+            mAloneRadius = mRadius;
+            mRadiusId = mSetID;
+            RefreshAloneCorner();
+        }
+
+        /// <summary>
+        /// 鏇存柊鍦嗚
+        /// </summary>
+        /// <returns>The corner.</returns>
+        private void RefreshAloneCorner()
+        {
+            BackgroundColor = backgroundColor;
+            uiView.Layer.MasksToBounds = true;
+            UIRectCorner corner = (UIRectCorner)(mRadiusId);
+            if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+            {
+                uiView.Layer.CornerRadius = mAloneRadius;
+                uiView.Layer.MaskedCorners = (CACornerMask)corner;
+            }
+            else
+            {
+                UIBezierPath mUIBezierPath = UIBezierPath.FromRoundedRect(uiView.Bounds, corner, new CoreGraphics.CGSize(mAloneRadius, mAloneRadius));
+                CAShapeLayer mCAShapeLayer = new CAShapeLayer();
+                mCAShapeLayer.Frame = uiView.Bounds;
+                mCAShapeLayer.Path = mUIBezierPath.CGPath;
+                uiView.Layer.Mask = mCAShapeLayer;
+            }
+            uiView.Layer.BorderWidth = BorderWidth;
+            byte r, g, b, a;
+            r = (byte)(borderColor / 256 / 256 % 256);
+            g = (byte)(borderColor / 256 % 256);
+            b = (byte)(borderColor % 256);
+            a = (byte)(borderColor / 256 / 256 / 256 % 256);
+            uiView.Layer.BorderColor = new CGColor(r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f);
+
+        }
+
+
+
+        uint radius;
+		/// <summary>
+		/// 鍦嗚澶у皬
+		/// </summary>
+		/// <value>The corner.</value>
+		public uint Radius
+		{
+			get
+			{
+				return radius;
+			}
+			set
+			{
+                IsSetAloneRadius = false;
+                radius = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				refreshCorner();
+			}
+		}
+
+
+		/// <summary>
+		/// 鏇存柊鍦嗚
+		/// </summary>
+		/// <returns>The corner.</returns>
+		void refreshCorner()
+		{
+			BackgroundColor = backgroundColor;
+
+			if (Radius == 0)
+			{
+				return;
+			}
+
+			uiView.Layer.MasksToBounds = true;
+			uiView.Layer.CornerRadius = Radius;
+			uiView.Layer.BorderWidth = BorderWidth;
+
+			byte r, g, b, a;
+			r = (byte)(borderColor / 256 / 256 % 256);
+			g = (byte)(borderColor / 256 % 256);
+			b = (byte)(borderColor % 256);
+			a = (byte)(borderColor / 256 / 256 / 256 % 256);
+			uiView.Layer.BorderColor = new CGColor(r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f);
+
+		}
+
+
+		uint borderWidth;
+		/// <summary>
+		/// 杈规绾垮ぇ灏�
+		/// </summary>
+		/// <value>The width of the border.</value>
+		public uint BorderWidth
+		{
+			get
+			{
+				return borderWidth;
+			}
+			set
+			{
+				borderWidth = value;
+				Radius = radius;
+			}
+		}
+
+		uint borderColor = 0xFFCCCCCC;
+		/// <summary>
+		/// 杈规绾块鑹�
+		/// </summary>
+		public uint BorderColor
+		{
+			get
+			{
+				return borderColor;
+			}
+			set
+			{
+				borderColor = value;
+				Radius = radius;
+			}
+		}
+
+        /// <summary>
+        /// 鏃嬭浆View
+        /// </summary>
+        /// <value>鏃嬭浆瑙掑害</value>
+        public void SetRotation(float mRotation)
+        {
+            if (mRotation > 180) {
+                mRotation = mRotation - 360f;
+            }
+            var mCGAffineTransform = CGAffineTransform.MakeRotation((nfloat)(mRotation * Math.PI / 180.0));
+            uiView.Transform = mCGAffineTransform;
+        }
+
+        /// <summary>
+        /// 璁剧疆闃村奖鏁堟灉
+        /// </summary>
+        /// <value>鏄惁鏄剧ず闃村奖</value>
+        public void SetViewShadow(bool bShow, float mOffsetY = 5.0f)
+        {
+            if (bShow)
+            {   
+                uiView.Layer.ShadowOffset = new CGSize(0, mOffsetY);
+                uiView.Layer.ShadowOpacity = 0.5f;
+                uiView.Layer.ShadowColor =  UIColor.Gray.CGColor;
+                uiView.ClipsToBounds = false;
+            }
+            else
+            {
+                //uiView.Layer.ShadowOffset = new CGSize(0, 0);
+                //uiView.Layer.ShadowOpacity = 0f;
+                uiView.ClipsToBounds = true;
+            }
+
+        }
+
+    }
+
+    /// <summary>
+    /// 瑙嗗浘澶у皬
+    /// </summary>
+    public class Size
+	{
+		/// <summary>
+		/// 瑙嗗浘澶у皬
+		/// </summary>
+		/// <param name="width">Width.</param>
+		/// <param name="height">Height.</param>
+		public Size(int width,int height)
+		{
+			Width = width;
+			Height = height;
+		}
+			
+		
+		/// <summary>
+		/// 瀹藉害
+		/// </summary>
+		public int Width {
+			get;
+			set;
+		}
+		/// <summary>
+		/// 楂樺害
+		/// </summary>
+		public int Height {
+			get;
+			set;
+		}
+
+	}
+
+	/// <summary>
+	/// 鍐呰竟璺�
+	/// </summary>
+	public class Padding
+	{
+		/// <summary>
+		/// 鍐呰竟璺�
+		/// </summary>
+		/// <param name="top">Top.</param>
+		/// <param name="left">Left.</param>
+		/// <param name="bottom">Bottom.</param>
+		/// <param name="right">Right.</param>
+		public Padding(int top,int left,int bottom,int right)
+		{
+			Top = top;
+			Left = left;
+			Bottom = bottom;
+			Right = right;
+		}
+		/// <summary>
+		/// 椤堕儴
+		/// </summary>
+		public int Top {
+			get;
+			set;
+		}
+		/// <summary>
+		/// 宸﹁竟
+		/// </summary>
+		public int Left {
+			get;
+			set;
+		}
+		/// <summary>
+		/// 搴曢儴
+		/// </summary>
+		public int Bottom {
+			get;
+			set;
+		}
+		/// <summary>
+		/// 鍙宠竟
+		/// </summary>
+		public int Right {
+			get;
+			set;
+		}
+	}
+
+	/// <summary>
+	/// 鐐瑰嚮鏃跺熀鏈弬鏁�
+	/// </summary>
+	public class MouseEventArgs : EventArgs
+	{
+		/// <summary>
+		/// X鍧愭爣
+		/// </summary>
+		public float X;
+		/// <summary>
+		/// Y鍧愭爣
+		/// </summary>
+		public float Y;
+	}
+
+	/// <summary>
+	/// 鐐瑰嚮浜嬩欢
+	/// </summary>
+	enum EventActions
+	{
+		/// <summary>
+		/// Down
+		/// </summary>
+		Down,
+		/// <summary>
+		/// Move
+		/// </summary>
+		Move,
+		/// <summary>
+		/// UP
+		/// </summary>
+		Up,
+		/// <summary>
+		/// Cancel
+		/// </summary>
+		Cancel,
+	}
+}
diff --git a/Shared.IOS/UI/ViewGroup.cs b/Shared.IOS/UI/ViewGroup.cs
new file mode 100644
index 0000000..69523fa
--- /dev/null
+++ b/Shared.IOS/UI/ViewGroup.cs
@@ -0,0 +1,293 @@
+using System;
+using System.Collections.Generic;
+using Shared.IO;
+using UIKit;
+
+namespace Shared
+{
+    
+    /// <summary>
+    /// ViewGroup 鎸夐敭
+    /// </summary>
+    public class ViewGroup : View
+	{
+        /// <summary>
+        /// 褰撳墠鐪熷疄鐨勬帶浠�
+        /// </summary>
+        internal UIView realViewGroup;
+		/// <summary>
+		/// 褰撳墠鎺т欢
+		/// </summary>
+		/// <value>The view group.</value>
+		internal UIView viewGroup
+		{
+			get
+			{
+				return uiView as UIView;
+			}
+			set
+			{
+				uiView = value;
+
+				uiView.AddSubview(backgroundImage);
+			}
+		}
+
+		/// <summary>
+		/// 褰撳墠鑳屾櫙鍥�
+		/// </summary>
+		UIKit.UIImageView backgroundImage = new UIImageView() { Tag = int.MinValue};
+
+		/// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+		{
+			get
+			{
+				return base.Width;
+			}
+			set
+			{
+				base.Width = value;
+
+				if (!IsCanRefresh)
+					return;
+				var frame = backgroundImage.Frame;
+				frame.Width = base.Width;
+				backgroundImage.Frame = frame;
+
+				var frame2 = realViewGroup.Frame;
+				frame2.Width = base.Width;
+				realViewGroup.Frame = frame2;
+			}
+		}
+
+		/// <summary>
+		/// 鎺т欢鐨勯珮搴�
+		/// </summary>
+		/// <value>The height.</value>
+		public override int Height
+		{
+			get
+			{
+				return base.Height;
+			}
+			set
+			{
+				base.Height = value;
+
+				if (!IsCanRefresh)
+					return;
+				
+				var frame = backgroundImage.Frame;
+				frame.Height = base.Height;
+				backgroundImage.Frame = frame;
+
+				var frame2 = realViewGroup.Frame;
+				frame2.Height = base.Height;
+				realViewGroup.Frame = frame2;
+			}
+		}
+
+
+		/// <summary>
+		/// 澧炲姞瀛愭帶浠�
+		/// </summary>
+		/// <param name="view">View.</param>
+		public virtual void AddChidren(View view)
+		{
+			view.Parent = this;
+			viewList.Add(view);
+			realViewGroup.AddSubview(view.RealView);
+			if (!IsCanRefresh)
+			{
+				return;
+			}
+			view.Refresh();
+
+            addParentToAllSubViews(view);
+
+            if (view is ViewGroup)
+			{
+				var tempViewGroup = (ViewGroup)view;
+				for (int i = 0; i < tempViewGroup.ChildrenCount; i++)
+				{
+					tempViewGroup.GetChildren(i).Refresh();
+				}
+			}
+        }
+
+        internal void addParentToAllSubViews(View view)
+        {
+            if (view is ViewGroup)
+            {
+                var viewgroup = view as ViewGroup;
+                for (int i = 0; i < viewgroup.viewList.Count; i++)
+                {
+                    var _view = viewgroup.viewList[i];
+                    if (_view == null) continue;
+                    _view.Parent = viewgroup;
+                    
+                    addParentToAllSubViews(_view);//閫掑綊锛屽皢瀛愭帶浠舵墍鍖呭惈鐨勬帶浠朵篃涓�骞剁Щ闄わ紱
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鏁伴噺
+        /// </summary>
+        /// <value>The children count.</value>
+        public virtual int ChildrenCount { get { return viewList.Count; } }
+
+		/// <summary>
+		/// 鎺т欢鍒楄〃
+		/// </summary>
+		internal System.Collections.Generic.List<View> viewList = new System.Collections.Generic.List<View>();
+
+		string backgroundImagePath;
+		/// <summary>
+		/// 鑳屾櫙鍥剧墖
+		/// </summary>
+		/// <value>The background image path.</value>
+		public virtual string BackgroundImagePath
+		{
+			get
+			{
+				return backgroundImagePath;
+			}
+			set
+			{
+				backgroundImagePath = value;
+
+				if (!IsCanRefresh || Radius != 0)
+				{
+					return;
+				}
+
+                backgroundImage.Image = UIImage.FromFile(FileUtils.GetImageFilePath(backgroundImagePath));
+
+			}
+		}
+
+		/// <summary>
+		/// 鍒锋柊鐣岄潰
+		/// </summary>
+		public override void Refresh()
+		{
+			base.Refresh();
+			BackgroundImagePath = backgroundImagePath;
+		}
+
+		/// <summary>
+		/// 绉婚櫎鎺т欢
+		/// </summary>
+		/// <param name="view">View.</param>
+		internal virtual void Remove(View view)
+		{
+			if (view == null)
+			{
+				return;
+			}
+
+			viewList.Remove(view);
+            if (view.RealView.Superview != null)
+            {
+                view.RealView.RemoveFromSuperview();
+            }
+            view.Parent = null;
+		}
+
+        internal virtual void removeChildParent()
+        {
+            for (int i = 0; i < viewList.Count; i++)
+            {
+                var view = viewList[i];
+                if (view == null) continue;
+                if (view is ViewGroup)
+                {
+                    (view as ViewGroup).removeChildParent();
+                }
+                view.Parent = null;
+            }
+        }
+
+        public override void RemoveFromParent()
+        {
+            removeChildParent();
+            base.RemoveFromParent();
+        }
+
+
+
+        /// <summary>
+        /// 娓呯┖鎵�鏈夌殑鎺т欢
+        /// </summary>
+        public virtual void RemoveAll()
+		{
+			while (0 < viewList.Count)
+			{
+                GetChildren(0)?.RemoveFromParent();
+            }
+		}
+
+		/// <summary>
+		/// 绉婚櫎鎸囧畾绱㈠紩瀵硅薄
+		/// </summary>
+		/// <param name="index">Index.</param>
+		public virtual void RemoveAt(int index)
+		{
+            //Remove(GetChildren(index));
+            GetChildren(index)?.RemoveFromParent();
+
+        }
+
+		/// <summary>
+		/// 鑾峰彇鎸囧畾绱㈠紩瀵硅薄
+		/// </summary>
+		/// <returns>The children.</returns>
+		/// <param name="index">Index.</param>
+		public View GetChildren(int index)
+		{
+			if (index < 0 || viewList.Count - 1 < index)
+			{
+				return null;
+			}
+			return viewList[index];
+		}
+
+		/// <summary>
+		/// 鏍规嵁绫诲瀷绉婚櫎鎺т欢
+		/// </summary>
+		/// <param name="type">Type.</param>
+		public void RemoveViewByType(System.Type type)
+		{
+			for (int i = 0; i < viewList.Count; i++)
+			{
+				if (viewList[i].GetType() == type)
+				{
+                    viewList[i].RemoveFromParent();
+					i--;
+				}
+			}
+		}
+
+		/// <summary>
+		/// 鏍规嵁Tag绉婚櫎鎺т欢
+		/// </summary>
+		/// <param name="type">Type.</param>
+		public void RemoveViewByTag(object tag)
+		{
+			for (int i = 0; i < viewList.Count; i++)
+			{
+				if (viewList[i].Tag == tag)
+				{
+                    viewList[i].RemoveFromParent();
+					i--;
+				}
+			}
+		}
+
+	}
+}
+
diff --git a/Shared.IOS/UI/WaveSeekBar.cs b/Shared.IOS/UI/WaveSeekBar.cs
new file mode 100644
index 0000000..c194d86
--- /dev/null
+++ b/Shared.IOS/UI/WaveSeekBar.cs
@@ -0,0 +1,381 @@
+using System;
+//using Shared.I;
+using Shared.IOS.TBL;
+
+
+namespace Shared
+{
+
+    /// <summary>
+    /// HDLWaveSeekbar 鎺т欢
+    /// </summary>
+    public class WaveSeekBar : View
+    {
+        /// <summary>
+        ///  褰撳墠瑙嗗浘
+        /// </summary>
+        /// <value>The HDLWaveSeekbar.</value>
+        HDLWaveSeekbar mHDLWaveSeekbar
+        {
+            get
+            {
+                return uiView as HDLWaveSeekbar;
+            }
+            set
+            {
+                uiView = value;
+            }
+        }
+
+        
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public WaveSeekBar()
+        {
+            mHDLWaveSeekbar = new HDLWaveSeekbar
+            {
+                //Frame = new CoreGraphics.CGRect(0, 0, this.Width, this.Height),
+                //mHDLWaveSeekbar.Frame = new CoreGraphics.CGRect(0, 0, 1024, 1024);
+                MProgressChangedDelegate = new OnProgressChangeListener(this)
+            };
+
+        }
+
+
+        /// <summary>
+        /// 鍒锋柊甯冨眬
+        /// </summary>
+        private void RefreshFrame()
+        {
+            mHDLWaveSeekbar.InitWithFrameWaveSeekBar(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+        }
+
+        /// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+        {
+            get
+            {
+                return base.Width;
+            }
+            set
+            {
+                base.Width = value;
+                RefreshFrame();
+                //mHDLWaveSeekbar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨勯珮搴�
+        /// </summary>
+        public override int Height
+        {
+            get
+            {
+                return base.Height;
+            }
+            set
+            {
+                base.Height = value;
+                RefreshFrame();
+
+            }
+        }
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int X
+        {
+            get
+            {
+                return base.X;
+            }
+            set
+            {
+                base.X = value;
+                RefreshFrame();
+                //mHDLWaveSeekbar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 鎺т欢鐨刋鍧愭爣
+        /// </summary>
+        public override int Y
+        {
+            get
+            {
+                return base.Y;
+            }
+            set
+            {
+                base.Y = value;
+                RefreshFrame();
+                //mHDLWaveSeekbar.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height));
+
+            }
+        }
+
+
+        /// <summary>
+        /// 杩涘害鍊兼樉绀哄崟浣�
+        /// </summary>
+        /// <value>鍗曚綅瀛楃</value>
+        public String ProgressBarUnitSring
+        {
+            set
+            {
+                mHDLWaveSeekbar.SetProgressBarUnitSring(value);
+            }
+        }
+
+        int minValue = 0;
+        int maxValue = 100;
+        /// <summary>
+        /// 杩涘害鍊兼渶澶у��
+        /// </summary>
+        /// <value>鏈�澶у��</value>
+        public int MaxValue
+        {
+            set
+            {
+                maxValue = value;
+                mHDLWaveSeekbar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 杩涘害鍊兼渶灏忓��
+        /// </summary>
+        /// <value>鏈�灏忓��</value>
+        public int MinValue
+        {
+            set
+            {
+                minValue = value;
+                mHDLWaveSeekbar.SetMinAndMaxValue(minValue, maxValue);
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊�
+        /// </summary>
+        /// <value>杩涘害鍊�</value>
+        public int Progress
+        {
+            set
+            {
+                mHDLWaveSeekbar.SetProgress(value);
+            }
+
+            get
+            {
+
+                return (int)mHDLWaveSeekbar.MProgress;
+            }
+        }
+
+        /// <summary>
+        /// 鑳屾櫙杈规瀹藉害
+        /// </summary>
+        /// <value>鍗婂緞</value>
+        public int WaveBorderWidth
+        {
+            set
+            {
+                mHDLWaveSeekbar.SetBorderWidth(value);
+            }
+        }
+
+        /// <summary>
+        /// 娉㈡氮杩涘害棰滆壊
+        /// </summary>
+        /// <value>娉㈡氮杩涘害棰滆壊</value>
+        public uint WaveColor
+        {
+            set
+            {
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+                mHDLWaveSeekbar.MWaveProgressBarColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                
+            }
+        }
+
+
+        /// <summary>
+        /// 鑳屾櫙杈规棰滆壊
+        /// </summary>
+        /// <value>鑳屾櫙杈规棰滆壊</value>
+        public uint WaveBorderColor
+        {
+            set
+            {
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+                mHDLWaveSeekbar.MWaveBorderColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+             
+            }
+        }
+
+        /// <summary>
+        /// 鍦嗚
+        /// </summary>
+        /// <value>鍦嗚</value>
+        public int CornerRadius
+        {
+            set
+            {
+                mHDLWaveSeekbar.MCornerRadius = value;
+            }
+        }
+
+        ///// <summary>
+        ///// 杩涘害鍖哄煙鑳屾櫙榛樿棰滆壊
+        ///// </summary>
+        ///// <value>杩涘害鍖哄煙鑳屾櫙榛樿棰滆壊</value>
+        //public uint WaveBgColor
+        //{
+        //    set
+        //    {
+        //        byte r, g, b, a;
+        //        r = (byte)(value / 256 / 256 % 256);
+        //        g = (byte)(value / 256 % 256);
+        //        b = (byte)(value % 256);
+        //        a = (byte)(value / 256 / 256 / 256 % 256);
+
+
+        //    }
+        //}
+
+
+        /// <summary>
+        /// 杩涘害鏉′笌杈规杈硅窛
+        /// </summary>
+        /// <value>鍗婂緞</value>
+        public int WavePadding
+        {
+            set
+            {
+                mHDLWaveSeekbar.SetWavePadding(value);
+            }
+        }
+
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧棰滆壊
+        /// </summary>
+        /// <value>鏂囧瓧棰滆壊</value>
+        public uint ProgressTextColor
+        {
+            set
+            {
+
+                byte r, g, b, a;
+                r = (byte)(value / 256 / 256 % 256);
+                g = (byte)(value / 256 % 256);
+                b = (byte)(value % 256);
+                a = (byte)(value / 256 / 256 / 256 % 256);
+
+                mHDLWaveSeekbar.MProgressTextColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+                //mHDLWaveSeekbar.SetProgressTextColor(UIKit.UIColor.FromRGBA(r,  g, b, a));
+
+            }
+        }
+
+        /// <summary>
+        /// 褰撳墠杩涘害鍊兼樉绀虹殑鏂囧瓧澶у皬
+        /// </summary>
+        /// <value>鏂囧瓧澶у皬</value>
+        public int ProgressTextSize
+        {
+            set
+            {
+                //set => mHDLWaveSeekbar.SetProgressTextSize(value);
+                mHDLWaveSeekbar.MProgressTextSize = value;
+            }
+
+        }
+
+        /// <summary>
+        /// 鏄惁鍙互婊戝姩
+        /// </summary>
+        /// <value>鏄惁鍙互婊戝姩</value>
+        public bool IsClickable
+        {
+            set
+            {
+                mHDLWaveSeekbar.IsClickable = value;
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁鏄剧ず杩涘害鏂囧瓧
+        /// </summary>
+        /// <value>鏄惁鏄剧ず杩涘害鏂囧瓧</value>
+        public bool IsProgressTextShow
+        {
+            set
+            {
+                mHDLWaveSeekbar.IsProgressTextShow = value;
+            }
+        }
+
+
+
+
+
+        /// <summary>
+        /// EventHandler
+        /// </summary>
+        public EventHandler<int> OnProgressChangedEvent;
+        public EventHandler<bool> OnStartTrackingTouchEvent;
+        public EventHandler<int> OnStopTrackingTouchEvent;
+
+        ///// <summary>
+        ///// OnProgressChangeListener 缁ф壙鍝嶅簲浜嬩欢
+        ///// </summary>
+        OnProgressChangeListener mOnProgressChangeListener;
+
+        public class OnProgressChangeListener : HDLWaveSeekbarProgressChangedDelegate
+        {
+
+            [Weak] WaveSeekBar _WaveSeekBar;
+
+            public OnProgressChangeListener(WaveSeekBar view)
+            {
+                _WaveSeekBar = view;
+            }
+
+            public override void OnProgressChanged(int mProgress)
+            {
+                _WaveSeekBar.OnProgressChangedEvent?.Invoke(this, mProgress);
+            }
+
+            public override void OnStartTrackingTouch()
+            {
+                _WaveSeekBar.OnStartTrackingTouchEvent?.Invoke(this, true);
+            }
+
+            public override void OnStopTrackingTouch(int mProgress)
+            {
+                _WaveSeekBar.OnStopTrackingTouchEvent?.Invoke(this, mProgress);
+            }
+        }
+
+    }
+}
diff --git a/Shared.IOS/UI/WebView.cs b/Shared.IOS/UI/WebView.cs
new file mode 100644
index 0000000..188b0c2
--- /dev/null
+++ b/Shared.IOS/UI/WebView.cs
@@ -0,0 +1,34 @@
+锘縰sing System;
+
+namespace Shared
+{
+	public class WebView:View
+	{
+
+		private UIKit.UIWebView uiWebView
+		{
+			get
+			{
+				return this.uiView as UIKit.UIWebView;
+			}
+			set
+			{
+				this.uiView = value;
+			}
+		}
+
+
+		public WebView ()
+		{
+			this.uiWebView = new UIKit.UIWebView { };
+			this.uiWebView.ScalesPageToFit = true;
+			this.uiWebView.DataDetectorTypes = UIKit.UIDataDetectorType.All;
+		}
+
+		public void Load(string url)
+		{
+			uiWebView.LoadRequest ( Foundation.NSUrlRequest.FromUrl (  Foundation.NSUrl .FromString(url)));
+		}
+	}
+}
+
diff --git a/Shared.IOS/UI/WiimuUPnP.cs b/Shared.IOS/UI/WiimuUPnP.cs
new file mode 100644
index 0000000..fefb994
--- /dev/null
+++ b/Shared.IOS/UI/WiimuUPnP.cs
@@ -0,0 +1,91 @@
+锘縰sing System;
+using Foundation;
+
+namespace Shared
+{
+	
+
+    public static class WiimuUPnP
+    {
+        /// <summary>
+        /// 鑾峰彇褰撳墠WIFI鐨勫悕绉�
+        /// </summary>
+        /// <value>The ssid.</value>
+        public static string SSID
+        {
+            get
+            {
+                string[] supportedInterface;
+                SystemConfiguration.CaptiveNetwork.TryGetSupportedInterfaces(out supportedInterface);
+                foreach (var s in supportedInterface)
+                {
+                    NSDictionary nSDictionary;
+                    SystemConfiguration.CaptiveNetwork.TryCopyCurrentNetworkInfo(s, out nSDictionary);
+                    if (nSDictionary != null)
+                    {
+                        return nSDictionary.ValueForKey(SystemConfiguration.CaptiveNetwork.NetworkInfoKeySSID).ToString();
+                    }
+                }
+                return null;
+            }
+        }
+        static Action<string> currentAction;
+        /// <summary>
+        /// 鍚姩閰嶇疆鏃犵嚎涓婄綉
+        /// </summary>
+        /// <returns>The start.</returns>
+        /// <param name="password">瀵嗙爜</param>
+        /// <param name="a">閰嶇疆瀹屾垚鍚庡弽棣堢殑缁撴灉</param>
+        public static void Start(string password,Action<string> action)
+        {
+            if (SSID == null)
+            {
+                return;
+            }
+
+            Stop();
+            dateTime = DateTime.Now;
+            currentAction = action;
+            Shared.WiimuSmartlink.SharedInstance.StartProvision(SSID, password, (obj) => {
+                if(action!=null){
+                    action(obj);
+                    Stop();
+                }
+            });
+        }
+
+        static WiimuUPnP()
+        {
+            //瀹氭椂妫�鏌�
+            System.Threading.Tasks.Task.Run(() =>
+            {
+                while (true)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    if (30 <= (System.DateTime.Now - dateTime).TotalSeconds)
+                    {
+                        Stop();
+                        if (currentAction != null)
+                        {
+                            currentAction("TimeOut");
+                        }
+                    }
+                }
+            });
+        }
+
+        /// <summary>
+        /// 璁板綍寮�濮嬫椂闂�
+        /// </summary>
+        static DateTime dateTime = DateTime.MaxValue;
+
+        /// <summary>
+        /// 鍋滄閰嶇疆鏃犵嚎涓婄綉
+        /// </summary>
+        public static void Stop()
+        {
+            dateTime = DateTime.MaxValue;
+            Shared.WiimuSmartlink.SharedInstance.StopProvision((obj) => { });
+        }
+    }
+}
diff --git a/Shared.IOS/Utils/HDLUtils.cs b/Shared.IOS/Utils/HDLUtils.cs
new file mode 100644
index 0000000..ebf00aa
--- /dev/null
+++ b/Shared.IOS/Utils/HDLUtils.cs
@@ -0,0 +1,35 @@
+锘縰sing System;
+using UIKit;
+
+namespace Shared
+{
+    public class HDLUtils
+    {
+
+        public static int RectCornerTopLeft = 1;
+        public static int RectCornerTopRight = 2;
+        public static int RectCornerBottomLeft = 4;
+        public static int RectCornerBottomRight = 8;
+
+
+        public static void RestartApp() {
+
+            //Com.Hdl.Widget.
+
+            BaseApplicationDelegate DD = (BaseApplicationDelegate)UIApplication.SharedApplication.Delegate;
+            DD.setHDLRootViewController();
+        }
+
+
+        /// <summary>
+        /// 鐢熸垚浜岀淮鐮�
+        /// </summary>
+        public static UIImage createQRCode(string url, int size = 500)
+        {
+            //return HDLUtlisXM.CreateQRCode(url, size);
+
+            return null;
+        }
+
+    }
+}
diff --git a/Shared.IOS/Utils/TouchIDUtils.cs b/Shared.IOS/Utils/TouchIDUtils.cs
new file mode 100644
index 0000000..2c9646c
--- /dev/null
+++ b/Shared.IOS/Utils/TouchIDUtils.cs
@@ -0,0 +1,110 @@
+锘縰sing System;
+using Shared.IOS.TBL;
+
+
+namespace Shared
+{
+    public class TouchIDUtils
+    {
+
+        public enum TouchIDSupperType
+        {
+            TouchID,
+            FaceID,
+            None
+        }
+
+        public enum TouchIDState
+        {
+            NotSupport,
+            Success,
+            Fail,
+            InputPassword,
+            TouchIDLockout
+        }
+
+
+        public static TouchIDSupperType getTouchIDSupperType()
+        {
+
+            TouchIDSupperType type = TouchIDSupperType.None;
+
+            HDLTouchIDSupperType mHDLTouchIDSupperType = HDLTouchID.SharedInstance.HDL_canSupperBiometrics;
+
+            if (mHDLTouchIDSupperType == HDLTouchIDSupperType.TouchID)
+            {
+                type = TouchIDSupperType.TouchID;
+            }
+            else if (mHDLTouchIDSupperType == HDLTouchIDSupperType.FaceID)
+            {
+                type = TouchIDSupperType.FaceID;
+            }
+            else
+            {
+                type = TouchIDSupperType.None;
+            }
+
+            return type;
+
+        }
+
+
+        public EventHandler<TouchIDState> OnHDLTouchIDStateBackEvent;
+
+
+        //StateBlock mStateBlock;
+
+        /// <summary>
+        /// 寮圭獥鎸囩汗楠岃瘉 descTitle锛氳緭鍏ュ瘑鐮侀獙璇佹寜閽爣棰�   mLocalizedReason锛歍ouch鏄剧ず鐨勬弿杩�
+        /// </summary>
+        /// <value>descTitle锛氳緭鍏ュ瘑鐮侀獙璇佹寜閽爣棰�   mLocalizedReason锛歍ouch鏄剧ず鐨勬弿杩�</value>
+        public void showTouchIDWithDescribe(string descTitle, string mLocalizedReason)
+        {
+            if(descTitle == null)
+            {
+                descTitle = "杈撳叆瀵嗙爜楠岃瘉";
+            }
+
+            if (mLocalizedReason == null)
+            {
+                mLocalizedReason = "閫氳繃Home閿獙璇佸凡鏈夋寚绾�";
+            }
+
+
+            HDLTouchID.SharedInstance.HDL_showTouchIDWithDescribe(descTitle, mLocalizedReason, (mState, mError) => {
+                if (mState == HDLTouchIDState.NotSupport)
+                {
+                    OnHDLTouchIDStateBackEvent?.Invoke(this, TouchIDState.NotSupport);
+                }
+                else if (mState == HDLTouchIDState.Success)
+                {
+                    OnHDLTouchIDStateBackEvent?.Invoke(this, TouchIDState.Success);
+                }
+                else if (mState == HDLTouchIDState.InputPassword)
+                {
+                    OnHDLTouchIDStateBackEvent?.Invoke(this, TouchIDState.InputPassword);
+                }
+                else if (mState == HDLTouchIDState.TouchIDLockout)
+                {
+                    OnHDLTouchIDStateBackEvent?.Invoke(this, TouchIDState.TouchIDLockout);
+                }
+            });
+
+        }
+
+
+
+
+        // 鍗曚緥
+        static TouchIDUtils ourInstance = new TouchIDUtils();
+
+        public static TouchIDUtils Instance
+        {
+            get
+            {
+                return ourInstance;
+            }
+        }
+
+    }
+}
diff --git a/Shared.IOS/Volume.cs b/Shared.IOS/Volume.cs
new file mode 100755
index 0000000..5022927
--- /dev/null
+++ b/Shared.IOS/Volume.cs
@@ -0,0 +1,77 @@
+锘縰sing System;
+using AVFoundation;
+using Foundation;
+using MediaPlayer;
+using Shared;
+using UIKit;
+
+namespace com.hdl.on
+{
+    public static class Volume
+    {
+        /// <summary>
+        /// 澹伴煶鍙樺寲浜嬩欢
+        /// </summary>
+        public static Action<int> VolumeChange;
+        /// <summary>
+        /// 璁剧疆褰撳墠闊抽噺
+        /// </summary>
+        /// <param name="volume">Volume.</param>
+        public static int MusicVolume
+        {
+            set
+            {
+                if ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
+                {
+                    return;
+                }
+                foreach (var view in BaseViewController.MPVolumeView.Subviews)
+                {
+                    if (view.GetType().Name == "UISlider")
+                    {
+                        (view as UISlider).SetValue((float)Math.Round(value / 100.0f, 2, MidpointRounding.AwayFromZero), false);
+                        beforeVolume = (view as UISlider).Value;
+                        //System.Console.WriteLine("鎺ユ敹鍒版洿鏂伴煶閲忥細" + (float)Math.Round(value / 100.0f, 2, MidpointRounding.AwayFromZero) + "  " + beforeVolume);
+                        break;
+                    }
+                }
+            }
+        }
+        static System.DateTime dateTime = DateTime.MinValue;
+        /// <summary>
+        /// 涔嬪墠鐨勯煶閲�
+        /// </summary>
+        static float beforeVolume;
+        public static void Init()
+        {
+            NSNotificationCenter.DefaultCenter.AddObserver(new NSString("AVSystemController_SystemVolumeDidChangeNotification"),
+                                                                       (obj) =>
+                                                                       {
+                                                                           //濡傛灉搴旂敤杩涘叆鍚庡彴锛屼笉鎵ц闊抽噺鍙樺寲
+                                                                           if (UIApplication.SharedApplication.ApplicationState != UIApplicationState.Active || "Audio/Video" != obj.UserInfo.ObjectForKey(new NSString("AVSystemController_AudioCategoryNotificationParameter")).ToString())
+                                                                           {
+                                                                               return;
+                                                                           }
+                                                                           //System.Console.WriteLine("鎺ユ敹鍒伴煶閲忓彉鍖栦簨浠�");
+                                                                           dateTime = DateTime.Now;
+                                                                           var tempValue = obj.UserInfo.ObjectForKey(new NSString("AVSystemController_AudioVolumeNotificationParameter"));
+                                                                           if (tempValue == null)
+                                                                           {
+                                                                               return;
+                                                                           }
+                                                                           try
+                                                                           {
+                                                                               //鏈夋椂杞崲澶辫触锛屽彲鑳芥湁鏃跺�兼湁闂
+                                                                               var volume = 100 * float.Parse(tempValue.ToString());
+                                                                               volume = (float)Math.Round(volume, 2, MidpointRounding.AwayFromZero);
+                                                                               //System.Console.WriteLine("闊抽噺鍙樺寲浜嬩欢锛�" + volume + "  " + beforeVolume * 100);
+                                                                               if (VolumeChange != null && beforeVolume * 100 != volume)
+                                                                               {
+                                                                                   VolumeChange((int)volume);
+                                                                               }
+                                                                           }
+                                                                           catch { }
+                                                                       });
+        }
+    }
+}
diff --git a/Shared.IOS/packages.config b/Shared.IOS/packages.config
new file mode 100644
index 0000000..5dcc683
--- /dev/null
+++ b/Shared.IOS/packages.config
@@ -0,0 +1,10 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.CSharp" version="4.7.0" targetFramework="xamarinios10" />
+  <package id="Microsoft.NETCore.Platforms" version="3.1.0" targetFramework="xamarinios10" />
+  <package id="NETStandard.Library" version="2.0.3" targetFramework="xamarinios10" />
+  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="xamarinios10" />
+  <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="xamarinios10" />
+  <package id="Xamarin.Essentials" version="1.3.1" targetFramework="xamarinios10" />
+  <package id="Xamarin.iOS.MJRefresh" version="3.2.2" targetFramework="xamarinios10" />
+</packages>
\ No newline at end of file

--
Gitblit v1.8.0