调整图像大小以适合 xcode 故事板中的 Ui 图像视图

Posted

技术标签:

【中文标题】调整图像大小以适合 xcode 故事板中的 Ui 图像视图【英文标题】:Resizing image to fit Ui Image View in xcode storyboard 【发布时间】:2021-12-18 14:48:52 【问题描述】:

我正在尝试使图像适合整个 Ui 图像视图。我想这样做是因为我想对我的图像进行四舍五入,但它不起作用,因为图像小于整个视图。因此将其四舍五入会使图像的外部变圆并且不可见。我尝试添加约束,但似乎没有锻炼。

这是我正在尝试做的图片:

https://i.stack.imgur.com/mIGow.png

问题图片:

https://i.stack.imgur.com/LGDyx.png https://i.stack.imgur.com/K3RVZ.png

【问题讨论】:

您需要在UIImageView 中添加约束来填充视图。 @DonMag 很遗憾,这并没有解决它。 不太清楚你在展示什么。您是否使用自定义 @IBDesignable 图像视图来获得圆角? "IBOutlet 弱变量商店:UIImageView!"我用这种方法来圆角。但由于某种原因,它似乎根本不起作用。取而代之的是图像是销售者,并且空白区域是四舍五入的,但图像本身不是四舍五入的。 @DonMag 你为图像视图的Content Mode 选择了什么?要让图像填充图像视图,应将其设置为 Scale To FillAspect Fill 【参考方案1】:

好的 - 问题是你不了解 Xcode 界面。

当你添加了UIImageView,设置它的图片,然后选择它,你会看到:

如果再次单击图像视图,Xcode 会显示一个额外的“突出显示”轮廓:

这与您运行应用时的外观无关。

关于您正在观看的视频的屏幕截图...您没有注意到或忘记了两件事:

    这是 SwiftUI 的教程 - 您发布的屏幕截图来自基于 UIKit 的应用程序。 在该系列第 1 部分的 17:20,作者解释了他如何设置拐角半径。

要使用 UIKit 获得您想要的效果,您需要编写一些代码来为图像视图提供圆角。要让它在设计时显示,您需要使用 @IBDesignable 图像视图子类。

这是一个非常基本示例:

@IBDesignable
class RoundedImageView: UIImageView 
    
    override func layoutSubviews() 
        layer.cornerRadius = 20
    
    

如果您将图像视图的自定义类设置为RoundedImageView,然后选择Editor -> Refresh All Views 或选中Editor -> Automatically Refresh Designable Views,您将看到:

【讨论】:

嘿,是的,我从一开始就注意到了,但我的布局是唯一受到启发的东西,这就是为什么在问题中给出了这张图片。我知道他没有使用故事板。 我也不太明白代码是如何工作的,因为它没有以任何方式指定图像。 @Kaushik - 您观看的教程视频使用 SwiftUI,并且视图具有 .cornerRadius(20) 属性。当使用 SwiftUI 时,你的代码必须在某处设置圆角半径。使用自定义 @IBDesignable 类让您在 Storyboard 中查看该代码的结果。在@IBDesignable 上搜索一些教程以获得更好的理解——Stack Overflow 上的单一答案太多了。 @Kaushik - 我回答的要点是解释您在选择图像视图(圆形突出显示)时看到的想法 对不起,我忘了说为什么我对突出显示感到困惑,并且还会出现诸如 setvalue 错误之类的错误。我使用了“@IBOutlet weak var SHOPS: UIImageView!SHOPS.layer.cornerRadius = 10.0 SHOPS.layer.masksToBounds = true”,因为它应该可以工作,但是当我运行并执行时,我很想得到像 set value undefined key 这样的错误不明白原因。我已经搜索了它,但仍然没有解决。

以上是关于调整图像大小以适合 xcode 故事板中的 Ui 图像视图的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Xcode 故事板中的预览设备?

自动调整 UIImageView 的大小以适合底层图像

如何减小 UI 选项卡栏项图像的大小以使其适合选项卡栏?

故事板中的子类 viewController 并以编程方式从子类更改 UI

不需要xcode故事板中的大写标签

故事板中的自定义单元格行高度设置没有响应