2014-07-04 49 views
4

我想用自定义单元格使用Swift创建表格视图。相同的代码在单个页面应用程序中工作,但在基于选项卡的应用程序中,它在表格视图内容上添加了灰色层。iOS Swift - 自定义UITableViewCell不能使用标签栏

这是我的自定义单元格类:

class CardCell:UITableViewCell { 
    @IBOutlet var backImg: UIImageView! 
    @IBOutlet var testButton: UIButton! 

    func loadItem(var title:String) { 
     backImg.image = UIImage(named: title) 
    } 
} 

这里是的viewController:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

    var items = ["swift 1.jpeg", "swift 2.jpeg"] 

    @IBOutlet var tableView:UITableView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     var nib = UINib(nibName: "CardCell", bundle: nil) 
     tableView.registerNib(nib, forCellReuseIdentifier: "CardCell") 
    } 

    func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int { 
     return items.count 
    } 

    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { 
     var cell:CardCell = tableView.dequeueReusableCellWithIdentifier("CardCell") as CardCell 
     var (title) = items[indexPath.row] 
     cell.loadItem(title) 
     return cell 
    } 
} 
+0

试试这个:'self.tableView.registerClass(UITableViewCell.self,forCellReuseIdentifier:“CardCell”)' –

+0

我这是通过调整简单地固定了类似的问题故事板中的原型单元格。这似乎是一个错误。不知道这是否是你遇到的问题,但它值得一试。 –

回答

0

你必须使用的UITableViewController类是更好。 如果你使用的UIView然后,控制器:

import UIKit 
import QuartzCore 

class OthersViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, MFMailComposeViewControllerDelegate { 

    /*init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { 
     super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) 
     // Custom initialization 
    }*/ 

    let arrData = ["Row 1","Row 2","Row 3","Row 4","Row 5"]; 
    let dict = NSMutableDictionary() 
    let arrImage = ["image 1","image 2","image 3","image 4","image 5","image 6"]; 
    let kLCellIdentifier = "CellIdentifier" 
    var tblVc = UITableView(); 

    override func viewDidLoad() { 
     dict.setObject(arrData, forKey: "dsd") 

     super.viewDidLoad() 
     self.title = "Others" 
     self.view.backgroundColor = UIColor.clearColor() 
     tblVc.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) 
     tblVc.delegate = self; 
     tblVc.dataSource = self; 
     tblVc.tableFooterView = UIView(frame: CGRectMake(0, 0, self.view.frame.size.width, 0)) 
     tblVc.backgroundColor = UIColor.clearColor(); 
     tblVc.separatorColor = UIColor.redColor(); 
     self.view.addSubview(tblVc); 

     // Do any additional setup after loading the view. 
    } 

    func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int{ 
     return arrData.count 
    } 

    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!{ 
     var cell = tableView.dequeueReusableCellWithIdentifier(kLCellIdentifier) as UITableViewCell! 
     if !cell { 
      cell = UITableViewCell(style:.Default, reuseIdentifier: kLCellIdentifier) 
     } 

     cell.backgroundColor = UIColor.clearColor() 
     cell.textLabel.text = arrData[indexPath.row] 
     cell.image = UIImage(named: "\(arrImage[indexPath.row])"); 

     cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator; 
     cell.selectionStyle = UITableViewCellSelectionStyle.None; 

     return cell; 
    } 
    func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat 
    { 
     return 60; 
    } 
    func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) { 
     switch (indexPath.row) { 
     case 0: 
     break; 
     case 1: 

      break; 
     case 2: 
      break; 
     case 3: 
      break; 
     case 4: 
     case 5: 
      break; 
     default: 
      break; 
     } 
    } 
相关问题