60 lines
1.6 KiB
C#
60 lines
1.6 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace TapTap.UI
|
|
{
|
|
public class ToastPanelOpenParam : AbstractOpenPanelParameter
|
|
{
|
|
public float popupTime;
|
|
|
|
public string text;
|
|
|
|
public ToastPanelOpenParam(string text, float popupTime)
|
|
{
|
|
this.text = text;
|
|
this.popupTime = popupTime;
|
|
}
|
|
}
|
|
public class ToastPanelController : BasePanelController
|
|
{
|
|
public Text text;
|
|
|
|
public RectTransform background;
|
|
|
|
public float fixVal;
|
|
|
|
public string show;
|
|
|
|
protected override void BindComponents()
|
|
{
|
|
base.BindComponents();
|
|
text = transform.Find("Root/Text").GetComponent<Text>();
|
|
background = transform.Find("Root/BGM") as RectTransform;
|
|
}
|
|
|
|
protected override void OnLoadSuccess()
|
|
{
|
|
base.OnLoadSuccess();
|
|
ToastPanelOpenParam param = this.openParam as ToastPanelOpenParam;
|
|
if (param != null)
|
|
{
|
|
text.text = param.text;
|
|
var totalLength = CalculateLengthOfText();
|
|
var x = totalLength;
|
|
var y = background.sizeDelta.y;
|
|
background.sizeDelta = new Vector2(x, y);
|
|
this.Invoke("Close", param.popupTime);
|
|
}
|
|
}
|
|
|
|
private float CalculateLengthOfText()
|
|
{
|
|
var width = text.preferredWidth + fixVal;
|
|
width = Mathf.Max(200, width);
|
|
width = Mathf.Min(Screen.width, width);
|
|
return width;
|
|
}
|
|
}
|
|
}
|