nativescript-listview-header
Version:
A ios UITableView plugin for nativescript which allows you to add table headerview
68 lines (67 loc) • 3.35 kB
JavaScript
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var list_view_1 = require("ui/list-view");
var view_1 = require("ui/core/view");
var dependency_observable_1 = require("ui/core/dependency-observable");
var proxy_1 = require("ui/core/proxy");
var utils_1 = require("utils/utils");
var dependency_observable_2 = require("ui/core/dependency-observable");
exports.knownTemplates = list_view_1.knownTemplates;
var ListViewWithHeader = (function (_super) {
__extends(ListViewWithHeader, _super);
function ListViewWithHeader() {
_super.apply(this, arguments);
}
Object.defineProperty(ListViewWithHeader.prototype, "tableHeaderView", {
get: function () {
return this._tableHeaderView;
},
set: function (view) {
if (view) {
this._addView(view);
this.ios.tableHeaderView = view.ios;
view.ios.frame = CGRectMake(0, 0, this.ios.bounds.size.width, 1);
}
else {
this._removeView(this._tableHeaderView);
this.ios.tableHeaderView = null;
}
this._tableHeaderView = view;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ListViewWithHeader.prototype, "showDisclosureIndicator", {
get: function () {
return this._getValue(ListViewWithHeader.showDisclousureIndictorProperty);
},
set: function (value) {
this._setValue(ListViewWithHeader.showDisclousureIndictorProperty, value);
},
enumerable: true,
configurable: true
});
ListViewWithHeader.prototype._prepareCell = function (cell, indexPath) {
var retValue = _super.prototype._prepareCell.call(this, cell, indexPath);
cell.accessoryType = this.showDisclosureIndicator ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone;
return retValue;
};
ListViewWithHeader.prototype.onMeasure = function (widthMeasureSpec, heightMeasureSpec) {
_super.prototype.onMeasure.call(this, widthMeasureSpec, heightMeasureSpec);
if (this._tableHeaderView) {
var childHeightMeasureSpec = utils_1.layout.makeMeasureSpec(0, utils_1.layout.UNSPECIFIED);
var childMeasuredSize = view_1.View.measureChild(this, this._tableHeaderView, widthMeasureSpec, childHeightMeasureSpec);
view_1.View.layoutChild(this, this._tableHeaderView, 0, 0, childMeasuredSize.measuredWidth, childMeasuredSize.measuredHeight);
this._tableHeaderView.ios.frame = CGRectMake(0, 0, this.ios.bounds.size.width, childMeasuredSize.measuredHeight);
}
};
ListViewWithHeader.showDisclousureIndictorProperty = new dependency_observable_1.Property("showDisclosureIndicator", "ListViewWithHeader", new proxy_1.PropertyMetadata(false, dependency_observable_2.PropertyMetadataSettings.None, null, null, function (data) {
var listView = data.object;
listView.ios.reloadData();
}));
return ListViewWithHeader;
})(list_view_1.ListView);
exports.ListViewWithHeader = ListViewWithHeader;