UITableViewCell的自动布局,比率为imageView

时间:2015-06-17 11:56:35

标签: ios uitableview autolayout

我有一个高度= 0.5 *宽度&的imageView将4个边连接到cell.contentView。 如何将图像高度自动调整到imageView高度。

例如:

iPhone5 : cell size = image size = 320 x 160
iPhone6+: cell size = image size = 414 x 207

4 个答案:

答案 0 :(得分:0)

您可以在InterfaceBuilder中使用适当的乘数将宽高比约束设置为UIImageView。并使用此代码计算单元格高度:

self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 44.0; //your estimated height

答案 1 :(得分:0)

尝试实施 -

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

CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;

  return screenWidth*0.5 ;
}

答案 2 :(得分:0)

当您使用对图像视图布局有约束的引脚时,在运行时更改帧不会改变它的帧。您可以按照以下步骤在运行时更改框架:

  • 设置iPhone 6+所需的function escape($var) { return htmlentities($var, ENT_QUOTES, "ISO-8859-1")); } 的高度和宽度(考虑到iPhone 6+是支持的最高分辨率)。
  • 取两个约束的UIImageView
  • 在tableview单元格类的IBOutlet方法中,您可以使用awakeFromNib设置两个约束的值。

或者您可以尝试设置图像视图高度和宽度的宽高比。

答案 3 :(得分:0)

尝试这个

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
        return [UIScreen mainScreen].bounds.size.width/2 ;
}