C# scrollView個數隨機UI從上部顯示
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class UIPos : MonoBehaviour
{
/*
* 解析度 1920*1080 UI大小 1080*180
* scrollview內顯示數量不確定,根據不同數量讓第一個物品顯示在最上方
*
* 期間因為無滑動條造成下拉或上拉後會返回原位
* 加上滑動條後就沒有問題了
*
* 可以根據物品大小 解析度不同進行修改
*
* 缺點 需要實時檢測UI個數 耗效能
*/
[SerializeField]
int num=1;
[SerializeField]
int temp;
[SerializeField]
private Transform grid;
// Use this for initialization
void OnEnable ()
{
Debug.Log(1111);
grid = transform.Find("content");//賦值
num = temp = grid.childCount;//所需顯示個數
Fit();
StartCoroutine(FitNumber());
}
IEnumerator FitNumber()
{
while (true)
{
temp = grid.childCount;
if (num != temp)
{
Fit();
}
yield return 0;
}
}
void Fit()
{
num = grid.childCount;//所需顯示個數
if (num * 180 > 1080)//所需顯示物體是否大於螢幕高度
{
transform.localPosition = new Vector3(0, 0, 0);//設定遮罩位置為原點
transform.parent.Find("VerticalScrollbar").GetComponent<Scrollbar>().value = 1;//滑動條迴歸最上方初始位置
}
else
{
transform.localPosition = new Vector3(transform.localPosition.x, 540 - (180 / 2) * num, transform.localPosition.z);//設定遮罩位置
this.gameObject.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 1080 * 2 - 180 * num);//設定遮罩的大小
}
grid.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, num * 180);//設定顯示內容的大小
}
}
using UnityEngine.UI;
using System.Collections;
public class UIPos : MonoBehaviour
{
/*
* 解析度 1920*1080 UI大小 1080*180
* scrollview內顯示數量不確定,根據不同數量讓第一個物品顯示在最上方
*
* 期間因為無滑動條造成下拉或上拉後會返回原位
* 加上滑動條後就沒有問題了
*
* 可以根據物品大小 解析度不同進行修改
*
* 缺點 需要實時檢測UI個數 耗效能
*/
[SerializeField]
int num=1;
[SerializeField]
int temp;
[SerializeField]
private Transform grid;
// Use this for initialization
void OnEnable ()
{
Debug.Log(1111);
grid = transform.Find("content");//賦值
num = temp = grid.childCount;//所需顯示個數
Fit();
StartCoroutine(FitNumber());
}
IEnumerator FitNumber()
{
while (true)
{
temp = grid.childCount;
if (num != temp)
{
Fit();
}
yield return 0;
}
}
void Fit()
{
num = grid.childCount;//所需顯示個數
if (num * 180 > 1080)//所需顯示物體是否大於螢幕高度
{
transform.localPosition = new Vector3(0, 0, 0);//設定遮罩位置為原點
transform.parent.Find("VerticalScrollbar").GetComponent<Scrollbar>().value = 1;//滑動條迴歸最上方初始位置
}
else
{
transform.localPosition = new Vector3(transform.localPosition.x, 540 - (180 / 2) * num, transform.localPosition.z);//設定遮罩位置
this.gameObject.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 1080 * 2 - 180 * num);//設定遮罩的大小
}
grid.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, num * 180);//設定顯示內容的大小
}
}
相關文章
- Android之重寫ScrollView實現兩個ScrollView的同步滾動顯示AndroidView
- C# 隨機數 Random 的使用C#隨機random
- 在SAP WebClient UI裡顯示倒數計時的UIWebclientUI
- 洗牌演算法擴充(從n個數中隨機m個數)演算法隨機
- C# 生成隨機數,呼叫Random方法C#隨機random
- 【Qt】UI顯示中文QTUI
- 使用C#跨PC 遠端呼叫程式並顯示UI介面C#UI
- [隨機數詳解]生成一個隨機數,生成指定範圍的隨機數及隨機陣列去重隨機陣列
- matlab 從某個範圍內隨機取出一個整數Matlab隨機
- 從oracle表中隨機取記錄,產生隨機數和隨機字串Oracle隨機字串
- C#怎麼從List集合中隨機取出其中一個值C#隨機
- ScrollView 之 實現檢視的迴圈顯示View
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- 線上直播原始碼,ui的select顯示數字原始碼UI
- php 隨機顯示圖片的函式程式碼PHP隨機函式
- java 生成一個隨機整數,範圍從 1 到 10Java隨機
- jQuery UI Datepicker中文顯示jQueryUI
- 聊聊 SAP 產品 UI 上的訊息顯示機制UI
- 隨機數隨機
- 不同size class顯示不同的UIUI
- 生成某個範圍的隨機數隨機
- 一個隨機數的類c++隨機C++
- 從Linux核心中獲取真隨機數Linux隨機
- 編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重複。隨機
- python生成隨機數、隨機字串Python隨機字串
- *.cpl檔案的妙用(隨意修改cpu顯示資料,記憶體顯示隨意修改等等)記憶體
- 獲取兩個數之間的隨機數-java隨機Java
- C# GridView 分頁顯示C#View
- 隨機數(三)隨機
- 隨機數(一)隨機
- 隨機數(二)隨機
- 生成隨機數隨機
- groovy : 隨機數隨機
- Android UI 顯示原理分析小結AndroidUI
- 如何把SAP CRM WebClient UI上某個欄位高亮加粗顯示WebclientUI
- 隨機範圍小數和隨機範圍整數隨機
- Android UI系列-----ScrollView和HorizontalScrollViewAndroidUIView
- [Z]Oracle 的隨機數、隨機日期和時間、隨機字串Oracle隨機字串