Пример #1
0
        public void UpdateTableViewData()
        {
            var sorted = SortingAlgorithm(Text, _items);

            if (!sorted.Any())
            {
                HideAutoCompleteView();
                return;
            }
            AutoCompleteViewSource.Suggestions = sorted;
            AutoCompleteTableView.ReloadData();

            var f      = AutoCompleteTableView.Frame;
            var height = Math.Min(AutocompleteTableViewHeight, (int)AutoCompleteTableView.ContentSize.Height);
            var frame  = new CGRect(f.X, f.Y, f.Width, height);

            AutoCompleteTableView.Frame = frame;
            _background.Frame           = frame;
        }
Пример #2
0
        public void Draw(UIViewController viewController, CALayer layer, UIScrollView scrollView, nfloat y)
        {
            _scrollView           = scrollView;
            _drawnFrame           = layer.Frame;
            _parentViewController = viewController ?? throw new ArgumentNullException(nameof(viewController), "View cannot be null");


            //Make new tableview and do some settings
            AutoCompleteTableView = new AutoCompleteTableView(_scrollView)
            {
                DelaysContentTouches = true,
                ClipsToBounds        = true,
                ScrollEnabled        = true,
                AllowsSelection      = true,
                Bounces          = false,
                Hidden           = true,
                ContentInset     = UIEdgeInsets.Zero,
                AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth,
                Source           = AutoCompleteViewSource,
                TableFooterView  = new UIView()
            };

            //Some textfield settings
            AutocorrectionType = UITextAutocorrectionType.No;
            ClearButtonMode    = UITextFieldViewMode.Never;

            var scrollViewIsNull = _scrollView == null;

            CGRect frame;
            UIView view;

            if (scrollViewIsNull)
            {
                view  = _parentViewController.View;
                frame = new CGRect(_drawnFrame.X, y + _drawnFrame.Height, _drawnFrame.Width, AutocompleteTableViewHeight);
            }
            else
            {
                var e = (ScrollView)((ScrollViewRenderer)_scrollView).Element;
                var p = e.Padding;
                var m = e.Margin;
                frame = new CGRect(_drawnFrame.X + p.Left + m.Left,
                                   y + _drawnFrame.Height,
                                   _drawnFrame.Width,
                                   AutocompleteTableViewHeight);
                view = _scrollView;
            }

            AutoCompleteTableView.Layer.CornerRadius = 5;

            _background = new UIView(frame)
            {
                BackgroundColor = UIColor.White, Hidden = true
            };
            _background.Layer.CornerRadius  = 5; //rounded corners
            _background.Layer.MasksToBounds = false;
            _background.Layer.ShadowColor   = UIColor.Black.CGColor;
            _background.Layer.ShadowOffset  = new CGSize(0.0f, 4.0f);
            _background.Layer.ShadowOpacity = 0.25f;
            _background.Layer.ShadowRadius  = 8f;
            _background.Layer.BorderColor   = UIColor.LightGray.CGColor;
            _background.Layer.BorderWidth   = 0.1f;

            AutoCompleteTableView.Frame = frame;
            view.AddSubview(_background);
            view.AddSubview(AutoCompleteTableView);

            //listen to edit events
            EditingChanged += OnEditingChanged;
            EditingDidEnd  += OnEditingDidEnd;

            UpdateTableViewData();
            IsInitialized = true;
        }