using UnityEngine; using UnityEngine.UI; using EnhancedUI.EnhancedScroller; namespace EnhancedScrollerDemos.ViewDrivenCellSizes { public class CellView : EnhancedScrollerCellView { public Text someTextText; /// /// A reference to the rect transform which will be /// updated by the content size fitter /// public RectTransform textRectTransform; /// /// The space around the text label so that we /// aren't up against the edges of the cell /// public RectOffset textBuffer; public void SetData(Data data, bool calculateLayout) { someTextText.text = data.someText; // Only calculate the layout on the first pass. // This will save processing on subsequent passes. if (calculateLayout) { // force update the canvas so that it can calculate the size needed for the text immediately Canvas.ForceUpdateCanvases(); // set the data's cell size and add in some padding so the the text isn't up against the border of the cell data.cellSize = textRectTransform.rect.height + textBuffer.top + textBuffer.bottom; } } } }