我需要使用省略号溢出限制标签的最大行数。
使用NativeScript核心,它将起作用。
var label = page.getViewById("label");
if (label.ios) {
label.ios.numberOfLines = 2;
label.ios.lineBreakMode = NSLineBreakMode.ByTruncatingTail;
} else if (label.android) {
label.android.setMaxLines(2);
label.android.setEllipsize(android.text.TextUtils.TruncateAt.END);
}
但这不适用于vue,因为无论如何,ios
总是返回undefined
。
<template>
<Page>
<StackLayout orientation="vertical">
<Label ref="label" text="A big text"></Label>
</StackLayout>
</Page>
</template>
<script>
export default {
mounted() {
let label = this.$refs.label; // works.
//label.nativeView <- works.
//label.nativeView.ios <- undefined.
//label.nativeView.android <- undefined.
//It's weird, because if I list the keys of nativeView, the 'ios' property is present...
for (let key in label.nativeView) {
console.log(key);
}
}
}
</script>
我使用iphone 6 plus(iOS 12.1.2)对此进行了测试。我没有要测试的android设备,不知道结果是否符合预期。
带有NativeScript Core HERE的游乐场链接。
带有NativeScript-Vue HERE的游乐场链接。
答案 0 :(得分:1)
问题不在于Vue,而是在您访问本机视图的确切时间。安装组件时,本机视图可能未准备好。您可以像在Core中一样使用loaded
的{{1}}事件,也可以使用Page
本身的loaded
事件,以确保创建了本机视图。
更新:我已经更新了您的Playground。