UirefreshController passe sur l'uicollectionview
-
20-12-2019 - |
Question
Ceci est un bug qui se produit fréquemment, mais pas toujours.J'ai un contrôle d'actualisation ajouté à mon uicollectionview.Quand je rafraîchit, ça marche parfaitement.Cependant, si je l'actualisez à mi-rafraîchissement plusieurs fois ou même faire une actualisation complète, allez à un autre onglet dans l'application, puis revenez à nouveau lorsque je vous rafraîchit, l'UireFreshControl apparaît sur une partie de l'UICOLLECTIONVIEW.De plus, au lieu de partir à partir de zéro rafraîchissez les barres de spinner, il commence par tous chargé (j'ai notimé cela dans d'autres applications telles que le courrier, de sorte que beaucoup est un bogue OS, mais dans les applications OS, le spinner ne passe pas surle contenu). Voici une image du problème: https://www.dropbox.com/s/4qk6qjrdlapsvz0/img_0074.jpgled/a> Voici comment je configurais la contestation de rafratagne dans la vue ViewDidLoad.
refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh2)
forControlEvents:UIControlEventValueChanged];
[self.collectionView addSubview:refreshControl];
self.collectionView.alwaysBounceVertical = YES;
Quelqu'un sache comment faire de la fileuse aller derrière la collectionViewController?Merci
La solution
J'ai aussi eu cette question et j'ai compris que je pensais que je pensais partager.Ce que j'ai fait était de forcer à l'arrière de l'uicollectionview.J'avais essayé d'autres choses comme SendsubviewtoLtoback et définir le zindex de l'uicollectionviewcell mais cela n'a pas fonctionné.Cependant, ci-dessous travaillé et j'ai testé sur iOS 6 +:
refreshControl.layer.zPosition = -1;
pour iOS 6, ajoutez ceci:
refreshControl.userInteractionEnabled = NO;
Autres conseils
solution: Vous devez mettre fin à la vue sur la viewwilldissAppappear et sur l'application envoyée à l'arrière-plan.
var refreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
refreshControl.addTarget(self, action: #selector(ViewController.methodNameForRefreshing), forControlEvents: .ValueChanged)
collectionView.addSubview(refreshControl)
//or
tableView.addSubview(refreshControl)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.willResignActiveNotif), name: UIApplicationWillResignActiveNotification, object: nil)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
refreshControl.endRefreshing()
}
func willResignActiveNotif(notification: NSNotification) {
refreshControl.endRefreshing()
}