ugui__scrollview補充



ScrollView控件屬於一種通用組件,而在UGUI中目前還沒有這種組件,因此需要我們自己來做。過程當中會遇到較多的坑,需要自己寫一些腳本來進行控制。這裏介紹一下製作流程,避免重複踩坑。
下面以好友列表爲例進行介紹:

  • Hierarchy結構
    如下,UIScrollViewFriend是ScrollView的RootUI,UIScrollView用於佈局Items,方便動態添加和刪除Items並正確佈局他們,並界定UIScrollViewFriend的顯示區域。
    Image.png
    Image.png
  • 每個組件掛機的腳本:
    UIScrollViewFriend
    {E7239579-E1FA-47FE-9A3E-1CE03E099AC0}.png
    {E7239579-E1FA-47FE-9A3E-1CE03E099AC0}.png
  • Anchor對齊方式選擇不一,這個根據需求自己決定;
  • ScrollRect用於確定ScrollView中顯示的內容:Content域用於設置內部顯示的內容,因此這裏選擇的是下層的UIScrollView,Horizontal和Vertical是選擇拖動的方向支持,Horizontal Scrollbar和Vertical Scrollbar可以和ScrollBar結合使用;
  • Canvas Renderer和Image和Mask共同構成遮罩,用於設置內容可見區域;
  • UIScrollViewSelector用於點擊事件處理。加上這個腳本的原因是,如果在Item上每個Item都加上Event Trigger響應事件,則ScrollView的拖動事件就無法響應,因爲Item截取了輸入信息。因此我們的做法是由ScrollView統一負責事件處理,然後分發給不同的Item,因此每個Item上需要掛接一個腳本與此對應,這個後面介紹。
  • Event Trigger用於獲取事件進行處理,需要響應Drag事件和Pointer Up事件,然後響應函數是UIScrollViewSelector的OnDrag和OnPointerUp函數。

    ScrollView

    {5B3949A2-1E17-4A47-985F-038552E3C9BE}.png
    {5B3949A2-1E17-4A47-985F-038552E3C9BE}.png
  • Grid Layout Group用於自動佈局每個Item的位置,需要設置好每個Item的寬度和高度以及對齊方式等;

  • UIScrollViewFriend用於添加下面Item,這個類繼承自UIMFScrollView,AddChild後需要調用UIMFScrollView的RefreshSize方法改變自身大小和所有的孩子的總大小相同。

    ScrollItem

    {37EA5352-6AEF-40EF-A1F3-65CB5C8DE19E}.png
    {37EA5352-6AEF-40EF-A1F3-65CB5C8DE19E}.png

    UIFriendItem繼承自IScrollViewSelect,需要實現Select函數,然後Start的時候需要將自己註冊到上層的UIScrollViewSelector中,以正確處理點擊事件。

因此總結下來需要自己實現兩個腳本:

  • 一個需要繼承自UIMFScrollView,用於在添加Item時動態改變ScrollView的大小;
  • 一個需要繼承子IScrollViewSelector,用於處理點擊選擇事件,在其中進行點擊事件的處理。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章