wangguan
2020-12-29 452c75675679c44cc39b04bdb7d330d7c5c14d5c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using UnityEngine;
using System.Collections.Generic;
using EnhancedUI;
using EnhancedUI.EnhancedScroller;
 
namespace EnhancedScrollerDemos.CellEvents
{
    /// <summary>
    /// This demo shows how you can respond to events from your cells views using delegates
    /// </summary>
    public class Controller : MonoBehaviour, IEnhancedScrollerDelegate
    {
        private List<Data> _data;
 
        public EnhancedScroller scroller;
        public EnhancedScrollerCellView cellViewPrefab;
        public float cellSize;
 
        void Start()
        {
            scroller.Delegate = this;
            LoadData();
        }
 
        private void LoadData()
        {
            _data = new List<Data>();
 
            for (var i = 0; i < 24; i++)
                _data.Add(new Data() { hour = i });
        }
 
        #region EnhancedScroller Handlers
 
        public int GetNumberOfCells(EnhancedScroller scroller)
        {
            return _data.Count;
        }
 
        public float GetCellViewSize(EnhancedScroller scroller, int dataIndex)
        {
            return cellSize;
        }
 
        public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex)
        {
            CellView cellView = scroller.GetCellView(cellViewPrefab) as CellView;
 
            // Set handlers for the cell views delegates.
            // Each handler will respond to a different type of event
            cellView.cellButtonTextClicked = CellButtonTextClicked;
            cellView.cellButtonFixedIntegerClicked = CellButtonFixedIntegerClicked;
            cellView.cellButtonDataIntegerClicked = CellButtonDataIntegerClicked;
 
            cellView.SetData(_data[dataIndex]);
 
 
            return cellView;
        }
 
        #endregion
 
        /// <summary>
        /// Handler for when the cell view fires a fixed text button click event
        /// </summary>
        /// <param name="value">value of the text</param>
        private void CellButtonTextClicked(string value)
        {
            Debug.Log("Cell Text Button Clicked! Value = " + value);
        }
 
        /// <summary>
        /// Handler for when the cell view fires a fixed integer button click event
        /// </summary>
        /// <param name="value">value of the integer</param>
        private void CellButtonFixedIntegerClicked(int value)
        {
            Debug.Log("Cell Fixed Integer Button Clicked! Value = " + value);
        }
 
        /// <summary>
        /// Handler for when the cell view fires a data integer button click event
        /// </summary>
        /// <param name="value">value of the integer</param>
        private void CellButtonDataIntegerClicked(int value)
        {
            Debug.Log("Cell Data Integer Button Clicked! Value = " + value);
        }
    }
}