【问题标题】:How to make a round shape editing area instead of a rectangle for ImagePicker?如何为 ImagePicker 制作圆形编辑区域而不是矩形?
【发布时间】:2019-05-13 19:27:44
【问题描述】:

我有用户注册表格,用户可以在其中添加他们的照片作为个人资料。我为 imageView 创建了圆形,但是当我从库中选择照片时,照片不是圆形的并且超出了

class SigninViewController: UIViewController {


var imagePicker = UIImagePickerController()

@IBOutlet var countPlaceInCar: UITextField!
@IBOutlet var nameOfCar: UITextField!

@IBOutlet var AddPhotoButton: UIButton!
@IBOutlet var registerButton: UIButton!

@IBOutlet var registrationSegmented: UISegmentedControl!


@IBOutlet var addPhotoImage: UIImageView!



override func viewDidLoad() {
    super.viewDidLoad()
    makeRounded()
    imagePicker.delegate = self
 }

//func that rounded image for user
func makeRounded() {
    addPhotoImage.layer.borderWidth = 1
    addPhotoImage.layer.masksToBounds = false
    addPhotoImage.layer.borderColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
    addPhotoImage.layer.cornerRadius = addPhotoImage.frame.height/2 //This will change with corners of image and height/2 will make this circle shape

}

@IBAction func addPhotoFromLibraryOrCamera(_ sender: UIButton) {
    imagePicker.sourceType = .photoLibrary
    imagePicker.allowsEditing = true
    present(imagePicker, animated: true, completion: nil)

   }  
}

extension SigninViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
            addPhotoImage.image = image


        }
        dismiss(animated: true, completion: nil)
    }
}

【问题讨论】:

    标签: ios swift xcode uiimageview calayer


    【解决方案1】:

    只需将masksToBounds 设置为true

    func makeRounded() {
        addPhotoImage.layer.borderWidth = 1
        addPhotoImage.layer.borderColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
        addPhotoImage.layer.cornerRadius = addPhotoImage.frame.height/2 //This will change with corners of image and height/2 will make this circle shape
        addPhotoImage.layer.masksToBounds = true
    }
    

    【讨论】:

    • 如何将此图像传递给另一个 ViewController(配置文件页面)中的 imageView?
    • 看看这个教程matteomanferdini.com/…,它涵盖了数据传输。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    相关资源
    最近更新 更多