在 iOS 上使 NativeScript ListView 透明
Make a NativeScript ListView Transparent on iOS
我试图让 NativeScript <ListView>
在 iOS 上透明,但我失败了。我在 https://groups.google.com/forum/#!topic/nativescript/-MIWcQo-l6k 找到了一个关于该主题的旧线程,但是当我尝试解决方案时它对我不起作用。这是我的完整代码:
/* app.css */
Page { background-color: black; }
<!-- main-page.xml -->
<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="loaded">
<ListView id="list-view" items="{{ items }}" itemLoading="itemLoading">
<ListView.itemTemplate>
<Label text="{{ name }}" />
</ListView.itemTemplate>
</ListView>
</Page>
// main-page.js
var ios = require("utils/utils");
var Observable = require("data/observable").Observable;
var ObservableArray = require("data/observable-array").ObservableArray;
var page;
var items = new ObservableArray([]);
var pageData = new Observable();
exports.loaded = function(args) {
page = args.object;
page.bindingContext = pageData;
// Toss a few numbers in the list for testing
items.push({ name: "1" });
items.push({ name: "2" });
items.push({ name: "3" });
pageData.set("items", items);
};
exports.itemLoading = function(args) {
var cell = args.ios;
if (cell) {
// Use ios.getter for iOS 9/10 API compatibility
cell.backgroundColor = ios.getter(UIColor.clearColor);
}
}
如有任何帮助,我们将不胜感激。谢谢!
不要忘记将列表视图设置为透明,似乎本身就有背景颜色
ListView{
background-color: transparent;
}
目前在 NativeScript 2.4 中以下工作
var cell = args.ios;
if (cell) {
cell.selectionStyle = UITableViewCellSelectionStyleNone
}
如果你想改变选择突出显示的颜色,这是一个简单的方法,我没有测试性能但它在 iPhone 6.
上工作正常
import { Color } from 'color';
cell.selectedBackgroundView = UIView.alloc().initWithFrame(CGRectMake(0, 0, 0, 0));
let blue = new Color('#3489db');
cell.selectedBackgroundView.backgroundColor = blue.ios
不确定是否有更好的方法来做到这一点,但这对我在 iOS 上使用 NativeScript 2.4 有用,A) 使 ListView 背景透明,B) 在项目被点击:
let lvItemLoading = (args) => {
let cell = args.ios;
if (cell) {
// Make the iOS listview background transparent
cell.backgroundColor = ios.getter(cell, UIColor.clearColor);
// Create new background view for selected state
let bgSelectedView = UIView.alloc().init();
bgSelectedView.backgroundColor = new Color("#777777").ios;
bgSelectedView.layer.masksToBounds = true;
cell.selectedBackgroundView = bgSelectedView;
}
};
我试图让 NativeScript <ListView>
在 iOS 上透明,但我失败了。我在 https://groups.google.com/forum/#!topic/nativescript/-MIWcQo-l6k 找到了一个关于该主题的旧线程,但是当我尝试解决方案时它对我不起作用。这是我的完整代码:
/* app.css */
Page { background-color: black; }
<!-- main-page.xml -->
<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="loaded">
<ListView id="list-view" items="{{ items }}" itemLoading="itemLoading">
<ListView.itemTemplate>
<Label text="{{ name }}" />
</ListView.itemTemplate>
</ListView>
</Page>
// main-page.js
var ios = require("utils/utils");
var Observable = require("data/observable").Observable;
var ObservableArray = require("data/observable-array").ObservableArray;
var page;
var items = new ObservableArray([]);
var pageData = new Observable();
exports.loaded = function(args) {
page = args.object;
page.bindingContext = pageData;
// Toss a few numbers in the list for testing
items.push({ name: "1" });
items.push({ name: "2" });
items.push({ name: "3" });
pageData.set("items", items);
};
exports.itemLoading = function(args) {
var cell = args.ios;
if (cell) {
// Use ios.getter for iOS 9/10 API compatibility
cell.backgroundColor = ios.getter(UIColor.clearColor);
}
}
如有任何帮助,我们将不胜感激。谢谢!
不要忘记将列表视图设置为透明,似乎本身就有背景颜色
ListView{
background-color: transparent;
}
目前在 NativeScript 2.4 中以下工作
var cell = args.ios;
if (cell) {
cell.selectionStyle = UITableViewCellSelectionStyleNone
}
如果你想改变选择突出显示的颜色,这是一个简单的方法,我没有测试性能但它在 iPhone 6.
上工作正常import { Color } from 'color';
cell.selectedBackgroundView = UIView.alloc().initWithFrame(CGRectMake(0, 0, 0, 0));
let blue = new Color('#3489db');
cell.selectedBackgroundView.backgroundColor = blue.ios
不确定是否有更好的方法来做到这一点,但这对我在 iOS 上使用 NativeScript 2.4 有用,A) 使 ListView 背景透明,B) 在项目被点击:
let lvItemLoading = (args) => {
let cell = args.ios;
if (cell) {
// Make the iOS listview background transparent
cell.backgroundColor = ios.getter(cell, UIColor.clearColor);
// Create new background view for selected state
let bgSelectedView = UIView.alloc().init();
bgSelectedView.backgroundColor = new Color("#777777").ios;
bgSelectedView.layer.masksToBounds = true;
cell.selectedBackgroundView = bgSelectedView;
}
};