2017-10-18 12 views
0

J'ai ce UIScrollView mis en place avec un UIImageView et un UILabel. Cependant, il ne défile pas comme je le veux. C'est comme si ce n'était même pas là ... Comment puis-je résoudre ce problème? Je veux juste qu'il soit scrollable (même s'il n'y a rien en bas pour le faire défiler)UIScrollView impossible de faire défiler?

Merci d'avance!

Voici mon code:

// scrollView 
    scrollView.translatesAutoresizingMaskIntoConstraints = false 
    view.addSubview(scrollView) 

    // scrollView constraints 
    scrollView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true 
    scrollView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true 
    scrollView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true 
    scrollView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true 

    // Initialize profileImageView 
    profileImageView.image = #imageLiteral(resourceName: "neil") 
    profileImageView.translatesAutoresizingMaskIntoConstraints = false 
    profileImageView.layer.cornerRadius = 125/2 
    profileImageView.clipsToBounds = true 
    scrollView.addSubview(profileImageView) 

    // Add profileImageView constraints 
    profileImageView.topAnchor.constraint(equalTo: scrollView.topAnchor, constant: 45).isActive = true 
    profileImageView.heightAnchor.constraint(equalToConstant: 125).isActive = true 
    profileImageView.widthAnchor.constraint(equalToConstant: 125).isActive = true 
    profileImageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true 

    // Add separator view 
    seperator.translatesAutoresizingMaskIntoConstraints = false 
    seperator.backgroundColor = UIColor.darkGray 
    scrollView.addSubview(seperator) 

    // seperator constraints 
    seperator.heightAnchor.constraint(equalToConstant: 2).isActive = true 
    seperator.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.8).isActive = true 
    seperator.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true 
    seperator.topAnchor.constraint(equalTo: profileImageView.bottomAnchor, constant: 20).isActive = true 

    //nameLabel 
    let nameLabelFont = UIFont.monospacedDigitSystemFont(ofSize: 36, weight: UIFont.Weight.heavy) 
    nameLabel.font = nameLabelFont 
    nameLabel.text = currentUser.name 
    nameLabel.translatesAutoresizingMaskIntoConstraints = false 
    scrollView.addSubview(nameLabel) 

    // nameLabel constraints 
    nameLabel.topAnchor.constraint(equalTo: seperator.bottomAnchor, constant: 10).isActive = true 
    nameLabel.leadingAnchor.constraint(equalTo: seperator.leadingAnchor).isActive = true 

Répondre

1

Vous ne pouvez pas faire défiler parce que scrollView.contentSize n'est pas plus grand que votre point de vue.

Si vous voulez que votre écran défile, vous devez définir scrollView.contentSize.

Mettez scrollView.contentSize = CGSize(width: 1000, height: 1000) avant view.addSubview(scrollView) pour définir votre zone de défilement sur 1000x1000.

En général, scrollView.contentSize doit être calculé sur la base des éléments d'interface utilisateur à l'intérieur de UIScrollView. taille de 10 images avec l'espace entre eux.

+0

Merci beaucoup, cela m'a beaucoup aidé! –