------------------------------------------------ --作者: 何健 --日期: 2020-02-11 --文件: UICheckBoxList.lua --模块: UICheckBoxList --描述: 选择框控件列表,单选 ------------------------------------------------ local L_CheckBox = {} local UICheckBoxList ={ Trans = nil, Go = nil, CallBack = nil, CheckBoxList = List:New(), } function L_CheckBox:OnFirstShow(trans, id) local _M = Utils.DeepCopy(self) _M.Trans = trans _M.Go = trans.gameObject _M.id = id _M.OkGo = UIUtils.FindGo(trans, "Ok") _M.CheckBtn = UIUtils.FindBtn(trans) _M.OkGo:SetActive(_M.IsChecked) UIUtils.AddBtnEvent(_M.CheckBtn, _M.onClickCheckBtn, _M) return _M end --设置选中 function L_CheckBox:SetChecked(ischeck) if self.IsChecked ~= ischeck then self.IsChecked = ischeck self.OkGo:SetActive(self.IsChecked) end end function L_CheckBox:onClickCheckBtn() if self.CallBack then self.CallBack(self.id) end end function UICheckBoxList:OnFirstShow(trans) local _M = Utils.DeepCopy(self) _M.Trans = trans _M.Go = trans.gameObject local _index = 1 while true do local _childTrans = UIUtils.FindTrans(trans, tostring(_index)) if _childTrans then local _checkItem = L_CheckBox:OnFirstShow(_childTrans, _index) _checkItem.CallBack = Utils.Handler(_M.onClickCheckBtn, _M) _M.CheckBoxList:Add(_checkItem) else break end _index = _index + 1 end return _M end --设置选中 function UICheckBoxList:SetChecked(id) for i = 1, #self.CheckBoxList do self.CheckBoxList[i]:SetChecked(id == i) end if self.CallBack then self.CallBack(id) end end function UICheckBoxList:onClickCheckBtn(id) self:SetChecked(id) end return UICheckBoxList