1.动态改anchor 不使用OnUpdate ,用OnEnable,可以刷新次数,同时当版式改变时用以下方式
gameObj.updateAnchors = UIRect.AnchorUpdate.OnUpdate
gameObj.updateAnchors = UIRect.AnchorUpdate.OnEnable
2,仍然是改相对位置
local widget =gameObject:GetComponent(UIWidget)
local ret = GetUIWidgetAnchors(widget) -- 四维数组
widget.bottomAnchor.absolute = -80 -- 可以改 bottom,top,left,right ,另一个参数 relative
SetUIWidgetAnchors(widget, ret)
gameObject:GetComponent(UIWidget):ResetAndUpdateAnchors()
可以通过获得Anchor,来改Anchor 是属性甚至直接设置 bottomAnchor属性(对应编辑器窗口值)
补充
local widget = self.pageTagGrid:GetComponent(UIWidget)
widget.topAnchor.target = icon.transform
widget.topAnchor.relative = 0 – topAnchor 的relative三个值,0bottom,0.5center,1top,>2 percent,相应如果是leftAnchor,0-left,1 -right,0.5-center
widget.topAnchor.absolute = 11
widget.bottomAnchor.target = icon.transform
widget.bottomAnchor.relative = 0
widget.bottomAnchor.absolute = 40
widget.updateAnchors = UIRect.AnchorUpdate.OnUpdate;
LuaTimer.Add(100, function()
widget.updateAnchors = UIRect.AnchorUpdate.OnEnable;
end)
3.手动加TWEEN动画
--- scale 动画:
local scale = gameObject:AddComponent(TweenScale)
scale.gameObject:SetActive(false)
scale.duration = 0.8
scale.delay = 3
4.代码运行时绑定 lua脚本
Lua.AttachLua(luaFileName, gameObject)
Bugs:
1.UIButton 插件在手机上有几率不会变黑,改成UIEventListener 注册点击
2.碰到一个奇怪的bug,我在一个物体上加了两个tweenScale,通过设置延时决定播放顺序,用另外一个playTween去播放,物体放在grid下;发现tweenScale没有播放 ,最后勾掉了 tweenScale 下的 ignoreTimeScale 解决,另外发现,tweenScale 不能用ResetToBeginning 去设置到默认状态