【问题标题】:UIImage in a Rounded UIView swift圆形UIView中的UIImage swift
【发布时间】:2019-10-17 06:37:13
【问题描述】:

我创建了一个 UIView 并在 UIView 中添加了一个 Imageview。我给了 UIView 圆角半径并且它有效,我现在的问题是我放置在里面的图像不尊重视图的圆角半径,因此,它将整个图像显示为一个矩形而不是左上角和右上角弯曲到 UIView 的相同半径。我的代码如下所示。

let bgView: UIView = {
        let bgView = UIView()
        bgView.backgroundColor = .white
        return bgView
    }()

    let propertyImage: DefaultImageView = {
        let img = DefaultImageView(frame: .zero)
        img.clipsToBounds = true
        img.layer.masksToBounds = true
        img.image = #imageLiteral(resourceName: "icons8-name-filled-30")
        img.contentMode = .scaleToFill
        return img
    }()

这给出了圆形卡片视图

extension UIView {
func addShadowAndRoundCorners() {
        layer.shadowOpacity = 1
        layer.shadowOffset = CGSize.zero
        layer.shadowColor = UIColor.darkGray.cgColor
        layer.cornerRadius = 12
    }
 }

所以我添加了像bgView.addShadowAndRoundCorners这样的圆形样式

如何使图像视图保持在 UIView 的圆角内

【问题讨论】:

  • 你在哪里设置圆角?你为什么显示这个bgViewDefaultImageView 是什么?
  • @rmaddy,DefaultImage 只是避免每次调用translatesAutoresizingMaskIntoConstraints 的基础。我将uiview添加为子视图bgView.addShadowAndRoundCorners()后设置了圆角
  • 请使用相关代码更新您的问题。我们无法帮助您修复未显示的代码。
  • @rmaddy 更新
  • 您正在显示没有上下文的随机代码位。所有这些部分是如何使用和相关的?您需要发布一个可重现的示例来演示您的问题。

标签: ios swift uiview uiimageview uiimage


【解决方案1】:

yes 的 clipsToBounds 也需要添加到容器视图中,以强制子视图不在外部渲染:

bgView.clipsToBounds = true

或者你可以只对 imageView 本身进行四舍五入。

【讨论】:

  • 这可行,但它删除了卡属性,即layer.shadowOpacity = 1 layer.shadowOffset = CGSize.zero layer.shadowColor = UIColor.darkGray.cgColor
  • 在这种情况下,只需向 imageView 添加相同的舍入即可。不幸的是,clipsToBounds 确实与阴影交互。
  • 我只希望左上角和右上角弯曲
  • UIImageView 是 UIView 的子类,无论你对视图做了什么,你也可以对你的 imageView 做。
  • 我把 UIView 的整个边缘都弄圆了
【解决方案2】:

如果您只希望 UIImageView 的 topLeft 和 topRight 角为圆角,则可能必须在显示图像之前使用遮罩。

创建一个和图片一样大小的CGContext,在CGContext中创建mask,然后将图片绘制到context中,会应用mask,然后从context中获取新的图片放到.image中UIImageView。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 2018-03-24
    • 1970-01-01
    相关资源
    最近更新 更多