protected void SetupButtonWithTitle(string title, BFPaperButton button, bool isStacked) { button.TranslatesAutoresizingMaskIntoConstraints = false; button.SetTitle(title.ToUpper(), UIControlState.Normal); button.SetTitleColor(NBConfig.AccentColor, UIControlState.Normal); button.IsRaised = false; if (button.TitleLabel != null) { button.TitleLabel.Font = UIFontExtensions.MontserratFontSemiBold(14); } if (isStacked) { //button.. = UIControlContentHorizontalAlignment.Right; button.ContentEdgeInsets = new UIEdgeInsets(0, 0, 0, 20); } else { button.ContentEdgeInsets = new UIEdgeInsets(0, 8, 0, 8); } containerView.AddSubview(button); }
public override NBMaterialDialog ShowDialog(NBDialogSettings settings) { _hideDialogOnTapOnOverlay = settings.HideDialogOnTapOnOverlay; _dialogHeight = _pages[_currentPage].DialogHeight; isStacked = settings.StackedButtons; nfloat totalButtonTitleLength = 0.0f; windowView = settings.WindowView; var windowSize = windowView.Bounds; windowView.AddSubview(View); View.Frame = windowView.Bounds; tappableView.Frame = View.Frame; tapGesture = new UITapGestureRecognizer(TappedBg); tappableView.AddGestureRecognizer(tapGesture); SetupContainerView(); // Add content to contentView contentView = _pages[_currentPage].View; SetupContentView(); if (settings.Title != null) { SetupTitleLabelWithTitle(settings.Title); } if (settings.OkButtonTitle != null) { UIStringAttributes attribs = new UIStringAttributes { Font = UIFontExtensions.MontserratFontSemiBold(14f) }; totalButtonTitleLength += new NSString(settings.OkButtonTitle.ToUpper()).GetSizeUsingAttributes(attribs).Width + 8; if (settings.CancelButtonTitle != null) { totalButtonTitleLength += new NSString(settings.CancelButtonTitle.ToUpper()).GetSizeUsingAttributes(attribs).Width + 8; } // Calculate if the combined button title lengths are longer than max allowed for this dialog, if so use stacked buttons. nfloat buttonTotalMaxLength = (windowSize.Width - (kWidthMargin * 2)) - 16 - 16 - 8; if (totalButtonTitleLength > buttonTotalMaxLength) { isStacked = true; } } // Always display a close/ok button, but setting a title is optional. if (settings.OkButtonTitle != null) { if (okButton == null) { okButton = new BFPaperButton(); okButton.Tag = 0; okButton.TouchUpInside += (sender, args) => PressedAnyButton(sender as NSObject); } SetupButtonWithTitle(settings.OkButtonTitle, button: okButton, isStacked: isStacked); } if (settings.CancelButtonTitle != null) { if (cancelButton == null) { cancelButton = new BFPaperButton(); cancelButton.Tag = 1; cancelButton.TouchUpInside += (sender, args) => PressedAnyButton(sender as NSObject); } SetupButtonWithTitle(settings.CancelButtonTitle, button: cancelButton, isStacked: isStacked); } userAction = settings.ButtonAction; SetupViewConstraints(); //// To get dynamic width to work we need to comment this out and uncomment the stuff in setupViewConstraints. But its currently not working.. SetContainerSize(); return(this); }
public override void ViewDidLoad() { base.ViewDidLoad(); // Perform any additional setup after loading the view, typically from a nib. var bfFlatSmart = new BFPaperButton(new CoreGraphics.CGRect(20, 20, 280, 43), false); bfFlatSmart.SetTitle("BFPaperButton Flat: Smart Color", UIControlState.Normal); bfFlatSmart.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); bfFlatSmart.BackgroundColor = UIColor.FromRGBA(117f / 255f, 117f / 255f, 117f / 255f, 1f); bfFlatSmart.SetTitleColor(UIColor.White, UIControlState.Normal); bfFlatSmart.SetTitleColor(UIColor.White, UIControlState.Highlighted); bfFlatSmart.TouchUpInside += ButtonWasPressed; View.AddSubview(bfFlatSmart); var bfFlatDumb = new BFPaperButton(new CoreGraphics.CGRect(20, 71, 280, 43), false); bfFlatDumb.UsesSmartColor = false; bfFlatDumb.SetTitle("BFPaperButton Flat: !Smart Color", UIControlState.Normal); bfFlatDumb.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); bfFlatDumb.BackgroundColor = UIColor.FromRGBA(117f / 255f, 117f / 255f, 117f / 255f, 1f); bfFlatDumb.SetTitleColor(UIColor.White, UIControlState.Normal); bfFlatDumb.SetTitleColor(UIColor.White, UIControlState.Highlighted); bfFlatDumb.TouchUpInside += ButtonWasPressed; View.AddSubview(bfFlatDumb); var bfFlatClearSmart = new BFPaperButton(new CoreGraphics.CGRect(20, 122, 280, 43), false); bfFlatClearSmart.SetTitle("BFPaperButton Flat: Clear, Smart Color", UIControlState.Normal); bfFlatClearSmart.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); bfFlatClearSmart.SetTitleColor(UIColor.FromRGBA(33f / 255f, 150f / 255f, 243f / 255f, 1f), UIControlState.Normal); bfFlatClearSmart.TouchUpInside += ButtonWasPressed; View.AddSubview(bfFlatClearSmart); var bfFlatClearDumb = new BFPaperButton(new CoreGraphics.CGRect(20, 173, 280, 43), false); bfFlatClearDumb.UsesSmartColor = false; bfFlatClearDumb.SetTitle("BFPaperButton Flat: Clear, !Smart Color", UIControlState.Normal); bfFlatClearDumb.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); bfFlatClearDumb.SetTitleColor(UIColor.FromRGBA(33f / 255f, 150f / 255f, 243f / 255f, 1f), UIControlState.Normal); bfFlatClearDumb.TouchUpInside += ButtonWasPressed; View.AddSubview(bfFlatClearDumb); var bfRaisedSmart = new BFPaperButton(new CoreGraphics.CGRect(20, 239, 280, 43), true); bfRaisedSmart.BackgroundColor = UIColor.FromRGBA(33f / 255f, 150f / 255f, 243f / 255f, 1f); bfRaisedSmart.SetTitle("BFPaperButton Raised: Smart Color", UIControlState.Normal); bfRaisedSmart.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); bfRaisedSmart.TouchUpInside += ButtonWasPressed; View.AddSubview(bfRaisedSmart); var bfRaisedDumb = new BFPaperButton(new CoreGraphics.CGRect(20, 307, 280, 43), true); bfRaisedDumb.UsesSmartColor = false; bfRaisedDumb.BackgroundColor = UIColor.FromRGBA(33f / 255f, 150f / 255f, 243f / 255f, 1f); bfRaisedDumb.SetTitle("BFPaperButton Raised: !Smart Color", UIControlState.Normal); bfRaisedDumb.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); bfRaisedDumb.TouchUpInside += ButtonWasPressed; View.AddSubview(bfRaisedDumb); var bfRaisedSmartSmall = new BFPaperButton(new CoreGraphics.CGRect(20, 375, 135, 83), true); bfRaisedSmartSmall.BackgroundColor = UIColor.FromRGBA(33f / 255f, 150f / 255f, 243f / 255f, 1f); bfRaisedSmartSmall.TitleLabel.Lines = 0; bfRaisedSmartSmall.Font = UIFont.SystemFontOfSize(10f); bfRaisedSmartSmall.SetTitle("BFPaperButton Raised: Smart Color", UIControlState.Normal); bfRaisedSmartSmall.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); bfRaisedSmartSmall.TouchUpInside += ButtonWasPressed; View.AddSubview(bfRaisedSmartSmall); var bfRaisedDumbSmall = new BFPaperButton(new CoreGraphics.CGRect(163, 375, 135, 83), true); bfRaisedDumbSmall.UsesSmartColor = false; bfRaisedDumbSmall.BackgroundColor = UIColor.FromRGBA(33f / 255f, 150f / 255f, 243f / 255f, 1f); bfRaisedDumbSmall.TitleLabel.Lines = 0; bfRaisedDumbSmall.Font = UIFont.SystemFontOfSize(10f); bfRaisedDumbSmall.TapCircleDiameter = BFPaperButtonTapCircleDiameter.Full; bfRaisedDumbSmall.SetTitle("BFPaperButton Raised: !Smart Color, large circle", UIControlState.Normal); bfRaisedDumbSmall.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); bfRaisedDumbSmall.TouchUpInside += ButtonWasPressed; View.AddSubview(bfRaisedDumbSmall); var circle1 = new BFPaperButton(new CoreGraphics.CGRect(20, 468, 86, 86), true); circle1.BackgroundColor = UIColor.FromRGBA(33f / 255f, 150f / 255f, 243f / 255f, 1f); circle1.SetTitle("Center", UIControlState.Normal); circle1.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); circle1.SetTitleColor(UIColor.White, UIControlState.Normal); circle1.SetTitleColor(UIColor.White, UIControlState.Highlighted); circle1.TouchUpInside += ButtonWasPressed; circle1.CornerRadius = circle1.Frame.Size.Width / 2; circle1.RippleFromTapLocation = false; View.AddSubview(circle1); var circle2 = new BFPaperButton(new CoreGraphics.CGRect(116, 468, 86, 86), true); circle2.SetTitle("Center", UIControlState.Normal); circle2.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); circle2.SetTitleColor(UIColor.White, UIControlState.Normal); circle2.SetTitleColor(UIColor.White, UIControlState.Highlighted); circle2.TouchUpInside += ButtonWasPressed; circle2.BackgroundColor = UIColor.FromRGBA(0.3f, 0f, 1f, 1f); circle2.TapCircleColor = UIColor.FromRGBA(1f, 0f, 1f, 0.6f); circle2.CornerRadius = circle2.Frame.Size.Width / 2; circle2.RippleFromTapLocation = false; circle2.RippleBeyondBounds = true; circle2.TapCircleDiameter = (nfloat)Math.Max(circle2.Frame.Size.Width, circle2.Frame.Size.Height) * 1.3f; View.AddSubview(circle2); var circle3 = new BFPaperButton(new CoreGraphics.CGRect(212, 468, 86, 86), false); circle3.SetTitle("Custom", UIControlState.Normal); circle3.SetTitleFont(UIFont.FromName("HelveticaNeue-Light", 15f)); circle3.SetTitleColor(UIColor.FromRGBA(33f / 255f, 33f / 255f, 33f / 255f, 1f), UIControlState.Normal); circle3.SetTitleColor(UIColor.FromRGBA(33f / 255f, 33f / 255f, 33f / 255f, 1f), UIControlState.Highlighted); circle3.TouchUpInside += ButtonWasPressed; circle3.CornerRadius = circle3.Frame.Size.Width / 2; circle3.TapCircleDiameter = 53; circle3.TapCircleColor = UIColor.FromRGBA(0.3f, 0f, 1f, 0.6f); circle3.BackgroundFadeColor = UIColor.FromRGBA(0f, 0f, 1f, 0.3f); View.AddSubview(circle3); }