예제 #1
0
        protected override void SetValueImpl(object target, object value)
        {
            try
            {
                if (!(target is EmptyDataSet emptyDataSet) || value == null)
                {
                    return;
                }

                States state     = (States)Enum.Parse(typeof(States), value.ToString());
                UIView stateView = new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false
                };

                foreach (UIView view in emptyDataSet.ContentView.Subviews)
                {
                    view.RemoveFromSuperview();
                }

                emptyDataSet.ContentView.Alpha = 1f;
                var _frame = new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height);

                switch (state)
                {
                case States.Normal:
                    emptyDataSet.ContentView.Alpha = 0f;
                    break;

                case States.Loading:
                    stateView = new LoadingView(_frame);
                    break;

                case States.NoData:
                    stateView = new NoDataView(_frame);
                    break;

                case States.NoInternet:
                    stateView = new NoInternetView(_frame, emptyDataSet.RefreshCommand);
                    break;

                case States.Error:
                    stateView = new ErrorView(_frame);
                    break;
                }
                emptyDataSet.ContentView.AddSubview(stateView);
                stateView.SetCenterContraintTo(emptyDataSet.ContentView);
                stateView.SetLeftContraintTo(emptyDataSet.ContentView, 0);
                stateView.SetRightContraintTo(emptyDataSet.ContentView, 0);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }