 	}
 	
 	@objc func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
-		let height = elements[indexPath.row].frame.height
-		return height > CGFloat(0) ? height : defaultRowHeight
+		let element = elements[indexPath.row]
+		return cachedHeights[memoryAddress(element)] ?? defaultRowHeight
 	}
 	
 	@objc func numberOfSectionsInTableView(tableView: UITableView) -> Int {

	
	public override func createView() -> ViewType {
		let tableView = FewTableView(frame: CGRectZero)
		layoutElements()
		tableView.handler = TableViewHandler(tableView: tableView, elements: elements)
		tableView.handler?.selectionChanged = selectionChanged
		tableView.alpha = alpha

import UIKit

private var ElementKey = "ElementKey"

private func memoryAddress(object: AnyObject) -> String {
	let ptr = Unmanaged<AnyObject>.passUnretained(object).toOpaque()
	return "\(ptr)"
}

private let defaultRowHeight: CGFloat = 42

