2016-04-21 42 views
0

我有一個TableView的第一個元素是一個固定的長寬比頭圖像。我在UITableViewCell的內容視圖中嵌入了一個UIImageView。期望的結果是整個單元採用圖像的大小。我嘗試了幾件事情,首先,將UIImageView的所有四個邊緣固定到父級內容視圖,並將高寬比設置爲我所需的值(2h乘以3w)。通過此設置,縱橫比約束完全被忽略,圖像視圖佔據單元格的高度,這會縮小我的資產。接下來,我試圖刪除底部約束。因此,寬高比受到尊重,但單元格高度大於圖像視圖的高度。UITableViewCell不縮小來包裝UIImageView

我的問題是,我可以縮小單元格以使用自動佈局來包裝圖像視圖的高度嗎?

回答

0

我可以使用自動佈局縮小圖像視圖的高度嗎?

是的,你可以,但有一個竅門。 UITableViews對於所有單元格都有固定的高度。如果你想不同的高度,你必須實現的UITableViewDelegate方法

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 

如果你的約束是正確設置(和我的意思是,如果不是你有一個UIView一個細胞,它的大小將被定義由它的內容)你將能夠做這樣的事情:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:kIdentifier]; 
// setup your cell image 
return [cell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height; 
} 

的問題是,如果你是從網上檢索圖片,還有就是你知道圖像的大小,而無需加載就沒有可能的方式。 如果您正在使用本地圖像,這應該工作。