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()
}
}
Когда я запустить приложение я получаю это: . Я хочу, чтобы изображения, чтобы занять их максимальную высоту (300px) для клетки (также весь фон должен быть зеленым. Спасибо за ваше время