2015-11-06 104 views
0

我正在使用UITableView並使用UITableViewCellSubtitle Apple提供的樣式。UITableViewCellStyleSubtitle的UITableViewCell上的AutoLayout約束條件

我也是用的首選字體,使他們與動態類型的工作。如果用戶轉到「設置」並更改UI字體大小,它也會影響我的視圖中的字體。

我也允許它動態地選擇基於使用row.estimatedRowHeight文本的長度行高度。這很好,因爲對於較大的字體和多行文本,單元格會相應地進行調整。

使用圖像是什麼問題。圖像大小不同,因此縮小了它們的大小。縮放比例是自動細胞高度的命中或丟失。它可能無法及時完成,因此高度的系統計算可能會計算錯誤。

我的問題是,我可以手動添加約束到UITableViewCellimageView屬性,以便它具有88像素的設置寬度和高度。這樣,即使圖片還沒有調整大小,它至少會正確計算包含的單元格的高度?

或者,也許不如想問:有沒有可能在小區和文字標籤resize在動態基於內容的長度和大小來對圖像靜態寬度/高度?

謝謝!

回答

0

有一個用於動態創建用戶界面的好庫。這就是所謂的製圖 https://github.com/robb/Cartography

下面的代碼,有助於通過圖像視圖高度可調整大小的創造細胞:

import UIKit 
import Cartography 

class TableViewCell: UITableViewCell { 
@IBOutlet weak var resizableImage: UIImageView! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
} 

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

func configurate() { 

    constrain(self.resizableImage) { view1 in 
     view1.width == view1.height 
     view1.top == view1.superview!.top 
     view1.bottom == view1.superview!.bottom 
    } 

    constrain(self.resizableImage) { view1 in 
     view1.height == 88 
    } 
} 

}