UIREFRESCCONTROLLER идет через UiCollectionView
-
20-12-2019 - |
Вопрос
Это ошибка, которая часто бывает часто, но не всегда.У меня есть управление обновлением в моем UICOLLECKVIEW.Когда я обновляю, это работает отлично.Однако, если я половину обновляю его несколько раз или даже сделайте полное обновление, перейдите на другую вкладку в приложении, а затем верните назад, когда я обновляю, Uirefreshcontrol появляется над частью UICOLLECKVIEW.Кроме того, вместо того, чтобы начать с нулевого обновления спинровных баров, он начинается со всех загруженных (я зачем это в других приложениях, таких как по почте, хотя, так что большая ошибка ОС, но в приложениях ОС спиннер не переходитсодержание). Вот изображение проблемы: https://www.dropbox.com/s/4qk6qjrdlapsvz0/img_0074.jpg. Вот как я настроил Reewscontroller в ViewDidload.
refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh2)
forControlEvents:UIControlEventValueChanged];
[self.collectionView addSubview:refreshControl];
self.collectionView.alwaysBounceVertical = YES;
.
Кто-нибудь знает, как сделать спиннер позади коллекцииViewController?Спасибо
Решение
У меня была эта проблема, а также поняла, поэтому я подумал, что поделюсь.То, что я сделал, было заставить его к задней части UICOLLECTIONVIEW.Я пробовал другие вещи, как SendsubviewToback и установка Zindex of UiCollectionViewCell, но она не работала.Однако ниже работали и проверили на iOS 6+:
refreshControl.layer.zPosition = -1;
.
для iOS 6, добавьте это:
refreshControl.userInteractionEnabled = NO;
. Другие советы
<Сильная> проблема: Вы начинаете прокручивать вниз и частично раскрыть UirefreshControl, но вы не прокрутите до конца вниз, чтобы заставить его начать вращаться.Вы ориентируетесь на другой вид (или «минимизировать» приложение, отправить на фоновый) и вернуться.Вы прокрутите немного, а UirefreshControl показывает на вершине своего коллекции View полностью загружен, нежелательный и не вращающийся.
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()
}
.