void InitializeReverseValues()
        {
            //scrollView.Hidden = true;
            //activityIndicator.Hidden = false;
            //var timer = new System.Timers.Timer();
            //timer.Interval = 50;
            //timer.Elapsed += delegate
            //{
            //timer.Stop();
            //timer.Dispose();
            InvokeOnMainThread(async() =>
            {
                CountryTextField.Text       = null;
                RegionTextField.Text        = null;
                CityTextField.Text          = null;
                DetailAddressTextField.Text = null;
                //IndexTextField.Text = null;
                //NotationTextField.Text = null;
                if (!String.IsNullOrEmpty(countryTemp))
                {
                    CountryTextField.FloatLabelTop();
                    CountryTextField.Text = countryTemp;
                }
                if (!String.IsNullOrEmpty(cityTemp))
                {
                    CityTextField.FloatLabelTop();
                    CityTextField.Text = cityTemp;
                }
                if (!String.IsNullOrEmpty(regionTemp))
                {
                    RegionTextField.FloatLabelTop();
                    RegionTextField.Text = regionTemp;
                }
                if (!String.IsNullOrEmpty(indexTemp))
                {
                    IndexTextField.FloatLabelTop();
                    IndexTextField.Text = indexTemp;
                }
                if (!String.IsNullOrEmpty(FullCompanyAddressTemp))
                {
                    DetailAddressTextField.FloatLabelTop();
                    DetailAddressTextField.Text = FullCompanyAddressTemp;
                }

                UIApplication.SharedApplication.KeyWindow.EndEditing(true);
                CoordsTextField.UserInteractionEnabled = false;
                //await Task.Delay(300);
                SetScrollViewContentSize();
                scrollView.Hidden        = false;
                activityIndicator.Hidden = true;
            });
            //};
            //timer.Start();
        }
        private void InitElements()
        {
            // Enable back navigation using swipe.
            NavigationController.InteractivePopGestureRecognizer.Delegate = null;

            new AppDelegate().disableAllOrientation = true;
            keyboard_height = (float)(View.Frame.Height / 2);
            // Fires when keyboard shows.
            //keyboardShowObserver = NSNotificationCenter.DefaultCenter.AddObserver(UIKeyboard.WillShowNotification, (notification) =>
            //{
            //    NSValue nsKeyboardBounds = (NSValue)notification.UserInfo.ObjectForKey(UIKeyboard.BoundsUserInfoKey);
            //    keyboardBounds = nsKeyboardBounds.RectangleFValue;
            //    keyboard_height = keyboardBounds.Height;
            //    //if (needToScroll)
            //    //{
            //    //if ((View.Frame.Height - keyboardBounds.Height - 50) < 360)
            //    //{
            //    //scrollView.ContentOffset = new CoreGraphics.CGPoint(0, keyboardBounds.Height - 100);
            //    //}
            //    //}

            //});
            //// Fires when keyboard hides.
            //keyboardHideObserver = NSNotificationCenter.DefaultCenter.AddObserver(UIKeyboard.WillHideNotification, (notification) =>
            //{
            //    //centering scroll
            //    //scrollView.ContentOffset = new CoreGraphics.CGPoint(0, 0);
            //});

            var deviceModel = Xamarin.iOS.DeviceHardware.Model;

            //image_bgIV.Frame = new Rectangle(0, 0, Convert.ToInt32(View.Frame.Width), Convert.ToInt32(View.Frame.Height));
            if (deviceModel.Contains("X"))
            {
                headerView.Frame  = new Rectangle(0, 0, Convert.ToInt32(View.Frame.Width), (Convert.ToInt32(View.Frame.Height) / 10) + 8);
                backBn.Frame      = new Rectangle(0, (Convert.ToInt32(View.Frame.Width) / 20) + 20, Convert.ToInt32(View.Frame.Width) / 8, Convert.ToInt32(View.Frame.Width) / 8);
                headerLabel.Frame = new Rectangle(Convert.ToInt32(View.Frame.Width) / 5, (Convert.ToInt32(View.Frame.Width) / 12) + 20, (Convert.ToInt32(View.Frame.Width) / 5) * 3, Convert.ToInt32(View.Frame.Width) / 18);
                resetBn.Frame     = new Rectangle(Convert.ToInt32(View.Frame.Width - View.Frame.Width / 4), Convert.ToInt32(View.Frame.Width) / 12 + 20, Convert.ToInt32(View.Frame.Width) / 4, Convert.ToInt32(View.Frame.Width) / 19);
            }
            else
            {
                headerView.Frame  = new Rectangle(0, 0, Convert.ToInt32(View.Frame.Width), (Convert.ToInt32(View.Frame.Height) / 10));
                backBn.Frame      = new Rectangle(0, Convert.ToInt32(View.Frame.Width) / 20, Convert.ToInt32(View.Frame.Width) / 8, Convert.ToInt32(View.Frame.Width) / 8);
                headerLabel.Frame = new Rectangle(Convert.ToInt32(View.Frame.Width) / 5, Convert.ToInt32(View.Frame.Width) / 12, (Convert.ToInt32(View.Frame.Width) / 5) * 3, Convert.ToInt32(View.Frame.Width) / 18);
                resetBn.Frame     = new Rectangle(Convert.ToInt32(View.Frame.Width - View.Frame.Width / 4), Convert.ToInt32(View.Frame.Width) / 12, Convert.ToInt32(View.Frame.Width) / 4, Convert.ToInt32(View.Frame.Width) / 19);
            }
            View.BackgroundColor       = UIColor.FromRGB(36, 43, 52);
            headerView.BackgroundColor = UIColor.FromRGB(36, 43, 52);
            headerLabel.Text           = "Адрес компании";
            activityIndicator.Color    = UIColor.FromRGB(255, 99, 62);
            activityIndicator.Frame    = new Rectangle((int)(View.Frame.Width / 2 - View.Frame.Width / 20), (int)(headerView.Frame.Height * 2), (int)(View.Frame.Width / 10), (int)(View.Frame.Width / 10));

            applyAddressBn.BackgroundColor = UIColor.FromRGB(255, 99, 62);

            backBn.ImageEdgeInsets = new UIEdgeInsets(backBn.Frame.Height / 3.5F, backBn.Frame.Width / 2.35F, backBn.Frame.Height / 3.5F, backBn.Frame.Width / 3);
            scrollView.Frame       = new Rectangle(0, Convert.ToInt32(headerView.Frame.Y + headerView.Frame.Height), Convert.ToInt32(View.Frame.Width), (Convert.ToInt32(View.Frame.Height - headerView.Frame.Height)));

            scrollView.Hidden = true;

            view_in_scroll.Frame = new Rectangle(0, 0 /*Convert.ToInt32(headerView.Frame.Y + headerView.Frame.Height*1.2)*/, Convert.ToInt32(View.Frame.Width), Convert.ToInt32(scrollView.Frame.Height /* - headerView.Frame.Height * 1.2*/));

            scrollView.KeyboardDismissMode = UIScrollViewKeyboardDismissMode.Interactive;


            CountryTextField = new FloatingTextField
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Placeholder   = "Страна",
                TextColor     = UIColor.White,
                ReturnKeyType = UIReturnKeyType.Next
            };
            CountryTextField.ShouldReturn = _ => RegionTextField.BecomeFirstResponder();
            RegionTextField = new FloatingTextField
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Placeholder   = "Регион",
                TextColor     = UIColor.White,
                ReturnKeyType = UIReturnKeyType.Next
            };
            RegionTextField.ShouldReturn = _ => CityTextField.BecomeFirstResponder();
            CityTextField = new FloatingTextField
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Placeholder   = "Город",
                TextColor     = UIColor.White,
                ReturnKeyType = UIReturnKeyType.Next
            };
            CityTextField.ShouldReturn = _ => DetailAddressTextField.BecomeFirstResponder();

            DetailAddressTextField = new FloatingTextField
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Placeholder   = "Улица, Дом, Корпус, Офис",
                TextColor     = UIColor.White,
                ReturnKeyType = UIReturnKeyType.Next
            };
            DetailAddressTextField.ShouldReturn = _ => IndexTextField.BecomeFirstResponder();

            IndexTextField = new FloatingTextField
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Placeholder   = "Индекс",
                KeyboardType  = UIKeyboardType.NumberPad,
                TextColor     = UIColor.White,
                ReturnKeyType = UIReturnKeyType.Next
            };
            IndexTextField.ShouldReturn = _ => NotationTextField.BecomeFirstResponder();

            NotationTextField = new FloatingTextField
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Placeholder   = "Примечание",
                TextColor     = UIColor.White,
                ReturnKeyType = UIReturnKeyType.Done
            };
            NotationTextField.ShouldReturn = _ => View.EndEditing(true);

            CoordsTextField = new FloatingTextField
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Placeholder   = "Координаты",
                TextColor     = UIColor.White,
                ReturnKeyType = UIReturnKeyType.Done
            };
            CoordsTextField.ShouldReturn = _ => View.EndEditing(true);

            CoordsRemoveBn = new UIButton
            {
                BackgroundColor = UIColor.Clear
            };
            CoordsRemoveBn.Frame = new CoreGraphics.CGRect(0, 430, View.Frame.Width, 60);
            //ApartmentTextField = new FloatingTextField
            //         {
            //             TranslatesAutoresizingMaskIntoConstraints = false,
            //             Placeholder = "Квартира",
            //             TextColor = UIColor.White,
            //  ReturnKeyType = UIReturnKeyType.Done
            //         };
            //ApartmentTextField.ShouldReturn = _ => View.EndEditing(true);

            //CountryTextField.EditingDidBegin += SetInsets;
            //RegionTextField.EditingDidBegin += SetInsets;
            //CityTextField.EditingDidBegin += SetInsets;
            //DetailAddressTextField.EditingDidBegin += SetInsets;
            //IndexTextField.EditingDidBegin += SetInsets;
            //NotationTextField.EditingDidBegin += SetInsets;


            view_in_scroll.AddSubviews(CountryTextField, RegionTextField, CityTextField, DetailAddressTextField, IndexTextField, NotationTextField, CoordsTextField, CoordsRemoveBn);
            view_in_scroll.AddConstraints(new NSLayoutConstraint[]
            {
                CountryTextField.TopAnchor.ConstraintEqualTo(view_in_scroll.TopAnchor, 12),
                CountryTextField.LeadingAnchor.ConstraintEqualTo(view_in_scroll.LeadingAnchor, 16),
                CountryTextField.TrailingAnchor.ConstraintEqualTo(view_in_scroll.TrailingAnchor, -16),
                CountryTextField.HeightAnchor.ConstraintEqualTo(48),
                RegionTextField.TopAnchor.ConstraintEqualTo(CountryTextField.TopAnchor, 70),
                RegionTextField.LeadingAnchor.ConstraintEqualTo(CountryTextField.LeadingAnchor, 0),
                RegionTextField.TrailingAnchor.ConstraintEqualTo(CountryTextField.TrailingAnchor, 0),
                RegionTextField.HeightAnchor.ConstraintEqualTo(48),
                CityTextField.TopAnchor.ConstraintEqualTo(RegionTextField.TopAnchor, 70),
                CityTextField.LeadingAnchor.ConstraintEqualTo(RegionTextField.LeadingAnchor, 0),
                CityTextField.TrailingAnchor.ConstraintEqualTo(RegionTextField.TrailingAnchor, 0),
                CityTextField.HeightAnchor.ConstraintEqualTo(48),
                DetailAddressTextField.TopAnchor.ConstraintEqualTo(CityTextField.TopAnchor, 70),
                DetailAddressTextField.LeadingAnchor.ConstraintEqualTo(CityTextField.LeadingAnchor, 0),
                DetailAddressTextField.TrailingAnchor.ConstraintEqualTo(CityTextField.TrailingAnchor, 0),
                DetailAddressTextField.HeightAnchor.ConstraintEqualTo(48),
                IndexTextField.TopAnchor.ConstraintEqualTo(DetailAddressTextField.TopAnchor, 70),
                IndexTextField.LeadingAnchor.ConstraintEqualTo(DetailAddressTextField.LeadingAnchor, 0),
                IndexTextField.TrailingAnchor.ConstraintEqualTo(DetailAddressTextField.TrailingAnchor, 0),
                IndexTextField.HeightAnchor.ConstraintEqualTo(48),
                NotationTextField.TopAnchor.ConstraintEqualTo(IndexTextField.TopAnchor, 70),
                NotationTextField.LeadingAnchor.ConstraintEqualTo(IndexTextField.LeadingAnchor, 0),
                NotationTextField.TrailingAnchor.ConstraintEqualTo(IndexTextField.TrailingAnchor, 0),
                NotationTextField.HeightAnchor.ConstraintEqualTo(48),
                CoordsTextField.TopAnchor.ConstraintEqualTo(NotationTextField.TopAnchor, 70),
                CoordsTextField.LeadingAnchor.ConstraintEqualTo(NotationTextField.LeadingAnchor, 0),
                CoordsTextField.TrailingAnchor.ConstraintEqualTo(NotationTextField.TrailingAnchor, 0),
                CoordsTextField.HeightAnchor.ConstraintEqualTo(48),
                CoordsRemoveBn.TopAnchor.ConstraintEqualTo(NotationTextField.TopAnchor, 70),
                CoordsRemoveBn.LeadingAnchor.ConstraintEqualTo(NotationTextField.LeadingAnchor, 0),
                CoordsRemoveBn.TrailingAnchor.ConstraintEqualTo(NotationTextField.TrailingAnchor, 0),
                CoordsRemoveBn.HeightAnchor.ConstraintEqualTo(48),
            });

            resetBn.SetTitle("Сбросить", UIControlState.Normal);
            applyAddressBn.SetTitle("ПОДТВЕРДИТЬ АДРЕС", UIControlState.Normal);
            mapAddressBn.Layer.BorderColor = UIColor.FromRGB(255, 99, 62).CGColor;
            mapAddressBn.Layer.BorderWidth = 1f;
            mapAddressBn.SetTitle("ВЫБРАТЬ НА КАРТЕ", UIControlState.Normal);
            applyAddressBn.Font = UIFont.FromName(Constants.fira_sans, 15f);
            mapAddressBn.Font   = UIFont.FromName(Constants.fira_sans, 15f);
            resetBn.Font        = UIFont.FromName(Constants.fira_sans, 15f);
            if (!deviceModel.Contains("e 5") && !deviceModel.Contains("e 4") && !deviceModel.ToLower().Contains("e se"))
            {
                applyAddressBn.Frame = new Rectangle(Convert.ToInt32(View.Frame.Width) / 15,
                                                     600,
                                                     Convert.ToInt32(View.Frame.Width) - ((Convert.ToInt32(View.Frame.Width) / 15) * 2),
                                                     Convert.ToInt32(View.Frame.Height) / 12);
                mapAddressBn.Frame = new Rectangle(Convert.ToInt32(View.Frame.Width) / 15,
                                                   Convert.ToInt32(applyAddressBn.Frame.Y - (int)(applyAddressBn.Frame.Height + 10)),
                                                   Convert.ToInt32(View.Frame.Width) - ((Convert.ToInt32(View.Frame.Width) / 15) * 2),
                                                   Convert.ToInt32(View.Frame.Height) / 12);
            }
            else
            {
                applyAddressBn.Frame = new Rectangle(Convert.ToInt32(View.Frame.Width) / 15,
                                                     Convert.ToInt32(view_in_scroll.Frame.Height + 60 - headerView.Frame.Height / 3),
                                                     Convert.ToInt32(View.Frame.Width) - ((Convert.ToInt32(View.Frame.Width) / 15) * 2),
                                                     Convert.ToInt32(View.Frame.Height) / 12);
                mapAddressBn.Frame = new Rectangle(Convert.ToInt32(View.Frame.Width) / 15,
                                                   Convert.ToInt32(applyAddressBn.Frame.Y - (int)(applyAddressBn.Frame.Height + 10)),
                                                   Convert.ToInt32(View.Frame.Width) - ((Convert.ToInt32(View.Frame.Width) / 15) * 2),
                                                   Convert.ToInt32(View.Frame.Height) / 12);
                var diff = view_in_scroll.Frame.Height - (applyAddressBn.Frame.Y + applyAddressBn.Frame.Height);
                if (diff < 0)
                {
                    view_in_scroll.Frame = new Rectangle(0, 0 /*Convert.ToInt32(headerView.Frame.Y + headerView.Frame.Height*1.2)*/, Convert.ToInt32(View.Frame.Width), Convert.ToInt32(applyAddressBn.Frame.Y + applyAddressBn.Frame.Height));
                }
            }

            SetScrollViewContentSize();
        }
        private void FillFields()
        {
            if (!String.IsNullOrEmpty(FullCompanyAddressTemp) && FullCompanyAddressTemp != " " && !String.IsNullOrEmpty(cityTemp))
            {
                if (FullCompanyAddressTemp.Contains(cityTemp))
                {
                    var str = FullCompanyAddressTemp.Substring(0, cityTemp.Length);
                    if (str == cityTemp)
                    {
                        FullCompanyAddressTemp = FullCompanyAddressTemp.Remove(0, cityTemp.Length + 1);
                    }
                }
            }
            else
            {
                FullCompanyAddressTemp = null;
            }
            var timer = new System.Timers.Timer();

            timer.Interval = 50;
            timer.Elapsed += delegate
            {
                timer.Stop();
                timer.Dispose();
                InvokeOnMainThread(async() =>
                {
                    if (!String.IsNullOrEmpty(country))
                    {
                        CountryTextField.FloatLabelTop();
                        CountryTextField.Text = country;
                    }
                    if (!String.IsNullOrEmpty(city))
                    {
                        CityTextField.FloatLabelTop();
                        CityTextField.Text = city;
                    }
                    if (!String.IsNullOrEmpty(region))
                    {
                        RegionTextField.FloatLabelTop();
                        RegionTextField.Text = region;
                    }
                    if (!String.IsNullOrEmpty(index))
                    {
                        IndexTextField.FloatLabelTop();
                        IndexTextField.Text = index;
                    }
                    if (!String.IsNullOrEmpty(FullCompanyAddressStatic))
                    {
                        DetailAddressTextField.FloatLabelTop();
                        DetailAddressTextField.Text = FullCompanyAddressStatic;
                    }
                    if (!String.IsNullOrEmpty(notation))
                    {
                        NotationTextField.FloatLabelTop();
                        NotationTextField.Text = notation;
                        if (!String.IsNullOrEmpty(notationTemp))
                        {
                            NotationTextField.Text = notationTemp;
                        }
                    }

                    CoordsTextField.UserInteractionEnabled = true;
                    if (!String.IsNullOrEmpty(CompanyAddressMapViewController.company_lat) && !String.IsNullOrEmpty(CompanyAddressMapViewController.company_lng))
                    {
                        CoordsTextField.FloatLabelTop();
                        CoordsTextField.Text = "N" + CompanyAddressMapViewController.company_lat + " E" + CompanyAddressMapViewController.company_lng;
                    }
                    CoordsTextField.UserInteractionEnabled = false;
                    UIApplication.SharedApplication.KeyWindow.EndEditing(true);
                    //await Task.Delay(300);
                    SetScrollViewContentSize();
                    view_in_scroll.Frame     = new Rectangle(0, 0 /*Convert.ToInt32(headerView.Frame.Y + headerView.Frame.Height*1.2)*/, Convert.ToInt32(View.Frame.Width), Convert.ToInt32(applyAddressBn.Frame.Y + applyAddressBn.Frame.Height));
                    scrollView.Hidden        = false;
                    activityIndicator.Hidden = true;
                    if (came_from_map)
                    {
                        addressChangeRequest();
                    }
                });
            };
            timer.Start();
        }