Nativescript - добавить границу сверху на панель действий
Привет, ребята, у меня проблема, я хочу добавить красную рамку вверху к моей панели действий. Вот мой код ниже -
<ActionBar class=" border-top" title="" loaded="loaded" >
<NavigationButton ></NavigationButton>
<ActionBar.actionItems >
<ActionItem ios.position="right" >
<ActionItem.actionView>
<AbsoluteLayout >
<Label text="" class="action-item gray" />
</AbsoluteLayout>
</ActionItem.actionView>
</ActionItem>
<ActionItem ios.position="right" >
<ActionItem.actionView>
<AbsoluteLayout class="{{ selectedPage ==='contacts' ? 'higlight-menu-item':'' }}">
<Label text="" class="action-item gray" />
</AbsoluteLayout>
</ActionItem.actionView>
</ActionItem>
</ActionBar.actionItems>
</ActionBar>
и в моем app.css
.border-top {
border-top-color:#ec295f;
border-top-width:2;
}
Это работает нормально на устройствах Android, но на IOS его не показывает Кажется, что нет никакого готового решения для IOS, я нашел Проблемы здесь https://github.com/NativeScript/NativeScript/issues/5395
https://github.com/NativeScript/NativeScript/issues/2470
Но там я не знаю, как это написать?? Я пытаюсь несколько дней, но без решения кто-то может немного помочь??
1 ответ
Решение
В Nativescript нет решения, поэтому мне пришлось получить доступ к нативным методам IOS и написать собственное решение. Вот мое решение:
var colorModule = require("color");
var red = new colorModule.Color("#ec295f");
const frameModule = require('ui/frame');
if (frameModule.topmost().ios) {
let controller = frameModule.topmost().ios.controller;
let navBar = controller.navigationBar;
let border = new UIView(CGRectMake(0, 1, navBar.frame.size.width, 2));
border.backgroundColor = UIColor(red.ios);
border.opaque = true;
navBar.addSubview(border);
}
Надеюсь, это поможет кому-то:)