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

Était-ce utile?

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

problème: Vous commencez à faire défiler vers le bas et à révéler partiellement l'UirefreshControl, mais vous ne faites pas défiler tout le chemin pour le faire commencer à tourner.Vous naviguez vers une autre vue (ou «Minimiser», envoyez-le à l'arrière-plan) et revenez.Vous faites défiler un peu et l'UirefreshControl affiche au-dessus de votre collectionView entièrement chargée, non accueillie et non à la filature.

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()
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top