gpt4 book ai didi

ios - 带有圆形 ImageView 的自定义圆形 UIButton

转载 作者:行者123 更新时间:2023-11-29 05:19:50 26 4
gpt4 key购买 nike

我为 UIButton 创建了一个自定义类,我还使用 @IBInspectable 为按钮添加圆角和阴影。

现在,我想使用相同的按钮为个人资料图像选择器创建一轮。用户点击圆形按钮,将显示照片库,用户选择一张照片,并将所选图像添加到圆形按钮。

我的问题是,用户选择图像后,按钮的 imageView 是方形的而不是圆形的。

我尝试使用按钮的 imageView 图层并尝试将其设置为 ClipsToBounds 或 maskToBounds 但我认为我错过了一些东西。

这是没有 ImageView 内容的自定义按钮的代码:

import UIKit

class RoundShadowButton: UIButton {

override init(frame: CGRect){
super.init(frame: frame)
imageView?.clipsToBounds = true
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
imageView?.clipsToBounds = true
}


@IBInspectable
var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
}
}

@IBInspectable
var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}

@IBInspectable
var borderColor: UIColor? {
get {
let color = UIColor.init(cgColor: layer.borderColor!)
return color
}
set {
layer.borderColor = newValue?.cgColor
}
}

@IBInspectable
var shadowRadius: CGFloat {
get {
return layer.shadowRadius
}
set {
layer.shadowRadius = newValue
}
}
@IBInspectable
var shadowOffset : CGSize{

get{
return layer.shadowOffset
}set{
layer.shadowOffset = newValue
}
}

@IBInspectable
var shadowColor : UIColor{
get{
return UIColor.init(cgColor: layer.shadowColor!)
}
set {
layer.shadowColor = newValue.cgColor
}
}
@IBInspectable
var shadowOpacity : Float {

get{
return layer.shadowOpacity
}
set {
layer.shadowOpacity = newValue
}
}
}

Button before selecting image

Button after selecting image

最佳答案

我认为您错过了这一点,除非您为按钮设置图像,否则按钮的 imageViewnil。您应该将 maskToBounds 设置为按钮,或者在设置图像后将其设置为 imageView。另外,请检查您的角半径,如果您有基于框架的方法,在自动布局期间您可以根据.zero框架设置角半径

关于ios - 带有圆形 ImageView 的自定义圆形 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58787888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com