2017-06-01 1 views
0

J'ai une vue de l'image qui est créé par programme dans une vue du conteneur en tant que tel:image sélectionnée à partir imagePickerController prend tout l'écran au lieu de montage à l'intérieur de l'interface utilisateur image Voir [Swift]

Screen shot with circular profile image view inside container view

J'ai superposition des boutons en haut de la vue de l'image du profil pour appeler le contrôleur du sélecteur d'image. Lorsqu'une image est sélectionnée à partir de la photothèque, l'image prend tout l'écran comme ci-dessous:

Screenshot after image is selected

Voici le code pour cette viewDidLoad() du contrôleur de vue et imagePickerController():

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.profileBackgroundView.backgroundColor = UIColor.init(red: CGFloat(69.0/255.0), green: CGFloat(171.0/255.0), blue: CGFloat(222.0/255.0), alpha: CGFloat(1)) 

    //initializePrimaryUserData() 

    fullNameTextField.text = self.primaryUser.firstName + self.primaryUser.lastName 
    nickNameTextField.text = self.primaryUser.userName 

    //create profile image view 

    if hasProfilePic { 
     profileImage.image = self.primaryUser.image 
    } else { 
     image = UIImage(named: imageName)! 
     profileImage.image = image 
    } 

    profileImage.frame = CGRect(x: profileBackgroundView.bounds.midX, y: profileBackgroundView.bounds.midY, width: 100, height: 100) 

    profileImage.translatesAutoresizingMaskIntoConstraints = false 
    profileBackgroundView.addSubview(profileImage) 

    profileImage.centerXAnchor.constraint(equalTo: profileBackgroundView.centerXAnchor).isActive = true 
    profileImage.centerYAnchor.constraint(equalTo: profileBackgroundView.centerYAnchor).isActive = true 

    profileImage.layer.cornerRadius = profileImage.frame.size.width/2 
    profileImage.layer.masksToBounds = false 
    profileImage.clipsToBounds = true 
    profileImage.contentMode = .scaleAspectFit 

    //create profileImageButton 
    let profileImageButton = UIButton(frame: CGRect(x: profileBackgroundView.bounds.midX, y: profileBackgroundView.bounds.midY, width: 100, height: 100)) 
    profileImageButton.setTitle("Photo", for: .normal) 
    profileImageButton.addTarget(self, action: #selector(profileImageButtonClicked), for: .touchUpInside) 

    profileImageButton.translatesAutoresizingMaskIntoConstraints = false 

    profileBackgroundView.addSubview(profileImageButton) 

    profileImageButton.centerXAnchor.constraint(equalTo: profileBackgroundView.centerXAnchor).isActive = true 
    profileImageButton.centerYAnchor.constraint(equalTo: profileBackgroundView.centerYAnchor).isActive = true 

    // Do any additional setup after loading the view. 

} 

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

    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage { 

     self.primaryUser.image = image 
     self.hasProfilePic = true 
     self.profileImage.image = image 
     self.profileImage.contentMode = .scaleAspectFit 
     self.profileImage.clipsToBounds = true 
    } 

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

Répondre

0

Vous pouvez essayer

self.profileImage.contentMode = .scaleToFill 
+0

J'ai essayé, mais aussi ne fonctionnait pas. – Abe