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

經過多次嘗試,問題似乎是我的快速課程。我清空了所有的東西,它的工作正常......我會繼續以這種方式進行搜索 –