issue #5057, refactor UILayoutDefine