推荐阅读:
一。使用制作滑动列表:使用UILayout做虚拟列表
ui.list = base:findcom("center/ScrollView/Viewport/Content", "UILayout") ui.list.onCreate = base.createrender ui.list.onUpdate = base.updaterender ui.list.ItemRenderer = Asset:LoadAsset(asseturi.getassetpath(base.module, "manualItem")) --创建item function base.createrender(go) local render = {} render.lv = utils.findtext(go, "lv")--等级名字 taskitems[go] = render end 刷新item function base.updaterender(go, index) local render = taskitems[go] local currLv=lv if lv>index then --已达到等级 render.lv="已达成" else render.lv="未达成" end end
需要注意的是:如果滑动过程中,列表中数据出现混乱,可以考虑是列表的item大小的问题。由于大小item差异,导致UILayout脚本里计算出现问题。
二。使用Slider制作进度条
使用Slider做进度条时,如果不想支持触摸滑动,应将Slider组建下的Interactable取消勾选
三。使用InputField制作输入框
如果只希望输入整数,则修改InputField的ContentType为IntergetNumber
ui.manualLv = utils.findinput(go, "InputField") --实时监听文本框输入内容,控制其范围 utils.addchangeevent(ui.manualLv, base.inputlimit) function base.inputlimit(_input, _id, _str) local maxnumber = #ui.proto - commonmodel.activeDatas.manual_syn.level local temp = tonumber(_str) if temp then if temp >= maxnumber then ui.manualLv = maxnumber elseif temp <= 0 then ui.manualLv = 1 else ui.manualLv = temp end end end
四。使用使用DOTween制作动画
(1)InsertCallback在给定的时间位置上放置一个回调函数。
local seq = DOTween.Sequence() seq:InsertCallback(1, function() labelpopup.show("提示") end)
代码功能:延迟一秒显示一个文本提示
(2)DOScale放大缩小效果
obj.transform.localScale = Vector3.New(0.2,0.2,0.2) --SetEase()设置动画曲线 obj.transform:DOScale(Vector3.New(1,1,1), 0.18):SetEase(Ease.OutBack)
(3)Sequence:相当于一个Tweener的链表,可以通过执行一个Sequence来执行一串Tweener,使用Sequence类可以方便的组织
local seq = DOTween.Sequence() --Append:在Sequence的最后添加一个tween。 seq:Append(strans:DOLocalMove(pos, 0.3, false):SetEase(Ease.OutExpo)) seq:Append(strans:DOLocalMove(target1, 0.3, false):SetEase(Ease.InBack)) seq:Append(strans:DOLocalMove(pos, 0.2, false)) --AppendInterval:在Sequence的最后添加一段时间间隔。 seq:AppendInterval(0.05) seq:Append(mtrans:DOLocalMove(target2, 0.3, false):SetEase(Ease.InBack)) seq:Append(mtrans:DOLocalMove(mpos, 0.2, false)) seq:AppendInterval(0.05) seq:Append(strans:DOLocalMove(target1, 0.3, false):SetEase(Ease.InBack)) seq:Append(strans:DOLocalMove(pos, 0.2, false)) seq:AppendInterval(0.1) seq:Append(strans:DOLocalMove(spos, 0.3, false):SetEase(Ease.OutExpo)) seq:Play() seq:InsertCallback(0.3, function() end) seq:InsertCallback(0.6, function() end) seq:OnComplete(function() end)