Skip to content

Commit 3c2c39c

Browse files
author
城西
committed
1. label设置nil的时候清理text
2. label支持ellipsize 特性"..." 字符串太长 "..." 的位置
1 parent 2be6df6 commit 3c2c39c

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

IOS/Demo/Demo/lua/demoC_Label.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ lable3.textAlign(TextAlign.CENTER)
3131
lable3.callback(
3232
function()
3333
print("lable3");
34+
lable3.text(nil);
3435
end
3536
);
3637

IOS/LuaViewSDK/Classes/lvsdk/LVLabel.m

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ static int text (lv_State *L) {
6868
LVLabel* view = (__bridge LVLabel *)(user->object);
6969
if ( [view isKindOfClass:[LVLabel class]] ) {
7070
if( lv_gettop(L)>=2 ) {
71-
if( lv_type(L, 2)==LV_TNUMBER ){
71+
if ( lv_isnoneornil(L, 2 ) ) {
72+
view.text = nil;
73+
} else if( lv_type(L, 2)==LV_TNUMBER ){
7274
CGFloat text = lv_tonumber(L, 2);// 2
7375
view.text = [NSString stringWithFormat:@"%f",text];
7476
return 0;
@@ -222,6 +224,25 @@ static int textAlignment (lv_State *L) {
222224
return 0;
223225
}
224226

227+
static int ellipsize (lv_State *L) {
228+
LVUserDataInfo * user = (LVUserDataInfo *)lv_touserdata(L, 1);
229+
if( user ){
230+
LVLabel* view = (__bridge LVLabel *)(user->object);
231+
if( lv_gettop(L)>=2 ) {
232+
NSInteger lineBreakMode = lv_tonumber(L, 2);// 2
233+
if( [view isKindOfClass:[LVLabel class]] ){
234+
view.lineBreakMode = lineBreakMode;
235+
return 0;
236+
}
237+
} else {
238+
int lineBreakMode = view.lineBreakMode;
239+
lv_pushnumber(L, lineBreakMode );
240+
return 1;
241+
}
242+
}
243+
return 0;
244+
}
245+
225246
+(int) classDefine: (lv_State *)L {
226247
{
227248
lv_pushcfunction(L, lvNewLabel);
@@ -236,6 +257,7 @@ +(int) classDefine: (lv_State *)L {
236257
{"fontSize", fontSize},
237258
{"textSize", fontSize},
238259

260+
{"ellipsize", ellipsize},
239261
{"textAlign", textAlignment},
240262
{"gravity", textAlignment},
241263

IOS/LuaViewSDK/Classes/lvsdk/LVSystem.m

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,26 @@ +(int) classDefine:(lv_State *)L {
203203
lv_pushnumber(L, NSTextAlignmentCenter);
204204
lv_setfield(L, -2, "CENTER");// 上下左右都居中
205205
}
206+
{
207+
// TextAlign常量. LEFT RIGHT CENTER
208+
lv_settop(L, 0);
209+
const struct lvL_reg lib [] = {
210+
{NULL, NULL}
211+
};
212+
lvL_register(L, "Ellipsize", lib);// 文本太多 "..." 出现的问题
213+
214+
lv_pushnumber(L, UILineBreakModeHeadTruncation);
215+
lv_setfield(L, -2, "START");
216+
217+
lv_pushnumber(L, UILineBreakModeMiddleTruncation);
218+
lv_setfield(L, -2, "MIDDLE");
219+
220+
lv_pushnumber(L, UILineBreakModeTailTruncation);
221+
lv_setfield(L, -2, "END");
222+
223+
lv_pushnumber(L, UILineBreakModeCharacterWrap);
224+
lv_setfield(L, -2, "MARQUEE");
225+
}
206226
{
207227
lv_settop(L, 0);
208228
const struct lvL_reg lib [] = {

0 commit comments

Comments
 (0)