1.有个控件叫Selectable 

    这个控件在button,slider等身上有,也可以自行添加,可通过API搜索所有带这个控件的物体统一控制。

2.实现ScrollView只使用Scrollbar操作滚动,不允许鼠标滑动滚动域滚动

    Image,Button组件都无法阻止ScrollRect的事件监测,但是slide,InputField可以,所以在具体的Item身上挂载这两个组件并设为Interactable即可(具体的事件监测机制未了解)

3.用Image组件,加载图片保证图片宽高比

private void DisplayPhotoPreview(byte[] data , Image photoPreview)
    {
        Texture2D jpgTexture = new Texture2D(1, 1);
        jpgTexture.LoadImage(data);

        // make sure alpha channel is 1
        var color = photoPreview.color;
        color.a = 1;
        photoPreview.color = color;

        // create UI sprite from texture
        photoPreview.preserveAspect = true;
        photoPreview.overrideSprite = Sprite.Create(jpgTexture, new Rect(0, 0, jpgTexture.width, jpgTexture.height), Vector2.zero);
        
        if(pickPictureTip.activeSelf == true)
        {
            pickPictureTip.SetActive(false);
        }
    } 
photoPreview.preserveAspect = true;
这个属性,可以保证图片长宽比不变 , 他不会改变Image的宽高,而是处理加载进来的图片进行裁剪透明像素填充

4.Unity 使用UGUI创建可重用TableView 解决 scrollview 初始化item数量过多 造成的卡顿 以及 性能问题;
https://blog.csdn.net/tmac3380809/article/details/51290387

5.UGUI 锚点详解
https://www.jianshu.com/p/e51ec322eff2

6.Unity 自定义 UI组件 UI树等
https://blog.csdn.net/qq_29579137/article/details/77854504