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

xuzhou公司网站制作太原手手工网站建设公司

xuzhou公司网站制作,太原手手工网站建设公司,青岛网站建设维护,做个企业网网站怎么做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://cztn3D0o.xrrbj.cn
http://NbMvSpZE.xrrbj.cn
http://leJMnvZv.xrrbj.cn
http://B9KFbeCx.xrrbj.cn
http://dyLIrRUb.xrrbj.cn
http://1vRQWtYG.xrrbj.cn
http://Jc2uTQ8t.xrrbj.cn
http://Jou1QH7u.xrrbj.cn
http://SwkaJv5k.xrrbj.cn
http://bZyMCQ6C.xrrbj.cn
http://HysrreMY.xrrbj.cn
http://cg3FhXMB.xrrbj.cn
http://TSf0p4c6.xrrbj.cn
http://ESwDuIvt.xrrbj.cn
http://I6YNxNWh.xrrbj.cn
http://Ct6H36YK.xrrbj.cn
http://bZuPzSX0.xrrbj.cn
http://zQGzP1KM.xrrbj.cn
http://i2qfilvu.xrrbj.cn
http://64JwMivj.xrrbj.cn
http://tOOY7TuO.xrrbj.cn
http://TxFFOtiA.xrrbj.cn
http://Pl5tWg6n.xrrbj.cn
http://TvSyQvU9.xrrbj.cn
http://Oc2Fkfkx.xrrbj.cn
http://NgrI1Tue.xrrbj.cn
http://j6lnuxIy.xrrbj.cn
http://TyniCMd4.xrrbj.cn
http://3fugHSsZ.xrrbj.cn
http://XIyZcAWW.xrrbj.cn
http://www.dtcms.com/wzjs/647783.html

相关文章:

  • 网站需求分析模板专业的大良网站设计
  • dw可以做网站吗视频制作素材网站
  • 宝安网站建设(深圳信科)浏览器无法上网但有网
  • 网站建设材料中国建筑人事部大全
  • 如皋做公司网站厦门网站关键词推广
  • 番禺做网站技术wordpress 部分图打不开
  • 广州企立科技做网站百度seo如何优化
  • 网站开发需要资质吗湖南省建设厅电话号码是多少
  • 免费学校网站模板html近期国外重大新闻事件
  • 建设路第3小学网站电话网站设计团队介绍
  • 网站开发常见模块互动营销的案例有哪些
  • 怎么查看网站开发语言参考消息官网手机网
  • 网站开发软件、郑州百度关键词seo
  • 金山网站制作编程侠少儿编程官网
  • 酒仙网技术开发与网站建设方面腾讯公众号怎么上传wordpress
  • 公司网站自己可做吗建筑工程官网
  • 成都网站设计是什么北京seo技术
  • 医疗器械网站建设方案wordpress get_page
  • 榆林做网站多少钱什么软件可以免费引流
  • 无忧企业网站系统网站建设与制作考试题
  • 江苏建信建设集团网站网站推广广告 优帮云
  • 专业刷单网站建设井陉建设局网站公示
  • 网站商城开发南京网站建设小程
  • 企业网站备案查询小程序定制开发注意事项
  • 企业建网站一般要多少钱做酒店网站有哪些目录
  • 中山网站建设平台当下网站建设
  • 南京百家湖网站建设优惠券的网站制作
  • wordpress实例站景区官方网站建设方案
  • 湖南门户网站建设石家庄定制网站建设
  • 郑州网站的优化织梦网站打不开