Ejemplo n.º 1
0
        private void InitializeTween(int dataIndex, int cellViewIndex)
        {
            _data[dataIndex].isExpanded = !_data[dataIndex].isExpanded;

            for (var i = 0; i < _data.Count; i++)
            {
                if (i != dataIndex)
                {
                    if (((dataIndex + 2) % 3 == 0) || ((i + 2) % 3 == 0))
                    {
                        _data[i].isExpanded = false;
                    }
                }
            }

            var cellPosition = scroller.GetScrollPositionForCellViewIndex(cellViewIndex, EnhancedScroller.CellViewPositionEnum.Before);

            var tweenCellOffset = cellPosition - scroller.ScrollPosition;

            scroller.IgnoreLoopJump(true);

            scroller.ReloadData();

            cellPosition = scroller.GetScrollPositionForCellViewIndex(cellViewIndex, EnhancedScroller.CellViewPositionEnum.Before);

            scroller.SetScrollPositionImmediately(cellPosition - tweenCellOffset);

            scroller.IgnoreLoopJump(false);

            if (_data[dataIndex].tweenType == Tween.TweenType.immediate)
            {
                return;
            }

            _lastPadderActive = scroller.LastPadder.IsActive();
            _lastPadderSize   = scroller.LastPadder.minHeight;

            if (_data[dataIndex].isExpanded)
            {
                scroller.LastPadder.minHeight += _data[dataIndex].SizeDifference;
            }
            else
            {
                scroller.LastPadder.minHeight -= _data[dataIndex].SizeDifference;
            }

            scroller.LastPadder.gameObject.SetActive(true);

            var cellViewTween = scroller.GetCellViewAtDataIndex(dataIndex) as CellView;

            cellViewTween.BeginTween();
        }
    private void InitScroll()
    {
        if (items == null || items.list.Count < 0)
        {
            return;
        }

        scroller.Delegate = this;
        itemsData         = new List <ItermScrollData>();
        CreateItems();
        scroller.ReloadData();

        btnSelect.SetRandomItem();
        OnItemSelected(1, () =>
        {
            var item = scroller.GetCellViewAtDataIndex(1);
            this.PostEvent((int)EventID.ItemScrollSelect, item as ItemScroll);
            btnSelect.SetRandomItem();
        });
    }
    private void InitScroll()
    {
        if (skins == null || skins.list.Count < 0)
        {
            return;
        }

        scroller.Delegate = this;
        itemsData         = new List <ItemSkinScrollData>();
        CreateItems();
        scroller.ReloadData();

        var skinIndex = skins.list.IndexOf(skins.list.FirstOrDefault(_ => _.Equals(DataManager.CurrentSkin)));

        OnItemSelected(skinIndex, () =>
        {
            var item = scroller.GetCellViewAtDataIndex(skinIndex);
            item.transform.localScale = new Vector2(1.5f, 1.5f);
            btnSelect.SetButton(skins.list[skinIndex]);
        });
    }
Ejemplo n.º 4
0
    private void ShowStarted()
    {
        _customReminderScreen.gameObject.SetActive(false);
        _tempNewReminderData.fireDate = DateTime.Today.Date + _tempNewReminderData.fireDate.TimeOfDay;

        // initialize all reminders
        SetScroller(ReminderManager.Instance.GetAllReminders(AppManager.Instance.currentAppMode));

        // of there is such reminder
        int index = _data.IndexOf(_defaultSelection);

        if (index > -1)
        {
            scroller.JumpToDataIndex(index);
            _selectedItem = scroller.GetCellViewAtDataIndex(index) as ReminderUiItem;
            SetState(State.Edit);
        }
        else
        {
            // set New state by default
            SetState(State.New);
        }
    }
Ejemplo n.º 5
0
        /// <summary>
        /// This method is called by the cell view when the cell is clicked.
        /// It will set all the expansion properties of the cells, reload the scroller,
        /// set the position correctly, and kick off the tweening of the cell size
        /// </summary>
        /// <param name="dataIndex">The data index of the cell</param>
        /// <param name="cellViewIndex">The cell view index of the cell</param>
        private void InitializeTween(int dataIndex, int cellViewIndex)
        {
            // toggle the cell's expansion
            _data[dataIndex].isExpanded = !_data[dataIndex].isExpanded;

            // set all the other cells' expansion properties
            for (var i = 0; i < _data.Count; i++)
            {
                // if not this cell
                if (i != dataIndex)
                {
                    // if the clicked cell is a single cell or if this iteration is a single cell
                    // collapse other cells
                    if (((dataIndex + 2) % 3 == 0) || ((i + 2) % 3 == 0))
                    {
                        _data[i].isExpanded = false;
                    }
                }
            }

            // get the cell's position (using the cell view index in case of looping)
            var cellPosition = scroller.GetScrollPositionForCellViewIndex(cellViewIndex, EnhancedScroller.CellViewPositionEnum.Before);

            // get the offset of the cell from the top of the scroll rect
            var tweenCellOffset = cellPosition - scroller.ScrollPosition;

            // turn off loop jumping so that the scroller will not try to jump to a new location as the cell is expanding / collapsing
            scroller.IgnoreLoopJump(true);

            // reload the scroller to accommodate the new cell sizes
            scroller.ReloadData();

            // get the new position of the cell (using the cell view index in case of looping)
            cellPosition = scroller.GetScrollPositionForCellViewIndex(cellViewIndex, EnhancedScroller.CellViewPositionEnum.Before);

            // set the scroller's position to focus on the cell, using the offset calculated above
            scroller.SetScrollPositionImmediately(cellPosition - tweenCellOffset);

            // turn loop jumping back on
            scroller.IgnoreLoopJump(false);

            // if this cell has an immediate tween type, then we can just exit the
            // method and not worry about adjusting padder sizes or calling
            // the tweening on the cell
            if (_data[dataIndex].tweenType == Tween.TweenType.immediate)
            {
                return;
            }

            // cache the last padder's active state and size for after the tween
            _lastPadderActive = scroller.LastPadder.IsActive();
            _lastPadderSize   = scroller.LastPadder.minHeight;

            // manually set the last padder's size so that we can tween the cell
            // size without distorting all the cells' sizes
            if (_data[dataIndex].isExpanded)
            {
                scroller.LastPadder.minHeight += _data[dataIndex].SizeDifference;
            }
            else
            {
                scroller.LastPadder.minHeight -= _data[dataIndex].SizeDifference;
            }

            // make sure the last padder is active so that we can tween its size
            scroller.LastPadder.gameObject.SetActive(true);

            // grab the cell that was clicked so that we can start tweening.
            // note that we cannot just pass in the cell to this method since we
            // are calling ReloadData, which destroys that cell. Grabbing it
            // here is the only way to get an active cell after the reload.
            var cellViewTween = scroller.GetCellViewAtDataIndex(dataIndex) as CellView;

            // start the cell's tweening process
            cellViewTween.BeginTween();
        }