View 类
基本的容器视图
基本容器视图,用来存放其他子视图
@note 由于Android布局系统原因,建议不要使用绝对值进行相关布局,而使用相对布局(Match Parent, Wrap Content, margin, Gravity)。大多数情况下,需要使用绝对值的布局可以被相对布局代替,比如需要在距离屏幕底部100的位置有个按钮,可使用:Gravity.Bottom加marginBottom来实现。 如果一定需要获取屏幕高度,并根据此高度布局,使用window:height()获取高度,并监听window:sizeChanged(function),在屏幕尺寸改变时,改变相应视图
变量
_priveta_class_name : string
name : string
方法
width
设置视图宽度
view宽度,可设置MeasurementType的枚举值(SDK>=1.0.5), 默认是MeasurementType.WRAP_CONTENT
参数
- size : number|MeasurementType 宽度值
返回值
- : View
width
获取视图宽度
获取视图的宽度
返回值
- 浮点数,视图宽度 : number
height
设置视图高度
view高度,可设置MeasurementType的枚举值(SDK>=1.0.5, 默认是MeasurementType.WRAP_CONTENT
参数
- size : number|MeasurementType 高度值
返回值
- : View
height
获取视图高度
获取视图的高度值
返回值
- 浮点数,视图高度 : number
marginTop
设置视图的上外边距
设置视图的上外边距,SDK>=1.0.2,只能在LinearLayout中有用
参数
- value : number 间距值
返回值
- : View
marginTop
获取视图的上外边距
获取视图的上外边距, SDK>=1.0.2 只能在特殊layout中有用
返回值
- 间距值 : number
marginLeft
设置视图的左外边距
设置视图的左外边距,SDK>=1.0.2 只能在特殊layout中有用
参数
- value : number 间距值
返回值
- : View
marginLeft
获取视图的左外边距
获取视图的左外边距,SDK>=1.0.2 只能在特殊layout中有用
返回值
- 浮点数,间距值 : number
marginBottom
设置视图的下外边距
获取视图的下外边距,SDK>=1.0.2 只能在特殊layout中有用,具体请参考Lua基础布局简介
参数
- value : number 间距值
返回值
- : View
marginBottom
获取视图的下外边距
获取视图的下外边距,SDK>=1.0.2 只能在特殊layout中有用,具体请参考Lua基础布局简介
返回值
- 浮点数,间距值 : number
marginRight
设置视图的右外边距
设置视图的右外边距,SDK>=1.0.2 只能在特殊layout中有用,具体请参考Lua基础布局简介
参数
- value : number 间距值
返回值
- : View
marginRight
获取视图的右外边距
获取视图的右外边距,SDK>=1.0.2 只能在特殊layout中有用,具体请参考Lua基础布局简介
返回值
- 浮点数,间距值 : number
priority
约束优先级,范围0-1000
设置约束计算优先级,数值越大越优先计算,占据的可用位置便越大,具体请参考Lua基础布局简介
@note 只能在LinearLayout中有用
参数
- priority : number 范围0-1000
返回值
- : View
priority
获取约束优先级,范围0-1000
获取约束计算优先级,数值越大越优先计算,占据的可用位置便越大,具体请参考Lua基础布局简介
@note 只能在LinearLayout中有用
返回值
- 约束优先级 : number
weight
约束权重(百分比),范围0-1000
约束权重(百分比)。当子视图A的Weight为3,B的Weight为4时,则A占容器的3/7,B占容器的4/7。
@note 只能在LinearLayout中有用
参数
- weight : number 范围0-1000
返回值
- : View
weight
获取约束权重(百分比),范围0-1000
获取约束权重(百分比)。
@note 只能在LinearLayout中有用
返回值
- 约束权重 : number
padding
设置视图的内边距
参数
- top : number top:距顶部的距离
- right : number right:距右侧的距离
- bottom : number bottom:距底部的距离
- left : number left:距左侧的距离
返回值
- : View
setMaxWidth
设置最大宽度约束
设置最大宽度约束,SDK>=1.1.5,配合自适应使用,当宽度为WRAP_CONTENT或MATCH_PARENT时有效
@note 配合自适应使用,对于嵌套视图父视图设置该属性,子视图超出父视图范围的情况,可以导致效果和预期不一致,此时需要对父视图使用clipToBounds切割子视图,iOS默认不切割子视图
参数
- number_a : number 约束值
返回值
- : View
setMinWidth
设置最小宽度约束
设置视图最小宽度约束,SDK>=1.1.5,配合自适应使用,当宽度为WRAP_CONTENT或MATCH_PARENT时有效
@note 配合自适应使用,对于嵌套视图父视图设置该属性,子视图超出父视图范围的情况,可以导致效果和预期不一致,此时需要对父视图使用clipToBounds切割子视图,iOS默认不切割子视图
参数
- value : number 约束值
返回值
- : View
setMaxHeight
设置最大高度约束
设置视图最大高度约束,SDK>=1.1.5,配合自适应使用,当高度为WRAP_CONTENT或MATCH_PARENT时有效
@note 配合自适应使用,对于嵌套视图父视图设置该属性,子视图超出父视图范围的情况,可以导致效果和预期不一致,此时需要对父视图使用clipToBounds切割子视图,iOS默认不切割子视图
参数
- value : number 约束值
返回值
- : View
setMinHeight
设置最小高度约束
设置视图最小高度约束,SDK>=1.1.5,配合自适应使用,当高度为WRAP_CONTENT或MATCH_PARENT时有效
@note 配合自适应使用,对于嵌套视图父视图设置该属性,子视图超出父视图范围的情况,可以导致效果和预期不一致,此时需要对父视图使用clipToBounds切割子视图,iOS默认不切割子视图
参数
- value : number 约束值
返回值
- : View
superview
返回该视图的父视图对象
返回当前控件的父视图,window返回nil
@note window返回nil
返回值
- 父视图 : View
addView
添加子视图
将子视图添加到当前视图,该方法只有容器类拥有
参数
- subView : View 任意继承自View的视图实例对象
返回值
- : View
insertView
将视图插入到当前视图的某一个层级
将视图插入到当前视图的某个层级,该方法只有容器类拥有
参数
- subView : View 子视图
- idx : number idx:插入的位置,0为最底部,往上递增
返回值
- : View
removeFromSuper
从父视图中移除自身
从父视图中移除自身
返回值
- : View
removeAllSubviews
移除当前视图所有的子视图
移除当前视图的所有子视图
返回值
- : View
convertPointTo
坐标转换
将自身的点的坐标换算到参考视图的坐标系中
@note 被转换的坐标来自于自身
参数
返回值
- 转换之后的点,位于参考视图 : Point
convertPointFrom
坐标转换
将参考view的点坐标换算到自身的坐标系中
@note 被转换的坐标来自于参考视图
参数
返回值
- 转换后的坐标点,位于自身 : Point
setGravity
布局相关
设置当前view吸附状态
@note SDK>=1.0.2 只能在特殊layout中有用,eg: LinearLayout,默认吸附左上角
参数
返回值
- : View
convertRelativePointTo
坐标转换
将自身的点的坐标换算到参考view的坐标中, 在可滚动视图中,与android一致,表现为屏幕上显示的相对坐标
参数
返回值
- 转换后的点 : Point
alpha
设置视图透明度,范围 0 ~ 1
@note 在iOS,当透明度小于0.1之后,将无法响应事件
参数
- value : number 透明值:0.0~1.0
返回值
- : View
alpha
获取视图透明度
返回值
- 透明值 : number
hidden
设置视图是否隐藏,默认为false,不隐藏。该方法隐藏后依然占位,如果不想占位,请使用gone
参数
- isHidden : boolean 是否隐藏,默认false
返回值
- : View
hidden
获取视图是否隐藏
返回值
- 布尔值 : boolean
gone
设置视图是否隐藏,开启后,视图在LinearLayout中将不占位置
设置当前视图是否隐藏且不占位,SDK>=1.2.1,在新布局中有效,hidden方法是隐藏但是占位
参数
- isGone : boolean 是否隐藏,传true隐藏,传false展示
返回值
- : View
gone
获取视图是否隐藏
获取当前视图是否是隐藏且不占位,SDK>=1.2.1,在新布局有效
返回值
- 布尔值,是否隐藏 : boolean
borderWidth
设置视图的边框宽度
参数
- value : number 边框宽度
返回值
- : View
borderWidth
获取视图的边框宽度值
返回值
- 浮点数,视图宽度 : number
borderColor
设置视图的边框颜色
参数
- color : Color 颜色,默认为黑色
返回值
- : View
borderColor
获取视图的边框颜色
返回值
- 颜色 : Color
bgColor
设置视图的背景颜色
参数
- color : Color 颜色
返回值
- : View
bgColor
获取视图的背景颜色
返回值
- 颜色 : Color
cornerRadius
设置视图的圆角半径
@note iOS默认不切割,使用CornerManager开启自动切割,调用clipToBounds手动控制是否切割,Android默认切割超出部分
参数
- radius : number 半径值
返回值
- : View
cornerRadius
获取视图的圆角半径,默认返回左上角
返回值
- 浮点数,半径值 : number
setCornerRadiusWithDirection
设置圆角半径,根据不同的位置
@note 不能与阴影连用
参数
- radius : number 圆角半径
- corner : RectCorner TOP_LEFT:左上 TOP_RIGHT:右上 BOTTOM_LEFT:左下 BOTTOM_RIGHT:右下 , @see RectCorner
返回值
- : View
getCornerRadiusWithDirection
根据不同的方向获取视图圆角半径
参数
- corner : RectCorner TOP_LEFT:左上 TOP_RIGHT:右上 BOTTOM_LEFT:左下 BOTTOM_RIGHT:右下 , @see RectCorner
返回值
- 圆角半径,默认返回左上角 : number
clipToBounds
设置子视图是否在view的边界内绘制
@note Android:clipToBounds只能对parent使用,parent会遍历子View,让所有子View都统一clipToBounds。注:parent自己不生效,需要调用parent的parent才行。 IOS:clipToBounds只能对View自己生效
参数
- isClip : boolean 是否开启边界内绘制
返回值
- : View
notClip
设置圆角后,是否切割,默认切割false;优化性能使用
<# nil #
@note iOS空实现,仅Android可用,Android sdk1.5.0 默认切割子View。可以改用addCornerMask()绘制圆角遮罩
参数
- noClip : boolean 是否切割
返回值
- : View
addCornerMask
以覆盖一张中间透明周边含有指定颜色圆角的图片的方式实现圆角效果
在iOS上, 切割圆角在一定情况下会触发离屏渲染等问题,在大量圆角且可滚动的页面中,可能会有明显的掉帧体验(低端设备比较明显),为了优化这种性能问题,所以提供该方案来解决类似的性能问题。
@note 这是一种提高圆角切割性能的方案,对于子视图超出父视图显示的情况,不建议使用该方式。
参数
- cornerRadius : number cornerRadius:圆角半径
- maskColor : Color maskColor:圆角遮罩的颜色
- corners : RectCorner 指定含有圆角的位置,并且可以通过与方式指定多个圆角,具体枚举值见RectCorner
返回值
- : View
setGradientColor
设置线性渐变色
参数
- startColor : Color start:开始颜色
- endColor : Color end:结束颜色
- isVertical : boolean vertical:true代表从上到下,false代表从左到右
返回值
- : View
setGradientColorWithDirection
设置线性渐变色,支持正向反向
参数
- startColor : Color 开始颜色
- endColor : Color 结束颜色
- type : GradientType gradientType:GradientType.LEFT_TO_RIGHT 值为1 代表从左到右, GradientType.RIGHT_TO_LEFT 值为2 代表从右到左, GradientType.TOP_TO_BOTTOM 值为3 代表从上到下,GradientType.BOTTOM_TO_TOP代 值为4 表从下到上
返回值
- : View
enabled
设置当前视图是否可以响应用户的点击,触摸等交互事件
@note 该属性关闭后,不仅会导致自身无法响应事件,而且子视图也无法响应事件。所以当业务中遇到某些控件无法响应,可以考虑是否是自身或父视图禁用了用户交互。
参数
- usable : boolean 是否可以用户交互
返回值
- : View
enabled
获取当前视图是否可以响应用户的点击,触摸等交互事件
<# nil #
返回值
- 布尔值 : boolean
onClick
设置点击事件回调
回调格式:
```
function()
end
```
@note iOS采用的是手势监听,所以要注意事件冲突,在冲突时可使用touchEnd方法
参数
- callback : function()
返回值
- : View
onLongPress
设置长按回调
回调格式:
```
function()
end
```
参数
- callback : function()
返回值
- : View
onTouch
设置有坐标的点击回调
回调格式:
```
function(number x,number y)
---x:x轴坐标
---y:y轴坐标
end
```
@note 已废弃,在需要 回调点击坐标的情况下请结合实际场景使用touchBegin或者touchEnd方法
参数
返回值
- : View
hasFocus
获取是否有焦点
获取当前视图是否有焦点,在iOS端理解为第一响应者
返回值
- true是否焦点 : boolean
canFocus
判断是否能获取焦点
获取当前视图是否可以获得焦点
返回值
- true为可以获得焦点 : boolean
requestFocus
获取焦点
请求焦点,即请求成为第一响应者
返回值
- : View
cancelFocus
取消焦点
取消焦点,即取消第一响应者
返回值
- : View
touchBegin
触摸开始的回调
设置当触摸开始时的回调,并回调坐标值
回调格式:
```
function(number x,number y)
---x:x轴坐标
---y:y轴坐标
end
```
参数
返回值
- : View
touchMove
触摸移动中的回调
设置触摸移动中的回调,并回调坐标值
回调格式:
```
function(number x,number y)
---x:x轴坐标
---y:y轴坐标
end
```
@note 该回调会在移动中多次调用
参数
返回值
- : View
touchEnd
触摸结束后的回调
设置触摸结束后的回调,并回调坐标值
回调格式:
```
function(number x,number y)
---x:x轴坐标
---y:y轴坐标
end
```
@note 该坐标是手指抬起时的坐标
参数
返回值
- : View
touchCancel
触摸取消的回调
设置触摸取消时的回调,并回调坐标值
回调格式:
```
function(number x,number y)
---x:x轴坐标
---y:y轴坐标
end
```
@note 该回调在用户移出当前视图时会调用
参数
返回值
- : View
touchBeginExtension
触摸开始时的回调
增强版触摸开始时回调,会在回调中返回额外的信息
回调格式:
```
function(map)
---map参数如下:
---x:触摸时相对父控件x坐标值
---y:触摸时相对父控件y坐标值
---screenX:触摸时相对屏幕x坐标
---screenY:触摸时相对屏幕Y坐标
---target:触摸到的view
---timeStamp:触摸时间(单位s)
end
```
参数
- callback : function(map)
返回值
- : View
touchMoveExtension
触摸移动时的回调
增强版触摸移动中回调,会在回调中返回额外的信息
回调格式:
```
function(map)
---map参数如下:
---x:触摸时相对父控件x坐标值
---y:触摸时相对父控件y坐标值
---screenX:触摸时相对屏幕x坐标
---screenY:触摸时相对屏幕Y坐标
---target:触摸到的view
---timeStamp:触摸时间(单位s)
end
```
参数
- callback : function(map)
返回值
- : View
touchEndExtension
触摸结束时的回调
增强版触摸结束的回调,会在回调中返回额外的信息
回调格式:
```
function(map)
---map参数如下:
---x:触摸时相对父控件x坐标值
---y:触摸时相对父控件y坐标值
---screenX:触摸时相对屏幕x坐标
---screenY:触摸时相对屏幕Y坐标
---target:触摸到的view
---timeStamp:触摸时间(单位s)
end
```
参数
- callback : function(map)
返回值
- : View
touchCancelExtension
触摸取消时的回调
增强版触摸取消时的回调,会在回调中返回额外的信息
回调格式:
```
function(map)
---map参数如下:
---x:触摸时相对父控件x坐标值
---y:触摸时相对父控件y坐标值
---screenX:触摸时相对屏幕x坐标
---screenY:触摸时相对屏幕Y坐标
---target:触摸到的view
---timeStamp:触摸时间(单位s)
end
```
参数
- callback : function(map)
返回值
- : View
setPositionAdjustForKeyboard
设置是否开启键盘出现后视图自动位移
@note 已废弃
参数
- isOpen : boolean 是否开启
返回值
- : View
setPositionAdjustForKeyboardAndOffset
是否开启键盘出现后视图自动位移,并可设置偏移量
@note 已废弃
参数
- isOpen : boolean 是否开启
- offset : number 偏移量
返回值
- : View
anchorPoint
锚点,动画作用的位置,从0~1的比例,在视图中对应位置
参数
- x : number 横向位置,范围0~1
- y : number 竖向位置,范围0~1
返回值
- : View
transform
旋转视图,可以控制绝对旋转还是叠加旋转
@note 已废弃,请使用rotation方法
参数
- rotate : number 旋转角度值,0~360
- add : boolean 是否叠加,默认false
返回值
- : View
rotation
旋转视图
旋转视图,范围-360~360,默认在视图旋转状态基础上进行叠加旋转
参数
- rotate : number 旋转角度值,0~360
- notAdding : boolean 基于当前状态,旋转angle弧度 SDK>=1.2.2 ,@notAdding 是否不叠旋转 SDK>=1.5.1
返回值
- : View
scale
缩放视图
设置视图横向和纵向的缩放比例
@note 参数c是iOS平台隐藏参数,默认不要传
参数
- x : number x轴缩放倍数0~max
- y : number y轴缩放倍数0~max
- add : boolean 设置当前视图缩放是否从初始状态开始,默认false在当前视图缩放比例基础上进行缩放
返回值
- : View
translation
位移视图
设置视图的横向和纵向的偏移量
@note 参数c是iOS隐藏属性,默认不要传
参数
- x : number x轴位移量(单位是pt,dp)
- y : number y轴位移量(单位是pt,dp)
- add : boolean 设置当前视图位移是否从初始状态开始,默认false在当前视图位移基础上进行位移
返回值
- : View
transformIdentity
重置Transform
当我们在设置了Transform属性(rotation,scale,translation)之后想要重置到初始化状态时,可以调用该方法
返回值
- : View
removeAllAnimation
移除视图上的帧动画
移除视图上设置过的帧动画,即Animation动画
返回值
- : View
snapshot
视图截屏
截图方法,当业务有需要将当前视图的内容保存下来的时候,可以调用该方法进行截图
@note 请在界面绘制完毕后,再进行截图操作
参数
- filename : string 保存图片的文件名
返回值
- 图片路径 : string
addBlurEffect
添加高斯模糊
为当前视图增加高斯模糊效果
@note iOS有效,Android空实现
返回值
- : View
removeBlurEffect
移除高斯模糊
移除当前视图上增加的高斯模糊效果
@note iOS有效,Android空实现
返回值
- : View
openRipple
设置点击时的效果
开启视图的高亮点击效果,通常用在cell的点击效果上
@note Android上为波纹效果,iOS上是一种灰色高亮
参数
- open : boolean 是否打开
返回值
- : View
canEndEditing
设置是否开启点击收起键盘功能
设置是否开启点击收起键盘功能,只能当子视图唤起的键盘,才能触发收起
参数
- open : boolean 是否开启点击取消编辑功能
返回值
- : View
bringSubviewToFront
将当前视图的子视图移动到所有子视图的最上层
在添加子视图时,默认是新添加的视图在已有的上层,当业务需要将最早添加的视图移动到最上层是,使用该方法
⚠️LinearLayout不可使用该方法。️Android不能实现将某个View放入图层下方或上方,View可以做到是通过将子视图加入顺序调换实现,LinearLayout若调换顺序,将导致布局出错
@note LinearLayout不可使用该方法。️Android不能实现将某个View放入图层下方或上方,View可以做到是通过将子视图加入顺序调换实现,LinearLayout若调换顺序,将导致布局出错
参数
- subView : View 子视图
返回值
- : View
sendSubviewToBack
将子视图放到最下层
在添加子视图是,默认新添加的视图在最上层,当业务需要将新添加的视图移动到最下层时,使用该方法
⚠️LinearLayout不可使用该方法。️Android不能实现将某个View放入图层下方或上方,View可以做到是通过将子视图加入顺序调换实现,LinearLayout若调换顺序,将导致布局出错
@note LinearLayout不可使用该方法。️Android不能实现将某个View放入图层下方或上方,View可以做到是通过将子视图加入顺序调换实现,LinearLayout若调换顺序,将导致布局出错
参数
- subView : View 子视图
返回值
- : View
bgImage
给视图设置背景图片
@note 背景图片只支持本地资源
参数
- imageName : string 图片名字,不带后缀
返回值
- : View
addShadow
给视图添加矩形或圆形阴影
参数
- shadowColor : Color 阴影颜色,Android不可修改
- shadowOffset : Size 阴影偏移量
- shadowRadius : number 阴影半径
- opacity : number 阴影透明度0~1.0
- isOval : boolean 是否是圆形阴影,默认为false
返回值
- : View
setShadow
设置视图阴影
@note 1.cornerRadius+Shadow 使用时: 1)不能对同一个View用ClipToBounds(),否则无效; 2)Android 给子View使用Shadow,子View不能充满容器,否则阴影被Parent切割 2.setCornerRadiusWithDirection 禁止与Shadow连用; 3.阴影的View有Z轴高度,会遮挡没有Z轴高度的同层View
参数
- shadowOffset : Size 阴影偏移量
- shadowRadius : number 阴影半径,数值越大,阴影越大,默认3
- opacity : number 阴影透明度0~1.0
返回值
- : View
onDetachedView
子视图从父视图移除时的回调
当这个视图从父视图移除,或者当该视图的父视图从祖父视图移除时都会回调
回调格式:
```
function()
end
```
参数
- callback : function()
返回值
- : View
startAnimation
开始画布动画(CanvasAnimation),不会影响布局
@note 不可使用FrameAnimation和Animation
参数
- animation : CanvasAnimation 画布动画
返回值
- : View
clearAnimation
停止View里的画布动画
@note 非画布动画不会停止
返回值
- : View