local uiCtrl = require_ex('UI/Panels/Base/UICtrl') local PANEL_ID = PanelId.InputFieldBg local PHASE_ID = PhaseId.InputFieldBg InputFieldBgCtrl = HL.Class('InputFieldBgCtrl', uiCtrl.UICtrl) InputFieldBgCtrl.s_messages = HL.StaticField(HL.Table) << { [MessageConst.ON_INPUT_FIELD_BG_HEIGHT_CHANGE] = 'OnBgHeightChange', [MessageConst.ON_DO_CLOSE_MAP] = 'Close', } InputFieldBgCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg) end InputFieldBgCtrl.OnShow = HL.Override() << function(self) self.view.imgBack.gameObject:SetActive(true) UIUtils.setSizeDeltaY(self.view.imgBack, 0) end InputFieldBgCtrl.OnInputFieldBgInit = HL.StaticMethod() << function() UIManager:AutoOpen(PANEL_ID) end InputFieldBgCtrl.OnBgHeightChange = HL.Method(HL.Table) << function(self, arg) local height = arg[1] local isActive = arg[2] or false if isActive then local uiPos, isInside = UIUtils.screenPointToUI(Vector2(0, height), self.uiCamera, self.view.transform) UIUtils.setSizeDeltaY(self.view.imgBack, UIManager.uiCanvasRect.rect.height / 2 + uiPos.y) end if not isActive then UIUtils.setSizeDeltaY(self.view.imgBack, 0) UIManager:Hide(self.panelId) else UIManager:Show(self.panelId) end end HL.Commit(InputFieldBgCtrl)