如何设置UIButton图像,图像是带边框的圆形我写相关代码但图像没有以适当的圆形显示.. 这是我的代码..
btnMyProfile.setImage(UIImage(named: "MyDefaultImg.png"), for: .normal)
btnMyProfile.imageView?.contentMode = .scaleAspectFit
btnMyProfile.imageView?.layer.cornerRadius = (btnMyProfile.imageView?.frame.width)! / 2
btnMyProfile.imageView?.layer.borderColor = UIColor.blue.cgColor
btnMyProfile.imageView?.layer.borderWidth = 2.0
如何实现我想要的输出?请帮帮我..先谢谢你。
答案 0 :(得分:2)
为您的imageview设置clipsToBounds = true
btnMyProfile.imageView.clipsToBounds = true
或使用
btnMyProfile.imageView.layer.masksToBounds = true
来自apple docs:
默认情况下,圆角半径不适用于中的图像 图层的内容属性;它仅适用于背景颜色和 图层的边框。但是,将masksToBounds属性设置为 true会导致内容被裁剪为圆角。
其他选项使用UIBezierPath
答案 1 :(得分:1)
如果你想要第二种类型的输出你应该减小图像的大小。(例如32x32或40x40)而不是做btnMyProfile.imageView?.layer.cornerRadius = (btnMyProfile.imageView?.frame.width)! / 2
你应该做/ p>
btnMyProfile.imageView?.layer.cornerRadius = image.size.width / 2
你的其余代码似乎没问题。
答案 2 :(得分:0)
func roundedImageView(imgView: UIImageView, borderWidth: Float, borderColor: UIColor)
{
imgView.layer.cornerRadius = imgView.frame.size.width / 2
imgView.clipsToBounds = true
imgView.layer.borderWidth = CGFloat(borderWidth)
imgView.layer.borderColor = borderColor.cgColor
}
答案 3 :(得分:0)
您可以设置图像的高度和宽度相同。
像
20X20,30X30 ..
答案 4 :(得分:0)
我在@Anbu&的帮助下实现了我想要的输出。也基于@ A.Jam的答案.. 这是我正确的代码..
/Products/1
答案 5 :(得分:0)
您应该将图像添加到按钮的背景中,并确保按钮的大小与20 * 20,30 * 30等成比例,并设置与您已设置的相同的角半径。
答案 6 :(得分:0)
这个答案为时已晚,但也许对某人有帮助
只需转到情节提要,选择“图像视图”,选择“属性检查器”,然后将“内容模式”从“纵横比调整”更改为“纵横比填充”