使用图像选择器控制器的Swift Circle Image

时间:2018-02-12 07:31:22

标签: ios swift image uiimagepickercontroller rounded-corners

我正在创建一个需要访问用户图片库的应用,当他为自己的个人资料图片选择图片时,应该变成四舍五入。 以下是问题的屏幕截图: enter image description here

以及项目中使用的示例代码

@objc func makeImageRounded(image: UIImageView){
        image.layer.cornerRadius = image.frame.size.width / 2
        image.clipsToBounds = true
    }

中调用此函数
   imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]){
            self.perform(#selector(makeImageRounded(image:)), with: profilePicture, afterDelay: 0)

    }

4 个答案:

答案 0 :(得分:1)

尝试使用imageView纵横比= 1

Me.FormClosed

并致电

func viewDidLayoutSubviews
{
    image.layer.cornerRadius = image.frame.size.width / 2
    image.clipsToBounds = true

}

答案 1 :(得分:1)

您的ImageView应该有相等的宽度和高度[200 * 200/100 * 100]

设置ImageView contenMode,ScaleToFill / AspectFill / AspectFit

image.backGroundcolor = UIColor.red // To check imageView is in Circular or not
image.layer.cornerRadius = image.frame.size.width / 2 // To get Rounded Corner

image.clipsToBounds = true // To Trim Outer frame

答案 2 :(得分:1)

您的imageView没有舍入?

尝试

image.layer.cornerRadius = image.frame.size.width / 2
image.clipsToBounds = true
self.view.layoutIfNeeded()

如果仍然无法正常工作,则会出现内容模式问题。您可以通过设置imageView的背景颜色进行检查

如果您将内容模式设置为aspectFill或scaleToFill,那么您可以看到图像将被填充到它的边界。

答案 3 :(得分:0)

imageView.layer.cornerRadius = image.frame.size.height / 2
imageView.clipsToBounds = true
self.view.layoutIfNeeded()