Ios 图像不能';在Swift的图像视图区域中看不到

Ios 图像不能';在Swift的图像视图区域中看不到,ios,swift,uiimageview,Ios,Swift,Uiimageview,我的视图控制器中有一个图像视图,但奇怪的是,我无法在imageview中显示我的图像。它位于页面的中间或其他视图控制器中的其他地方。下面是我的“图像视图”和“图像选择器”代码 这就是输出。箭头图像未显示在预期区域: profileImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true profileImageView.bottomAnchor.constraint(equalTo: name

我的视图控制器中有一个图像视图,但奇怪的是,我无法在imageview中显示我的图像。它位于页面的中间或其他视图控制器中的其他地方。下面是我的“图像视图”和“图像选择器”代码

这就是输出。箭头图像未显示在预期区域:

profileImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
profileImageView.bottomAnchor.constraint(equalTo: nameTextField.topAnchor, constant: -12).isActive = true
profileImageView.widthAnchor.constraint(equalToConstant: 150).isActive = true
profileImageView.heightAnchor.constraint(equalToConstant: 150).isActive = true

profileImageView.image = UIImage(named: "arrow_long_left")
profileImageView.translatesAutoresizingMaskIntoConstraints = false
profileImageView.contentMode = .scaleAspectFill
profileImageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSelectProfileImageView)))
profileImageView.isUserInteractionEnabled = true
view.addSubview(profileImageView)   



func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        var selectedImageFromPicker: UIImage?

        if let editedImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
            selectedImageFromPicker = editedImage
        } else if let originalImage = info["UIImagePickerControllerOriginalImage"] as? UIImage {
            selectedImageFromPicker = originalImage
        }

        if let selectedImage = selectedImageFromPicker {
            profileImageView.image = selectedImage
        }

        dismiss(animated: true, completion: nil)
    }

func handleSelectProfileImageView() {

        let imagePicker = UIImagePickerController()

        if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) {
            imagePicker.delegate = self
            imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
            //picker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)!
            imagePicker.allowsEditing = true
            self.present(imagePicker, animated: true, completion: nil)
        }

        /*else if (UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {
            let picker = UIImagePickerController()
            picker.delegate = self
            picker.sourceType = UIImagePickerControllerSourceType.camera;
            picker.allowsEditing = true
            present(picker, animated: true, completion: nil)

        }*/
    }
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        print("canceled picker")
        dismiss(animated: true, completion: nil)
    }

你的代码在这里:

profileImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
profileImageView.bottomAnchor.constraint(equalTo: nameTextField.topAnchor, constant: -12).isActive = true
profileImageView.widthAnchor.constraint(equalToConstant: 150).isActive = true
profileImageView.heightAnchor.constraint(equalToConstant: 150).isActive = true
我猜你想要的是更像这样的东西:

profileImageView.leadingAnchor.constraint(equalTo: nameTextField.trailingAnchor, constant:10).isActive = true
profileImageView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant:10).isActive = true
profileImageView.topAnchor.constraint(equalTo: nameTextField.topAnchor).isActive = true
profileImageView.bottomAnchor.constraint(equalTo: emailTextField.bottomAnchor).isActive = true

如果要将宽度和高度固定为150,则需要稍微调整。但是,现在您已定位到视图的中心,因此其水平居中。并且由nameTextField的底部到顶部锚定-因此,它当然位于nameTextField的上方

非常感谢dmorrow,它工作得非常好!但正如您所说,当我尝试使用“profileImageView.widthAnchor.constraint(equalToConstant:80).isActive=true profileImageView.heightAnchor.constraint(equalToConstant:80).isActive=true”代码块排列宽度和高度时,它不起作用。我该怎么办,你有什么建议吗?@gozdebal如果你要发送图像的高度/宽度,那么你不应该设置尾部或底部锚,因为这会过度约束图像。这完全取决于您希望布局如何响应不同大小的设备