我有UITableViewAutomaticDimension一個問題:UITableViewAutomaticDimension以編程方式添加圖像
在我的tableview我有多個imageviews與計算出的高度編程的方式創建:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "managePlayset", for: indexPath) as! ManagePlaysetTableViewCell
let playset = playsets[indexPath.row]
cell.playsetName.text = playset.name
if (playset.musicItems?.count)! > 0 {
var i = 0
for musicItem in (playset.musicItems?.array)! {
let imageView = UIImageView(image: (musicItem as! MusicItem).getFirstPhoto())
imageView.frame = CGRect(x: cell.contentView.frame.origin.x+CGFloat(i)*(imageWidth+10.0), y: cell.contentView.frame.origin.y+40, width: imageWidth, height: imageWidth)
imageView.contentMode = .scaleAspectFit
cell.contentView.addSubview(imageView)
let constraint = NSLayoutConstraint(item: imageView,
attribute: NSLayoutAttribute.bottomMargin, relatedBy:
NSLayoutRelation.equal, toItem: cell.contentView,
attribute: NSLayoutAttribute.bottomMargin, multiplier: 1,
constant: 0)
cell.contentView.addConstraint(constraint)
i = i + 1
}
}
cell.editButton.tag = indexPath.row
return cell
}
在viewDidLoad中我設置:
let width = view.frame.width
imageWidth = width/CGFloat(maxItemsOnPage) - 10.0
tableView.estimatedRowHeight = imageWidth + 20.0
tableView.rowHeight = UITableViewAutomaticDimension
但高度調整不當(圖像被切斷) 任何意見是高度讚賞!
您需要添加約束(編程,因爲您要添加的'UIImageView's編程),定義了'UITableViewCell'的基於'UIImageView'的高度,高度(或任何確定的高度'UITableViewCell'。這是因爲'UITableViewAutomaticDimension'與約束一起工作。 –
我以編程方式添加了約束,但由於某種原因它沒有幫助 –