2015-07-29 6 views
1

Я пытаюсь создать ячейку tableview программно с разной высотой. Я посмотрел на другие ответы, но не нашел никакой помощи.динамическая UITableViewCell высота программно

// 
// ViewController.swift 
// CustomCell 
// 
// Created by AJ Norton on 7/29/15. 
// Copyright (c) 2015 AJ Norton. All rights reserved. 
// 

import UIKit 

class ViewController: UITableViewController { 


    var arr = ["image1.jpg", "image2.jpg"] 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    self.title = "he" 

    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine 

    self.tableView.registerClass(CustCellTableViewCell.self, forCellReuseIdentifier: "cell") 
    // Do any additional setup after loading the view, typically from a nib. 


    } 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
    } 




    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var cell = tableView.dequeueReusableCellWithIdentifier("cell") as! CustCellTableViewCell 

    cell.label.text = arr[indexPath.row] 
    cell.imageContainer.image = UIImage(named: arr[indexPath.row]) 
    return cell 
    } 

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



    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    var i = UIImage(named: arr[indexPath.row])! 
    return CGFloat(i.size.height + 15.0) 

    } 

} 

это мой заказ клетка:

// 
// CustCellTableViewCell.swift 
// CustomCell 
// 
// Created by AJ Norton on 7/29/15. 
// Copyright (c) 2015 AJ Norton. All rights reserved. 
// 

import UIKit 

class CustCellTableViewCell: UITableViewCell { 

    lazy var imageContainer: UIImageView = { 
    var i = UIImageView() 
    i.setTranslatesAutoresizingMaskIntoConstraints(false) 

    return i 
    }() 

    lazy var label: UILabel = { 
    var l = UILabel() 
    l.setTranslatesAutoresizingMaskIntoConstraints(false) 
    l.textColor = UIColor.redColor() 
    return l 
    }() 



    override func awakeFromNib() { 
    super.awakeFromNib() 


    // Initialization code 
    } 

    override func setSelected(selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
    } 


    override func layoutSubviews() { 
    self.addSubview(label) 
    self.addSubview(imageContainer) 

    self.backgroundColor = UIColor.greenColor() 

    var viewDict = ["label": label, "image": imageContainer] 

    var constraint1 = NSLayoutConstraint.constraintsWithVisualFormat("H:|-5-[image]-5-|", options: NSLayoutFormatOptions(0), metrics: nil, views: viewDict) 
    var constraint2 = NSLayoutConstraint.constraintsWithVisualFormat("V:|[label]-[image]|", options: NSLayoutFormatOptions(0), metrics: nil, views: viewDict) 
    var constraint3 = NSLayoutConstraint.constraintsWithVisualFormat("H:|[label]|", options: NSLayoutFormatOptions(0), metrics: nil, views: viewDict) 

    self.addConstraints(constraint1) 
    self.addConstraints(constraint2) 
    self.addConstraints(constraint3) 

    self.sizeToFit() 
    } 
} 

Когда я запустить приложение я получаю это: image. Я хочу, чтобы изображения, чтобы занять их максимальную высоту (300px) для клетки (также весь фон должен быть зеленым. Спасибо за ваше время

ответ