当前位置: 首页 > wzjs >正文

收录网站有哪些百度一下你就知道搜索

收录网站有哪些,百度一下你就知道搜索,一流的商城网站建设,牛二网站建设1、实现动态高度尺寸的的InputField 通过这两个部件就可以实现inputField的动态改变尺寸。 将inputField放入到scrollview当中作为子类 将scrollview 链接到UIChatInputField脚本中。 2、实现UIChatInputField //聊天输入框(类似wechat) [RequireComp…

1、实现动态高度尺寸的的InputField

通过这两个部件就可以实现inputField的动态改变尺寸。

将inputField放入到scrollview当中作为子类

将scrollview 链接到UIChatInputField脚本中。

2、实现UIChatInputField

 //聊天输入框(类似wechat)
 [RequireComponent(typeof(InputField))]
 public class UIChatInputField : MonoBehaviour,IDragHandler,IBeginDragHandler,IEndDragHandler
 {
     [Header("尺寸设置")]
     public float maxHeight = 500; // 最大可见高度
     public float padding = 10f;   // 文本边距
     public float sensitivity = 1f;// 滚动灵敏度
     public float elasticStrength = 0.2f; // 边界弹性强度
     public ScrollRect ScrollRect;
     private RectTransform scrollRectCotent;
     private RectTransform inputRect;
     private ContentSizeFitter contentSizeFitter;
     private InputField inputField;

     private Vector2 startPos;
     private bool isDragging;
     public void Awake()
     {
         inputField = GetComponent<InputField>();
         inputField.onValueChanged.AddListener(OnTextValueChanged);
         inputRect = GetComponent<RectTransform>();
         scrollRectCotent = ScrollRect.content;
         contentSizeFitter = GetComponent<ContentSizeFitter>();
     }

     Vector2 normalizedPos = new Vector2(0, 0);
     void OnTextValueChanged(string str)
     {
         contentSizeFitter.SetLayoutVertical();
         Vector2 sizeDelta = inputRect.sizeDelta;
         ScrollRect.content.sizeDelta = sizeDelta;
         if (inputRect.sizeDelta.y >= maxHeight)
         {
             sizeDelta.y = maxHeight;
         }
         RectTransform rectsCroll = ScrollRect.GetComponent<RectTransform>();
         rectsCroll.sizeDelta = sizeDelta;
         ScrollRect.normalizedPosition = normalizedPos;
     }

     private float GetScrollRange()
     {
         return Mathf.Max(0, scrollRectCotent.rect.height - ScrollRect.viewport.rect.height);
     }

     //坐标转换
     public Vector2 ConvertScreenPosition(Vector2 screenPos)
     {
         Vector2 localPos;
         RectTransformUtility.ScreenPointToLocalPointInRectangle(ScrollRect.viewport, screenPos, null, out localPos);
         return localPos;
     }
     public void OnBeginDrag(PointerEventData eventData)
     {
          isDragging = true;
          startPos = ConvertScreenPosition(eventData.position);
          ScrollRect.StopMovement();
     }

     public void OnDrag(PointerEventData eventData)
     {
         if (!isDragging)
             return;

         Vector2 currentPos = ConvertScreenPosition(eventData.position);
         Vector2 delta = (currentPos - startPos)*sensitivity;
         startPos = currentPos;

         // 转换为标准化位置
         float newNormalizedPos = ScrollRect.verticalNormalizedPosition + delta.y / GetScrollRange();
         newNormalizedPos = Mathf.Clamp01(newNormalizedPos); // 基础限制

         // 应用弹性边界
         if (newNormalizedPos < 0 || newNormalizedPos > 1)
         {
             newNormalizedPos += (newNormalizedPos > 1 ? -1 : 1) * elasticStrength;
         }

         // 更新滚动位置
         ScrollRect.verticalNormalizedPosition = newNormalizedPos;
     }

     public void OnEndDrag(PointerEventData eventData)
     {
         isDragging = false;
     }
 }

效果如:

http://www.dtcms.com/wzjs/335069.html

相关文章:

  • 帮别人做网站服务器网站如何推广运营
  • 成都网站建设电话咨询谷歌关键词挖掘工具
  • 中学网站建设方案中国经济网人事
  • 1核2g 做网站百度seo关键词排名s
  • 白小姐生肖做特网站广州推动优化防控措施落地
  • 代刷网站搭建教程杭州网站seo外包
  • google提交网站北京网站定制公司
  • 用jsp实现网站开发的流程做网页多少钱一个页面
  • 南宁搜索引擎优化重庆seo网络推广关键词
  • 徐州做网站哪个好怎么自己开发网站
  • 住宅设计网站推荐自媒体推广平台
  • 做网站前台需要什么技能项目营销推广策划
  • 做网站商丘长春百度seo公司
  • 铁道部建设监理协会网站关键词快速上首页排名
  • wordpress文件目录无锡网络优化推广公司
  • 青岛网站建设公司效果软文广告发稿
  • 网站建设公司怎么赚钱百度网盘app下载
  • 长春做高端网站公司百度搜索引擎推广步骤
  • 家装设计网站开发企业网站开发制作
  • 怎么做电子商务网站刷移动关键词优化
  • 做微网站的第三方登录界面百度网盘下载
  • 如何做网站迁移网络营销推广策划案例
  • WordPress页脚随机文章北京seo站内优化
  • 阿里云服务器网站备案sem竞价托管多少钱
  • 深圳网站建设费用大概信息流广告案例
  • 品牌网站首页设计seo的主要分析工具
  • 哪家网站做民宿好爱站站长工具
  • 重庆免费公司建网站广东网站优化公司
  • 东莞建设网站怎样弄一个自己的平台
  • 全国十大装修公司排行榜网站页面优化包括