您想用hyperloop创建自定义tableViewCell。问题是,我不知道如何。我试过用一个快速的类来实现它:
Cell.swift
import UIKit
public class MyCell: UITableViewCell{//UICollectionViewCell {
public var imgUser:UIImageView = UIImageView()
public var labUerName:UILabel = UILabel()
public var labMessage:UILabel = UILabel()
public var labTime:UILabel = UILabel()
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
NSLog("la");
imgUser.backgroundColor = UIColor.blue
imgUser.translatesAutoresizingMaskIntoConstraints = false
labUerName.translatesAutoresizingMaskIntoConstraints = false
labMessage.translatesAutoresizingMaskIntoConstraints = false
labTime.translatesAutoresizingMaskIntoConstraints = false
labUerName.frame = CGRect(x: 5, y: 5, width: 70, height: 30)
contentView.addSubview(imgUser)
contentView.addSubview(labUerName)
contentView.addSubview(labMessage)
contentView.addSubview(labTime)
}
public required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
public func setName(txt: String){
labUerName.text = txt
}
}
在我的tabbleview控制器中:
(function (container) {
var UIScreen = require('UIKit/UIScreen'),
UIColor = require('UIKit/UIColor'),
UITableView = require('UIKit/UITableView'),
UITableViewCell = require('UIKit/UITableViewCell'),
NSIndexPath = require('Foundation').NSIndexPath,
UITableViewStyleGrouped = require('UIKit').UITableViewStyleGrouped,
UITableViewCellStyleSubtitle = require('UIKit').UITableViewCellStyleSubtitle,
UITableViewCellAccessoryDisclosureIndicator = require('UIKit').UITableViewCellAccessoryDisclosureIndicator;
// Grabs the JSON-file from app/lib/static/data.json
var file = Ti.Filesystem.getFile(Ti.Filesystem.getResourcesDirectory() + 'static/data.json');
var users = JSON.parse(file.read().text).users;
var Cell = require('MyFramework/MyCell'); // HERE IS MY CUSTOM CELL
// Subclass delegate + data source
var TableViewDataSourceAndDelegate = require('subclasses/tableviewdatasourcedelegate');
// Create + configure tableView
var tableView = UITableView.alloc().initWithFrameStyle(UIScreen.mainScreen.bounds, UITableViewStyleGrouped);
var dataSourceDelegate = new TableViewDataSourceAndDelegate();
dataSourceDelegate.numberOfSections = function(tableView) {
return 1;
};
dataSourceDelegate.numberOfRows = function(tableView, section) {
return users.length;
};
dataSourceDelegate.titleForHeader = function(tableView, section) {
return 'Available users: ' + users.length;
};
dataSourceDelegate.heightForRow = function(tableView, indexPath) {
return 44;
};
dataSourceDelegate.cellForRow = function(tableView, indexPath) {
var user = users[indexPath.row];
var cell = tableView.dequeueReusableCellWithIdentifierForIndexPath('hyperloop_cell', indexPath);
cell.setName('abc');
return cell;
};
dataSourceDelegate.didSelectRowAtIndexPath = function(tableView, indexPath) {
alert('Call me maybe: ' + users[indexPath.row].phone);
tableView.deselectRowAtIndexPathAnimated(indexPath, true);
};
// Assign delegate + data source
tableView.registerClassForCellReuseIdentifier(Cell.self, "hyperloop_cell");
tableView.setDelegate(dataSourceDelegate);
tableView.setDataSource(dataSourceDelegate);
container.add(tableView);
})($.tableview_container);
我不知道如何使用它。有谁可以帮助我吗 ? 感谢
答案 0 :(得分:0)
不确定为什么它不起作用,但是看起来你没有做过任何没有超级循环无法完成的事情......为什么不创建自己的tableview单元格/行使用Appcelerator进行布局?