ngui.md

由 louistru 创建, 最后一次修改 2017-11-22

ngui

Class: GUIApplication

快捷方式 --> GUIApplication

Class: ViewController

快捷方式 --> ViewController

nextFrame(cb)

渲染下一帧画面后执行,快捷方式 --> nextFrame(cb)

New(vx[,parent[,...args]])

New(vx[,...args])

通过vx描述数据创建视图或视图控制器,快捷方式 --> New()

CSS(sheets)

定义样式表,快捷方式 --> CSS()

isViewXml(vx[,type])

测试参数vx是否为视图描述数据并且为type类型

如果不传入type不检测类型

Get: app

获取当前GUIApplication实例

Get: root

获取当前Root实例

Get: rootCtr

获取当前根ViewController实例

Get: displayPort

获取当前DisplayPort实例

Get: atomPixel

屏幕原子像素尺寸,快捷方式 --> atomPixel

Class: View

gui核心部件,用它来描述屏幕上所有可见的元素,它是所有视图的基础类型

它也是事件的响应者,这些事件由硬件以及操作系统触发

包括Touch Mouse Keyboard

View.onBack

View.onClick

View.onTouchstart

View.onTouchmove

View.onTouchend

View.onTouchcancel

View.onKeydown

View.onKeypress

View.onKeyup

View.onKeyenter

View.onFocus

View.onBlur

View.onHighlighted

View.onRemoveView

View.onActionKeyframe

View.onActionLoop

View.constructor()

构造函数调用前必需先创建GUIApplication否则抛出异常

Example:

import { View, Div, ngui } from 'ngui'

var v = new View();
v.x = 100;
v.y = 100;
ngui.root.append(v);

// jsx语法只能存在于.jsx文件中
var v2 = ngui.New(<Div width=100 height=100 backgroundColor="#f00" />, v);
v2.onClick.on(function(ev) {
    console.log('div click');
})

View.firstButton()

查询内部的第一个Button

hasChild(view)

测试view视图是否为当前视图的后代视图

View.prepend(child)

前置子视图

View.append(child)

追加子视图

View.appendText(text)

追击文本字符串到结尾,不同的视图追加到结尾的最终结果不同

如: View会追加成Label, Div会追加成Text, 而Hybrid则会追加成TextNode

但追加到结尾的都为叶子视图

View.appendTo(parent)

追加到父视图结尾

  • @arg parent {View}

View.before(prev)

插入到前面

View.after(next)

插入到后面

View.moveToBefore();

移动到上一个兄弟视图前面

View.moveToAfter();

移动到下一个兄弟视图后面

View.moveToFirst();

移动到第一个

View.moveToLast();

移动到最后一个

View.remove()

从父视图删除

View.removeAllChild()

删除所有子视图

View.focus()

获取焦点成功返回true

View.blur()

辞去焦点成功返回true

View.layoutOffset()

获取当前视图与父视图之间的偏移量,不包括xy

只有Layout才有此值其它非布局视图都为vec2(0,0)

View.layoutOffsetFrom([upper])

获取当前视图与upper视图之间的布局偏移量,不包括xy值,upper必需为父级视图

如果不传入upper默认为parent

  • @arg [upper=parent] {View}
  • @ret {Vec2}

View.children(index)

通过索引获取子视图

View.getAction()

获取当前视图动作

View.setAction(action)

设置动作

Get: View.action

获取动作,与getAction()功能相同

Set: View.action

设置动作,可选的值为Action或可用于创建Actionjson描述Object

原型为: view.setAction(action.create(json))

View.transition(style[,delay[,cb]])

View.transition(style[,cb])

创建过度动画动作并立即开始播放并返回KeyframeAction

原型为: action.transition(view,style,delay,cb)

播放结束回调

Callback: cb()

View.show()

显示视图,默认为设置view.visible = true 当然你可以重写该方法

View.hide()

隐藏视图 默认为设置view.visible = false

View.screenRect()

获取视图实际在屏幕中最小左上角与最大右下角所形成的矩形,注意Trap in Layout

View.finalMatrix()

基础矩阵与父视图最终矩阵的乘积,注意Trap in Layout

View.finalOpacity()

当前视图的不透明度与父视图的最终不透明度的乘积

View.position()

获取视图最终在屏幕上的位置,注意Trap in Layout

实际上这个方法返回的是view.finalMatrix()最终矩阵中的translate位移分量

Trap in Layout

  • 对于Layout视图而言,如果当前视图或相关视图有更改过与布局相关的属性,

    这时如果立即获取与屏幕位置相关的属性值或方法调用结果可能会不准确,

    因为布局视图始终都在渲染前才进行更新,这时应该使用到nextFrame(cb)这个函数,

    nextFrame(cb)总是在渲染完帧后执行

View.overlapTest(point)

给定一个屏幕中上的座标点测试是否被视图包围

View.addClass(name)

添加class样式选择器

View.removeClass(name)

删除class样式选择器

View.toggleClass(name)

切换class样式选择器

Get: View.childrenCount

返回子视图数量

View.innerText

获取与设置视图内部的文本

设置时不同的视图结果会有所不同,与appendText(text)类似

View.id

获取或设置id,这个id在同一个视图控制器作作用域中不可以重复

可以通过topCtr.find(id)获取这个视图

Get: View.controller

Get: View.ctr

如果这个视图拥有ViewController可通过ctrcontroller获取它,

这个视图称之为关键视图,ViewController称之为成员视图控制器,

关键视图下面所有后代视图以及子视图控制器都属于这个作用域中的成员,

成员视图的top属性都指向当前关键视图,成员视图的topCtr以及子视图控制器的parent都指向成员视图控制器属性,

如果这些成员有具名的id,可以通过成员视图控制器ViewController.find(id)找到这些成员

Get: View.top

指向关键视图

Get: View.topCtr

指向成员视图控制器

Get: View.parent

返回父视图,Root没有父视图

Get: View.prev

上一个兄弟视图

Get: View.next

下一个兄弟视图

Get: View.first

第一个子视图

Get: View.last

最后一个子视图

View.x

矩阵变换中的位移translate.x

View.y

矩阵变换中的位移translate.y

View.scaleX

矩阵变换缩放x

View.scaleY

矩阵变换缩放y

View.rotateZ

矩阵变换旋转z

View.skewX

矩阵变换斜歪x

View.skewY

矩阵变换斜歪y

View.opacity

不透明度

View.visible

显示与隐藏true为显示false隐藏,Layout不占用位置

Get: View.finalVisible

最终是否显示或隐藏,受父视图影响

View.translate

矩阵变换位移

View.scale

矩阵变换缩放

View.skew

矩阵变换斜歪

View.originX

矩阵变换的原点x,默认为0

View.originY

矩阵变换的原点x,默认为0

View.origin

矩阵变换的原点,默认为vec2(0,0)

Get: View.matrix

基础矩阵,通过计算从父视图矩阵开始的位移,缩放,旋转,歪斜得到的矩阵。注意Trap in Layout

Get: View.level

gui视图树中的等级level, Root视图为1, 如果为0表示这个视图还没有父视图

View.needDraw

强制必需渲染该视图

needDraw=false

如果这个值为false在渲染优化中会忽略没有在屏幕范围内的视图元素,

以及这个视图下的所有后代视图不管这些后代视图是否在屏幕范围内部,

当这个值为true时会强制绘制这个视图不管是否在屏幕范围内外。

View默认为true,那些可见的视图默认都为false如:Div/Sprite/Hybrid

View.receive

是否响应接收事件,默认为false不接收,事件会穿透到最底层直到有视图接收并处理该事件,

但当有事件监听时会自动设置为true,当然你可以手动关闭它。

View.isFocus

是否为焦点状态,焦点状态可以响应键盘事件,以及非触屏与非鼠标事件,当然你要确保receive为打开状态

Get: View.viewType

返回视图类型的id不同的视图都有唯一的值

View.style

实际上设置与返回都为自己,这个属性只为便捷性而存在

Get: View.class

返回class样式表选择器对像

Set: View.class

设置class样式表选择器

Example:

// Prints:
// {
//   name: "a b"
// }
view.class = 'a b'
console.log(view.class);

Class: Sprite

图像精灵类型,非Layout视图, 任何变化都不会激活局部布局或连锁布局反应,

通过此它可以选取图像任意位置大小显示到屏幕,

在需要更高性能的地方可考虑使用它代替Image视图

Sprite.src

图像路径,reader中支持的路径协议都可以

或者使用$(path)函数读取包内路径文件

Sprite.width

Default0

  • 浮点类型的宽度,这里的单位并非为像素,这要参照DisplayPort设置的尺寸与屏幕的缩放

  • 这个值也表示选取图像的宽度,当然这个值会受ratio影响,ratio越小实际选取的图像范围越大

  • {float}

Sprite.height

浮点类型的高度 Default0

Sprite.start

  • 开始选取图像的开始位置,这个值为图像的实际像素值,但受ratio的影响

  • 如: 现在有一张实际像素为100*100像素的图像,start设置为vec2(25,25)

    如果ratio=vec2(0.5,0.5)那么实际选取的位置为图像的vec2(50,50)的位置与ratio成反比

    实际上现在可以将这张图像看做为50*50比实际缩小了0.5

Defaultvec2(0,0)

Sprite.startX

选取图像有开始位置x Default0

Sprite.startY

选取图像有开始位置y Default0

Sprite.ratio

图像本身的缩放比例尺,这个值越小显示的图像范围越大,实际反应在屏幕上图像比例会变得更小

Defaultvec2(1,1)

Sprite.ratioX

图像比例尺x

Sprite.ratioY

图像比例尺y

Sprite.repeat

图像是否重复,默认为不重复none, 可选的值参见Repeat

  • 运行在OpenGLES 2.0模式时这里设置为重复时,可能会出现图像不显示的情况,

    因为gles2.0建议使用非2^n尺寸图像,这有利于性能优化,现在还有很多低端Android设备运行gles2.0

    所以需要尽量注意在这些设备上使用非2^n尺寸图像

  • {Repeat}

Class: Label

标签文本视图对像,具备简单的文本布局,任何变化都不会激活联锁布局计算,在要尔更高性能的地方可考虑使用

Get: Label.length

获取标签视图文本内容长度

Label.value

获取与设置广本值

Get: Label.textHoriBearing

文本基线距离文本顶部的距离,不同字体与不同尺寸字号会不相同

Get: Label.textHeight

文本顶部与底部的距离

Label.textAlign

标签文本的对齐与排列方式 Default left

支持以下方式:

  • left - 从左到右排列并且以左边对齐

  • right - 从左到右排列并且以右边对齐

  • center - 从左到右排列并且以居中对齐

  • leftReverse - 从右到左排列并且以左边对齐

  • rightReverse - 从右到左排列并且以右边对齐

  • centerReverse - 从右到左排列并且以居中对齐

  • {TextAlign}

Class: Layout

  • abstract class
  • extends View

  • 所有布局视图的基础类型,这是个抽象类型并没有构造函数,

  • 继承于它的视图属性的变化都会一定程度的引起布局计算,以及影响到与它相关的兄弟、父级、后代视图的布局计算,

    所以它相对于没有自动布局运算的视图性能要低,你可以合理使用这些类型来达到更好的性能,

  • 比如在设置尺寸时尽量使用明确的数值尽量少使用fullauto之类模糊值,模糊的值有时需要进行多次迭代布局运算才能得出结果,

    甚至你可以将布局视图与非布局视图相互嵌套使用来阻断连锁布局。

Get: Layout.clientWidth

布局的clientWidth宽度,在Box中这个值包含finalMargin

Get: Layout.clientHeight

布局的clientHeight高度,在Box中这个值包含finalMargin

Class: Span

Class: TextNode

  • extends Span

  • 文本布局的叶子视图,它不能再存在子视图

Get: TextNode.length

文本字符串的长度

TextNode.value

获取与设置文本字符串

Get: TextNode.textHoriBearing

文本基线距离文本顶部的距离,不同字体与不同尺寸字号会不相同

Get: TextNode.textHeight

文本顶部与底部的距离

Class: Box

  • abstract class
  • extends Layout

盒子模型,布局的核心部件,这是个抽象类型并没有构造函数

Box.width

盒子的宽度,应尽量使用明确值来降低布局运算 Defaultauto

盒子的尺寸在布局运算结果中分为明确值与模糊

可选的值:

  • auto - 自动模糊值受内部挤压影响,挤压也会影响到父视图与兄弟视图导致连锁反应会使它们的重新布局

  • full - 设置为这个类型的值时不管父视图是否有明确值都会填满父视图width

    当然这里是使用clientWidth填满,所以这里还需要marginborder参与运算。

    使用这个类型的值时,如果父视图没有明确宽度值,会导致最长最复杂的迭代运算。

  • pixel - 明确的像素数值并非真正就义上的像素,使用浮点数表示但在这里不能为负,

    1代表屏幕的多少像素需要参照DisplayPort中设置的尺寸与屏幕的缩放

  • percent - 百分比值使用10%形式表示,取父视图width的百分比值,需要父视图有明确width

    否则百分比值不会生效,为模糊值与auto无异

  • minus - 减小值用10!形式表示,使用父视图的最终width减去这个值得到的值,

    与百分比一样需要父视图有明确width值,否则减小值不会生效,为模糊值与auto无异

  • {Value}

Box.height

盒子的高度,可选值参考height Defaultauto

Box.marginLeft

左边的外边距 Default0

可选的值:

  • auto - 当父视图width与当前width都为明确值时才会生效,结果会等于父视图最终width减去当前width

    如果marginRight同时为auto这个值减半,相当于整个视图在父视图中居中

  • full - 与设置auto结果相同

  • pixel - 明确的数值,但不能为负数

  • percent - 使用父视图的百分比,父视图需要有明确宽度,否则无效

  • minus - 使用父视图的最终width减去这个值得到的值,父视图需要有明确宽度,否则无效

  • {Value}

Box.marginTop

顶部的外边距 可选值参考marginLeft Default0

Box.marginRight

右边的外边距 可选值参考marginLeft Default0

Box.marginBottom

底部的外边距 可选值参考marginLeft Default0

Box.borderLeft

左边框 Default0 #000000ff

Box.borderTop

上边框 Default0 #000000ff

Box.borderRight

右边框 Default0 #000000ff

Box.borderBottom

下边框 Default0 #000000ff

Box.borderLeftWidth

左边框宽度 Default0

Box.borderTopWidth

上边框宽度 Default0

Box.borderRightWidth

右边框宽度 Default0

Box.borderBottomWidth

下边框宽度 Default0

Box.borderLeftColor

左边框颜色 Default#000000ff

Box.borderTopColor

上边框颜色 Default#000000ff

Box.borderRightColor

右边框颜色 Default#000000ff

Box.borderBottomColor

下边框颜色 Default0

Box.borderRadiusLeftTop

左上圆角尺寸 Default0

Box.borderRadiusRightTop

右上圆角尺寸 Default0

Box.borderRadiusRightBottom

右下圆角尺寸 Default0

Box.borderRadiusLeftBottom

左下圆角尺寸 Default0

Box.backgroundColor

背景颜色 Default #0000 不透明度为0的黑色

Box.newline

是否在新行开始布局 Default false

Get: Box.finalWidth

获取最终宽度

Get: Box.finalHeight

获取最高度

Get: Box.finalMarginLeft

获取最终布局后的左外边距宽度

Get: Box.finalMarginTop

获取最终布局后的上外边距宽度

Get: Box.finalMarginRight

获取最终布局后的右外边距宽度

Get: Box.finalMarginBottom

获取最终布局后的下外边距宽度

Set: Box.margin

同时设置全部外边距

Set: Box.border

同时设置全部边框

Set: Box.borderWidth

同时设置全部的边框宽度值

Set: Box.borderColor

同时设置全部的边框颜色值

Set: Box.borderRadius

同时设置全部的边圆角值

Class: Div

盒子模型的一种实现,定义内部Box的对齐与排列方式,

并且会忽略非Box内容的布局,不对其进行布局计算

Div.contentAlign

内容的对齐与排列方式 Default left

  • left - 水平布局,从左到右排列布局,溢出往下换行

  • right - 水平布局,从右到左排列布局,溢出往下换行

  • top - 垂直布局,从上到下排列布局,溢出往右边换行

  • bottom - 垂直布局,从下到上排列布局,溢出往右换行

  • {ContentAlign}

Class: Hybrid

盒子模型的一种实现,定义内部Layout的对齐与排列方式,

并且会忽略非Layout内容的布局,不对其进行布局计算

Hybrid.textAlign

内容以及文本的对齐与排列方式 Default left

混合视图只能使用水平布局:

  • left - 内容从左到右排列并且以左边对齐

  • right - 内容从左到右排列并且以右边对齐

  • center - 内容从左到右排列并且以居中对齐

  • leftReverse - 内容从右到左排列并且以左边对齐

  • rightReverse - 内容从右到左排列并且以右边对齐

  • centerReverse - 内容从右到左排列并且以居中对齐

  • {TextAlign}

Class: Limit

限制盒子,限制盒子的最小尺寸与最大尺寸

Limit.minWidth

实际为width属性的别名,但在这里做为限制最小宽度使用

最小宽度不会超过maxWidth最大宽度的限制,如果超过取maxWidth

Default auto

Limit.minHeight

实际为height属性的别名,但在这里做为限制最小高度使用

最小高度不会超过maxHeight最大高度的限制,如果超过取maxHeight

Default auto

Limit.maxWidth

限制最大宽度 Default auto

Limit.maxHeight

限制最大高度 Default auto

Class: Indep

独立的盒子视图,它的偏移位置不受布局方式的影响,布局方式以自身的对齐方式为准

Indep.alignX

水平对齐方式,默认为left,有效的值为:

  • left - 水平左对齐

  • cerent - 水平居中对齐

  • right - 水平右对齐

  • {Align}

Indep.alignY

垂直对齐方式,默认为top,有效的值为:

  • top - 垂直顶部对齐

  • cerent - 垂直居中对齐

  • bottom - 垂直底部对齐

  • {Align}

Class: LimitIndep

独立的限制盒子视图,顾名思义兼具独立盒子与限制盒子的特性

Indep.minWidth

实为width别名,但这里做为限制最小宽度使用 --> Limit.minWidth

Indep.minHeight

实为height别名,但这里做为限制最小高度使用 --> Limit.minHeight

Indep.maxWidth

限制最大宽度 --> Limit.maxWidth

Indep.maxHeight

限制最大高度 --> Limit.maxHeight

Class: Image

  • extends Div

  • 图像视图的尺寸设置为auto时会使用源图像的像素尺寸并不会受内部挤压,这与Div不同

  • 如果width为明确数值height=auto时高度会按图像比例进行缩放,

    反过来height为明确数值时亦然相同,如果同时为auto使用源图像的尺寸

Image.src

源图像路径,reader中支持的路径协议都可以

或者使用$(path)函数读取包内路径文件

Image.backgroundImage

背景图像,这个属性是为了在src图像还在载入中时这个可以做为临时图像源使用

Get: Image.sourceWidth

源图像的像素宽度

Get: Image.sourceHeight

源图像的像素高度

Class: SelectPanel

按钮面板视图,它对Button有特别的作用,专门针对tv设备遥控器操作而设计

需要与Button配合使用,否则与Div无异

以下所说的切换都为按下遥控器或键盘时

SelectPanel.onFocusMove

内部Button焦点切换时触发

SelectPanel.allowLeave

是否允许内部Button按钮将焦点切换到外部

SelectPanel.allowEntry

是否允许外部Button按钮将焦点切换到内部

SelectPanel.intervalTime

切换的时间限制,离上一次切换时间不到intervalTime不允许切换

SelectPanel.enableSelect

是否允许内部Button切换焦点

Get: SelectPanel.isActivity

是否激活状态,当内部Button拥有焦点时为激活状态

Get: SelectPanel.parentPanel

SelectPanel视图

Class: Button

按钮视图,这个视图默认绑定click后使用高亮样式

Button.defaultHighlighted

是否使用高亮样式默认,Default true

Button.setHighlighted(status)

设置高亮

Button.findNextButton(direction)

查找指定方向相邻的按钮,按钮必需在SelectPanel才能查找,找不到返回null

Get: Button.panel

Class: Root

  • extends SelectPanel

  • 根视图,这个视图暂时只能是唯一的但未来可能会变化

Class: BasicScroll

  • abstract class

滚动面板的基础类型,这是个抽象类型并没有构造函数

BasicScroll.scrollTo(scroll[,duration[,curve]])

滚动到指定位置,并可指定滚动动画的时间与曲线

  • @arg scroll {Vec2}
  • @arg [duration] {uint} ms, 过渡时间,不传入参数使用defaultScrollDuration
  • @arg [curve] {Curve} 过渡的曲线,不传入参数使用defaultScrollCurve

BasicScroll.terminate()

中止当前过渡或惯性运动

BasicScroll.scroll

滚动到指定位置

BasicScroll.scrollX

滚动到指定x位置

BasicScroll.scrollY

滚动到指定y位置

BasicScroll.scrollWidth

可滚动内容宽度

BasicScroll.scrollHeight

可滚动内容高度

BasicScroll.scrollbar

是否显示滚动条

BasicScroll.resistance

惯性滚动阻力,最小0.5

BasicScroll.bounce

是否使用反弹 Default true

BasicScroll.bounceLock

是否锁定反弹 Default true

当内容尺寸小于当前Scroll尺寸时是否可以拖拽并反弹,true表示不能被拖拽

BasicScroll.momentum

拖拽是否引发惯性运动

BasicScroll.lockDirection

是否锁定方向,只能往一个轴向滚动

BasicScroll.catchPositionX

Default 1

  • 捕获位置x

  • scrollX最终总是会停止在捕获值的倍数位置,

  • 小于1表示捕获当前Scroll视图的finalWidth

  • {float}

BasicScroll.catchPositionY

Default 1

  • 捕获位置y,小于1表示捕获当前Scroll视图的finalHeight

  • {float}

BasicScroll.scrollbarColor

滚动条的颜色

Get: BasicScroll.hScrollbar

当前是否显示hScrollbar

Get: BasicScroll.vScrollbar

当前是否显示vScrollbar

BasicScroll.scrollbarWidth

滚动条的宽度

BasicScroll.scrollbarMargin

滚动条的边距

BasicScroll.defaultScrollDuration

调用scrollTo 或设置scroll时的默认滚动过渡时间,Default 0

BasicScroll.defaultScrollCurve

默认滚动曲线 Default easeOut

Class: Scroll

滚动条的实现

Scroll.onScroll

滚动时触发

Scroll.focusMarginLeft

内部按钮切换时滚动的左边距

Scroll.focusMarginRight

内部按钮切换时滚动的右边距

Scroll.focusMarginTop

内部按钮切换时滚动的上边距

Scroll.focusMarginBottom

内部按钮切换时滚动的下边距

Scroll.focusAlignX

内部按钮切换时x轴滚动对齐方式

Scroll.focusAlignY

内部按钮切换时y轴滚动对齐方式

Scroll.enableFocusAlign

内部按钮切换时是否滚动可见位置 Default true

Scroll.enableFixedScrollSize

设置并启用固定滚动大小,当设置值为vec2(0,0)时禁用固定滚动尺寸,使用实际内容的滚动尺寸

Class: Text

文本叶子视图

Get: Text.length

文本字符串长度

Text.value

获取或设置文本字符串

Get: Text.textHoriBearing

文本基线距离文本顶部的距离,不同字体与不同尺寸字号会不相同

Get: Text.textHeight

文本顶部与底部的距离

Class: Input

单行文本输入框

Text.type

文本键盘类型:

  • normal -
  • ascii -
  • number -
  • url -
  • numberPad -
  • phonePad -
  • namePhonePad -
  • email -
  • decimalPad -
  • twitter -
  • webSearch -
  • asciiNumnerPad -

  • {KeyboardType}

Text.returnType

文本框键盘返回类型:

  • normal -
  • go -
  • join -
  • next -
  • route -
  • search -
  • send -
  • done -
  • emergencyCall -
  • continue -

  • {KeyboardReturnType}

Text.placeholder

当文本框值为空时,显示的占位字符串

Text.placeholderColor

占位字符颜色

Text.security

是否将文本显示为安全模式

Text.textMargin

文本内容显示的左右边距

Class: Textarea

多行文本输入框

Class: Clip

裁剪视图,可以将溢出盒子外部的内容裁剪掉

Class: TextFont

  • abstract class

普通文本与字体属性,这是个抽象类型并没有构造函数

View.textBackgroundColor

文本背景颜色 Default inherit

View.textColor

文本颜色 Default inherit

View.textSize

文本字号大小 Default inherit

View.textStyle

文本样式 Default inherit

  • inherit - 继承
  • light - 细体
  • regular - 正常
  • bold - 粗体
  • ...

  • {TextStyle}

View.textFamily

文本字体家族名称列表字符串,多个使用逗号分割 Default inherit

View.textShadow

文本阴影 Default inherit

View.textLineHeight

文本行高 Default inherit

可选的值为

  • inherit - 继承
  • auto - 使用字体文件中的默认值
  • xxx - 具体数值

  • {TextLineHeight}

View.textDecoration

文本装饰 Default inherit

  • inherit - 继承父视图
  • none - 无装饰
  • overline - 上划线
  • lineThrough - 中划线
  • underline - 下划线

  • {TextDecoration}

Class: TextLayout

布局文本字体属性,这是个抽象类型并没有构造函数

View.textOverflow

文本溢出动作 Default inherit

  • inherit - 继承父视图
  • normal - 不做处理
  • clip - 修剪
  • ellipsis - 修剪并在文本末尾显示省略号
  • centerEllipsis - 修剪并在文本中间显示省略号

  • {TextOverflow}

View.textWhiteSpace

文本空格处理方式 Default inherit

  • inherit - 继承父视图
  • normal - 保留所有空白,使用自动wrap
  • noWrap - 合并空白序列,不使用自动wrap
  • noSpace - 合并空白序列,使用自动wrap
  • pre - 保留所有空白,不使用自动wrap
  • preLine - 合并空白符序列,但保留换行符,使用自动wrap

  • {TextWhiteSpace}
以上内容是否对您有帮助:

二维码
建议反馈
二维码