1

您好希望创建具有超环的自定义tableViewCell。问题是,我不知道如何去做。我试着迅速类实现它:自定义TableViewCell与Appcelerator Hyperloop

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

不知道为什么它不起作用,但它似乎并不像没有超循环一样无法完成任何事情......为什么不使用Appcelerator创建自己的tableview单元格/行布局?

+0

我试图让它在JS中。我没有想到如何去做。这就是为什么我已经迅速尝试过。 –

+0

似乎它应该是有能力的,所以也许你只需要刷新文档?或者可能发布你想要的行看起来像,也许可以帮助指出你在正确的方向。 – Ray

+0

经过多次尝试,问题似乎是我的快速课程。我清空了所有的东西,它的工作正常......我会继续以这种方式进行搜索 –