iOS 8 Storyboard Auto Layout 中的 UIImageView 拉伸

Posted

技术标签:

【中文标题】iOS 8 Storyboard Auto Layout 中的 UIImageView 拉伸【英文标题】:UIImageView stretch in iOS 8 Storyboard Auto Layout 【发布时间】:2014-11-01 21:40:26 【问题描述】:

我的UIImageView 工作正常,只是它超出了UITableViewCell 的范围

我正在从 Instagram API 中提取标准分辨率 照片,即 612x612。我需要将它放在 UIImageView 中的自定义 UITableViewCell 这将使用自动布局来更改每个设备的 UIImageView 的大小

我不确定这在 Xcode 6 ios 8 中是如何工作的,因为我尝试过的方法到目前为止还没有奏效,因为图像只是在设备视图的范围之外延伸。

任何帮助将不胜感激,谢谢!

CustomTableViewCell.m

- (void)layoutSubviews 
    [super layoutSubviews];
       [self.imageViewPic setTranslatesAutoresizingMaskIntoConstraints:YES];

ViewController.m

self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 600.0;

NSString *imageURL = [NSString stringWithFormat:@"%@", standardResolutionLocal.url];

    __weak MWebListTableViewCellTwo *mCell = api2Cell;
    [mCell.imageViewPic
     sd_setImageWithURL:[NSURL URLWithString:imageURLInstagram]
     placeholderImage:[UIImage imageNamed:@"placeholder"]];

【问题讨论】:

【参考方案1】:

当与基于自动布局的动态单元格高度一起使用时,我注意到 UIImageView 存在问题。视图布局良好,但图像本身并未按照“contentMode”属性的定义进行拉伸。

在显示之前强制单元格布局,以某种方式修复它,但在选择后它会返回到非拉伸版本,因此需要更多工作。 UITableView 的子类可能会完成这项工作。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

    [cell layoutIfNeeded];

【讨论】:

以上是关于iOS 8 Storyboard Auto Layout 中的 UIImageView 拉伸的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 8 Today Extension 中从 Storyboard 加载特定的 ViewController

iOS 8 导航栏在 Storyboard 上的第二个 ViewController 中无法访问

尝试本地化 LaunchScreen.storyboard 以在 iOS 10 中使用 xcode 8.3.3 支持语言时出现问题

使用 Auto Layout

在 Xcode 中,如何重命名 Storyboard 中的约束?

转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束