2015-06-27 117 views
-1

我想弄清楚如何製作不同大小的圖像表。圖像被調整大小以適應設備的寬度,並且單元格適合圖像的高度。目前,這些圖像的尺寸正在逐漸增大。如何讓表格單元適合包含圖像的大小?

enter image description here

Xcode project

的ViewController

import UIKit 

class ViewController: UIViewController, UITableViewDataSource { 

var images = ["abstract","city","city2","nightlife"] 

override func viewDidLoad() { 
    super.viewDidLoad() 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! ImageTableViewCell 
    cell.configureCellWith(images[indexPath.item]) 
    return cell 
} 

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

} 

ImageTableViewCell

import UIKit 

class ImageTableViewCell: UITableViewCell { 

@IBOutlet weak var tableImage: UIImageView! 

func configureCellWith(image: String) { 
    tableImage.image = UIImage(named: image) 
} 

} 

回答

1

實施heightForRowAtIndexPath到單元格高度設置爲正確的高度,該單元的圖像。

(可以通過檢查圖像的寬度和高度確定的高度,並分割而得到的縱橫比。現在使用的是縱橫比,以確定基於所述小區寬度,這是表寬度的高度。)

+0

你可以擴展一下如何實現這個? – matt

+0

我通過將Table View委託設置爲ViewController來獲得此工作,而不是像您所描述的那樣創建heightForRowAtIndexPath。但我想知道這是否可以通過使用自動佈局來完成。我已經看到了針對這個問題提到的自動佈局,但還沒有爲我工作。 – matt

0

這其實很簡單。您只需實現heightForRowAtIndexPath函數並返回每個單元格的圖像高度。

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return image[indexPath.row].size.height 
} 
相關問題