ios - AutoLayout - 保持图像与水平约束的比例 (Swift Xcode 6)

标签 ios xcode swift uiimageview autolayout

我一直在尝试实现图片时间轴(如 instagram 或 facebook)。 但是,我一直在为图像的比例而苦苦挣扎。

这是包含我的 Cell 的 xib: enter image description here

我希望图片保持其比例并完全填满单元格的宽度。 我在 UIImageView 上设置了 4 个自动布局约束,水平约束为 0-0,顶部/底部约束为 5-5。我还将 ViewMode 设置为“Aspect Fit”。

我尝试过不同的设置:

  1. 将 UIImageView 的高度设置为特定值: --> 修改图片宽度以保持图片比例
  2. 不要设置 UIImageView 的高度 --> 它认为高度等于 0,因此甚至不显示图像
  3. 将高度设置为大于或等于特定值: --> 与1相同的行为。(修改图像的宽度以保持图像比例)

我正在从 URL 加载图像,所以我一直在使用具有以下功能的库 Haneke ( https://github.com/Haneke/HanekeSwift ): imageView.hnk_setImageFromURL(url).

它具有自动调整图像大小的功能,我不知道如何获取图像的原始宽度/高度以手动设置高度。

同样,我想要的是图片保持其比例并完全填满单元格的宽度。

有人有什么建议吗?

非常感谢!

最佳答案

这是我想出的设置。这是一个快速而肮脏的演示,但我假设您希望图像始终居中。您可以在 Storyboard中设置水平和垂直中心约束以始终保持居中 如果您希望它始终完全填满 View ,您可以将 Equal Height 替换为 Equal Width,但这样做时,imageView 会在某些尺寸上超出屏幕,因为纵横比约束

Autolayout Setup

我还包含了不同尺寸的 View 截图

Any

Portrait

Landscape

关于ios - AutoLayout - 保持图像与水平约束的比例 (Swift Xcode 6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27119325/

相关文章:

ios - 警告 : Function definition inside an Objective-C object is deprecated

ios - 如何在 XCode 中折叠 View Controller 的边缘

Swift 方法文档 - 不显示在自动完成中

ios - Dyld 错误消息 : Library not loaded: @rpath/libswiftAssetsLibrary. dylib

iphone 延迟来自服务器的响应

ios - Xcode 6 错误 - 为 iOS 模拟器构建时出现 "Missing Required Architecture i386"

ios - 由于物理设备上的 XCApplicationStateRunningActive,Xcode UI 测试失败

ios - 带 RESTKIT 的 ESPN iOS API

swift - 不支持使用带有模块接口(interface)的桥接 header (XCode)

ios - 类型 'User' 的值没有成员 'lowercased'