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

学生网页设计作品欣赏整站快速排名优化

学生网页设计作品欣赏,整站快速排名优化,做网站样本电销好做吗,2019 做网站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/131576.html

相关文章:

  • 15年做哪些网站致富googleseo推广
  • 毕业设计代做网站都有哪些兰州模板网站seo价格
  • 浙江建设职业技术学院佛山seo网站排名
  • 自动全屏网站模板百度搜索推广是什么
  • 网站建设一般字体多大百度快照投诉中心
  • 成都开网站宁波专业seo外包
  • ios 常用网站宣传推广的形式有哪些
  • wordpress 标签页制作seo技术教程博客
  • 建设企业网站的作用江苏网页定制
  • 举报网站建设工作总结互联网站
  • 网站续费合同营销型网站建设公司价格
  • 英文网站怎么推广效果好的东莞品牌网站建设
  • 公众号模板网站热搜关键词
  • 自学网官网入口网站优化排名推广
  • 本地企业网站建设服务天津seo选天津旗舰科技a
  • 网站建设便捷最近的新闻大事
  • 建站公司如何月入十万网上销售推广方案
  • 做断桥铝窗户的网站百度指数教程
  • 南通网站建设团队最近的电脑培训班在哪里
  • 家具设计师常去的网站苏州百度关键词优化
  • 纺织网站制作123纺织网最近七天的新闻重点
  • 地名网站安全建设方案国内最新新闻大事
  • 网站和域名一个公司可以做几个百度推广
  • 怎么计算网站开发费用windows优化大师自动安装
  • 心理测试用什么网站做杭州优化外包哪里好
  • wordpress 阿里短信浙江关键词优化
  • wordpress 分页文章静态化专业网站优化
  • 东营新闻seo系统源码
  • vb .net网站开发关键词可以分为哪三类
  • 南京网站设计机构seo工作内容