Nativescript-Vue Удалить цвет касания ListView для iOS

Как изменить цвет нажатия на элемент списка? Мое приложение - темная тема, поэтому, когда вы нажимаете на ячейку, появляется белая вспышка, что довольно некрасиво. Я пробовал следующее:

составная часть

const ls  = this.$refs.list

ls.itemLoading=(args)=>{
  const cell = args.ios;
  cell.selectionStyle = UITableViewCellSelectionStyle.UITableViewCellSelectionStyleNone;

} 

Я также пробовал это в моем методе mounted для компонента, имеющего ListView

this.$refs.list журналы:

 _uid: 20,
_isVue: true,
'$options':
{ parent:
{ _uid: 19,
_isVue: true,
'$options': [Object],
_renderProxy: [Object],
_self: [Circular],
'$parent': [Object],
'$root': [Object],
'$children': [Object],
'$refs': [Object],
_watcher: [Object],
_inactive: null,
_directInactive: false,
_isMounted: true,
_isDestroyed: false,
_isBeingDestroyed: false,
_events: [Object],
_hasHookEvent: false,
_vnode: [Object],
_staticTrees: null,
'$vnode': [Object],
'$slots': {},
'$scopedSlots': {},
_c: [Object],
'$createElement': [Object],
'$attrs': [Getter/Setter],
'$listeners': [Getter/Setter],
'$store': [Object],
_watchers: [Object],
_props: [Object],
clearHistory: [Object],
go: [Object],
_data: [Object],
clubs: [<…>

person Packy    schedule 19.12.2018    source источник


Ответы (2)


Использовать привязку событий для itemLoading

HTML

<ListView ref="listview" @itemLoading="onItemLoading">

JS

onItemLoading: function(args) {
   const cell = args.ios;
   if (cell) {
     cell.selectionStyle = UITableViewCellSelectionStyle.UITableViewCellSelectionStyleNone;
   }
}
person Manoj    schedule 20.12.2018
comment
Есть ли это событие в ListView Nativescript-Vue ?? В Документах есть только событие itemTap: nativescript-vue. org / en / docs / elements / components / list-view - person Packy; 21.12.2018
comment
Вы можете увидеть весь список событий в официальных документах ListView и следуйте синтаксису, соответствующему вашей структуре. - person Manoj; 21.12.2018
comment
Но все ли они представлены как события в компоненте ListView vue? - person Packy; 21.12.2018
comment
Да, конечно. Все основные события / API применимы для Vue. NativeScript-Vue - это просто оболочка для основных компонентов, которая позволяет разработчикам Vue повторно использовать свои знания и необычные функции фреймворка. - person Manoj; 21.12.2018
comment
Спасибо! Для меня это было неочевидно, поскольку я просто просматривал документы nativescript-vue.org, в которых было указано только событие Tap. - person Packy; 21.12.2018
comment
Извините за это, надеюсь, вы сейчас в порядке. Удачного кодирования с {N} Vue. - person Manoj; 21.12.2018

Ваш код выглядит хорошо. Однако вы просто немного сбились с пути.

Вы ссылаетесь на модуль listview через свой файл require. Вам нужно использовать событие в экземпляре ListView, а не в модуле.

Итак, в событии страницы или событии жизненного цикла vue для страницы / компонента вы должны получить экземпляр своего ListView из своего шаблона, а затем использовать событие itemLoading так же, как оно у вас есть. ????

person Brad Martin    schedule 19.12.2018
comment
Я попытался добавить ref в ListView, а в mounted сделал this.$refs.list.itemLoading=(args) ..., но не повезло - person Packy; 20.12.2018
comment
можно ли выйти из экземпляра list, чтобы убедиться, что это ListView? - person Brad Martin; 20.12.2018
comment
Я только что обновил вопрос, что возвращает <ListView ref="listview"> - person Packy; 20.12.2018
comment
Было бы this.$refs.list.nativeView для ListView? Я не знаю Vue, поэтому не уверен, просто видел это раньше с другими вопросами. - person Brad Martin; 20.12.2018