예제 #1
0
        public override void ViewDidLayoutSubviews()
        {
            base.ViewDidLayoutSubviews();

            TimeEntriesLogTableView.ContentInset = new UIEdgeInsets(
                top: -TimeEntriesLogViewSource.SpaceBetweenSections,
                left: 0,
                bottom: (nfloat)System.Math.Max(CurrentTimeEntryCard.Frame.Height, StartTimeEntryButton.Frame.Height),
                right: 0);

            TimeEntriesLogTableView.BringSubviewToFront(TimeEntriesLogTableView.TableHeaderView);

            if (viewInitialized)
            {
                return;
            }

            viewInitialized = true;

            ViewModel.IsTimeEntryRunning
            .Where(visible => visible)
            .Subscribe(_ => showTimeEntryCard())
            .DisposedBy(disposeBag);

            ViewModel.IsTimeEntryRunning
            .Where(visible => !visible)
            .Subscribe(_ => hideTimeEntryCard())
            .DisposedBy(disposeBag);
        }
예제 #2
0
        public override void ViewDidLayoutSubviews()
        {
            base.ViewDidLayoutSubviews();

            TimeEntriesLogTableView.ContentInset = new UIEdgeInsets(-TimeEntriesLogViewSource.SpaceBetweenSections, 0,
                                                                    StartTimeEntryButton.Frame.Height, 0);
            TimeEntriesLogTableView.BringSubviewToFront(TimeEntriesLogTableView.TableHeaderView);

            if (TimeEntriesLogTableView.TableHeaderView != null)
            {
                var header = TimeEntriesLogTableView.TableHeaderView;
                var size   = header.SystemLayoutSizeFittingSize(UIView.UILayoutFittingCompressedSize);
                if (header.Frame.Size.Height != size.Height)
                {
                    var headerRect = new CGRect
                    {
                        X      = header.Frame.X,
                        Y      = header.Frame.Y,
                        Width  = header.Frame.Width,
                        Height = size.Height
                    };
                    header.Frame = headerRect;
                }
                TimeEntriesLogTableView.TableHeaderView = header;
                TimeEntriesLogTableView.SetNeedsLayout();
            }

            if (viewInitialized)
            {
                return;
            }

            viewInitialized = true;

            ViewModel.IsTimeEntryRunning
            .Where(visible => visible)
            .Subscribe(_ => showTimeEntryCard())
            .DisposedBy(disposeBag);

            ViewModel.IsTimeEntryRunning
            .Where(visible => !visible)
            .Subscribe(_ => hideTimeEntryCard())
            .DisposedBy(disposeBag);
        }