Swift supprimer les sous-vues de superview

j'ai un scrollView, et j'ai ajouté un refreshcontroll à elle.

self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Frissítéshez húzzad! :)")
self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
self.scrollView.addSubview(refreshControl)

dans la méthode refresh j'ai supprimer tous les sous-vues de la scrollview, puis remplir à nouveau la scrollview..

self.refreshControl = UIRefreshControl()
self.refreshControl.attributedTitle = NSAttributedString(string: "Frissítéshez húzzad! :)")
self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
self.scrollView.addSubview(refreshControl)

après j'ai essayer de tirer, mon scrollview obtenir de nouvelles données, mais il ne l'a plus refreshcontroll. je pense que c'est parce que quand je la suppression des sous-vues de mon scrollview j'ai aussi supprimer le refreshcontroll d'elle. (si j'ajoute le refreshcontroll de nouveau dans ma méthode refresh mon scrollview aura refreshconroll de nouveau), Mais il y a un autre problème. Après l'actualisation de mon scrollview déplacement vers le bas.. j'ai joint à photos:

C'est comment j'ai supprimer le subiews:

func refresh(sender:AnyObject)
{
    //remove all subviews from scrollview..
    let subViews = self.scrollView.subviews
    for subview in subViews{
        println("for removing...")
        subview.removeFromSuperview()
    }

    println("refresh called..")
    UIApplication.sharedApplication().applicationIconBadgeNumber = 0
    //remove all elements from the array
    tstFrames.removeAll(keepCapacity: false)
    //refresh data from webservice and adding it to tstFrames Array
    wsServiceFeedTst()
    //adding items to the scrollview from tstFramesArray
    addPosts()
    self.refreshControl.endRefreshing()

}

C'est comment le scrollview ressembler avant rafraîchissant:
Swift supprimer les sous-vues de superview

Un c'est à quoi il ressemble après rafraîchissant:
Swift supprimer les sous-vues de superview

quelqu'un pourrait-il m'aider à propos de pourquoi est-ce déplacement vers le bas?

Merci!

Merci, c'est la solution:

let subViews = self.scrollView.subviews
for subview in subViews{
    println("for removing...")
    if (subview is PostLineItem) {
        subview.removeFromSuperview()
    }
    else {
        println("not removing..")
    }
}
  • Pourriez-vous poster le code que vous utilisez pour enlever les sous-vues?
  • Je demande, car vous risquez d'éliminer à la fois l'actualisation du contrôleur et des contraintes de mise en forme...
  • merci!!!! vérifier mes mises à jour.. question est la mise en page, les contraintes des sous-vues? 🙂
InformationsquelleAutor solarenqu | 2015-06-14