即使在运行时设置 UIImage,如何在 UIImageView 上做弯角?
Posted
技术标签:
【中文标题】即使在运行时设置 UIImage,如何在 UIImageView 上做弯角?【英文标题】:How to do curved corners on UIImageView even when setting the UIImage at runtime? 【发布时间】:2012-02-21 22:30:52 【问题描述】:我在 *** 上找到了有关如何在 UIImageView 上制作弯角的示例,当我在 Xcode gui 构建器工具中设置图像时,这很好用。然后,当我添加一些代码以在运行时更改图像时,弯曲的角落只是部分工作。
这是我用来尝试实现弯角的代码:
thumbnail.image = [UIImage imageNamed:self.video.thumbnailFileName];
thumbnail.contentMode = UIViewContentModeScaleAspectFill;
thumbnail.clipsToBounds = YES;
// round the corners:
thumbnail.layer.cornerRadius = 10.0;
thumbnail.layer.masksToBounds = YES;
// add a border:
thumbnail.layer.borderColor = [UIColor lightGrayColor].CGColor;
thumbnail.layer.borderWidth = 3.0;
之前:通过 Xcode 中的 gui 构建器设置图像时:
之后:以编程方式设置 UIImage。注意弯曲的角落看起来很糟糕:
应用中使用的原始 PNG 图像:
【问题讨论】:
【参考方案1】:这里的问题是一系列奇怪的巧合......
第一个问题是我有两个版本的这个图像,不知何故,我的第一个版本仍然被转移到我的应用程序包中(或者在我以前的调试版本的应用程序包中)。第一个是不同的,因为它没有与弯曲的角落正确对齐。所以一旦我清理了我的构建,那个原始文件就消失了。
第二个问题是第二个文件的文件名略有不同,我没有注意到,这是我无法正常工作的第二个原因。
所以...代码是正确的,只是我的图像文件有问题!很抱歉造成混乱。
【讨论】:
【参考方案2】:看起来图层顺序出错了。圆角的图像现在看起来在边框上方而不是下方。
我在层上很弱,但一个猜测:颠倒你的操作顺序。
【讨论】:
【参考方案3】:对于任何试图圆角 UIImageView 的人,请注意您需要导入
#import <QuartzCore/QuartzCore.h>
首先....使用图层属性。
【讨论】:
以上是关于即使在运行时设置 UIImage,如何在 UIImageView 上做弯角?的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 如何将 UIImage 和 UILabel 作为页脚放在同一行?
如何将不在根层次结构中的 SwiftUI 视图呈现为 UIImage?
如何使用 swift 将 Images.xcassets 中的图像加载到 UIImage 中