Example #1
0
        /**
         * Displays a loading dialog with a loading spinner, and a message
         *
         * - parameter message: The message displayed to the user while its loading
         * - returns: The Loading Dialog
         */
        public static NBMaterialLoadingDialog Show(NBMaterialLoadingDialogSettings settings)
        {
            var containerView           = new UIView();
            var circularLoadingActivity = new NBMaterialCircularActivityIndicator();
            var loadingLabel            = new UILabel();

            //circularLoadingActivity.initialize()
            circularLoadingActivity.TranslatesAutoresizingMaskIntoConstraints = false;
            circularLoadingActivity.LineWidth = 3.5f;
            circularLoadingActivity.TintColor = NBConfig.AccentColor;

            containerView.AddSubview(circularLoadingActivity);

            loadingLabel.TranslatesAutoresizingMaskIntoConstraints = false;
            loadingLabel.Font      = UIFontExtensions.ArialFont(14);
            loadingLabel.TextColor = NBConfig.PrimaryTextDark;
            loadingLabel.Text      = settings.Text;
            // TODO: Add support for multiple lines, probably need to fix the dynamic dialog height todo first
            loadingLabel.Lines = 0;

            containerView.AddSubview(loadingLabel);


            // Setup constraints
            NSMutableDictionary constraintViews = new NSMutableDictionary();

            constraintViews.SetValueForKey(circularLoadingActivity, new NSString("spinner"));
            constraintViews.SetValueForKey(loadingLabel, new NSString("label"));

            containerView.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[spinner(==32)]-16-[label]|", NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: null, views: constraintViews));
            containerView.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:[spinner(==32)]", NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: null, views: constraintViews));
            // Center Y needs to be set manually, not through VFL
            containerView.AddConstraint(
                NSLayoutConstraint.Create(
                    circularLoadingActivity,
                    NSLayoutAttribute.CenterY,
                    NSLayoutRelation.Equal,
                    containerView,
                    NSLayoutAttribute.CenterY,
                    multiplier: 1,
                    constant: 0));
            containerView.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[label]|",
                                                                             NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: null, views: constraintViews));

            // Initialize dialog and display
            var dialog = new NBMaterialLoadingDialog();

            settings.Content      = containerView;
            settings.DialogHeight = settings.DialogHeight ?? dialog.kMinimumHeight;
            dialog.SetLoadingLabel(loadingLabel);
            dialog.ShowDialog(settings);

            // Start spinner
            circularLoadingActivity.StartAnimating();

            return(dialog);
        }
        public static NBMaterialAlertDialog Show(NBAlertDialogSettings settings)
        {
            var alertLabel = new UILabel();

            alertLabel.Lines     = 0;
            alertLabel.Font      = UIFontExtensions.ArialFont(settings.FontSize);
            alertLabel.TextColor = NBConfig.PrimaryTextDark;
            alertLabel.Text      = settings.Text;
            alertLabel.SizeToFit();

            var dialog = new NBMaterialAlertDialog();

            settings.Content      = alertLabel;
            settings.DialogHeight = settings.DialogHeight ?? dialog.kMinimumHeight;

            dialog.ShowDialog(settings);
            return(dialog);
        }