コード例 #1
0
        private void Resize()
        {
            AddressTextView.UserInteractionEnabled = IsSelected;

            var sizeThatFits = StreetNumberTextView.GetSizeThatFits(StreetNumberTextView.Text, StreetNumberTextView.Font);

            _streetNumberTextViewWidthConstraint.Constant = (float)Math.Max(sizeThatFits.Width + 30f, MinimumStreetNumberTextViewWidth);

            if (IsSelected)
            {
                StreetNumberRoundedCornerView.BackgroundColor = GetColor();
                HorizontalDividerTop.Hidden = !IsDestination;
            }

            SetNeedsLayout();
        }
コード例 #2
0
        private void SetBehavior()
        {
            //Order is important
            NumberAndAddressTextFieldBehavior.ApplyTo(AddressTextView, StreetNumberTextView, () => CurrentAddress, number =>
            {
                if (AddressUpdated != null)
                {
                    AddressUpdated(number);
                }
            });

            StreetNumberTextView.TapAnywhereToClose(() => this.Superview.Superview.Superview);

            StreetNumberTextView.ValueChanged += (sender, e) => Resize();

            StreetNumberTextView.EditingDidBegin += (sender, e) =>
            {
                if (string.IsNullOrWhiteSpace(StreetNumberTextView.Text))
                {
                    StreetNumberTextView.ResignFirstResponder();
                    if (AddressClicked != null)
                    {
                        AddressClicked(this, EventArgs.Empty);
                    }
                    return;
                }

                StreetNumberRoundedCornerView.Hidden = false;
                VerticalDivider.Hidden = true;
                Resize();
            };

            StreetNumberTextView.EditingDidEnd += (sender, e) =>
            {
                StreetNumberRoundedCornerView.Hidden = true;
                VerticalDivider.Hidden = false;
                Resize();
            };
        }