у меня есть 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)
в методе обновления я должен удалить все подвиды из прокрутки, а затем повторно заполнить прокрутку.
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)
после того, как я попытаюсь вытащить, мой вид прокрутки получит новые данные, но у него больше нет элемента управления обновлением. Я думаю, это потому, что когда я удаляю подвиды из моего прокрутки, я также удаляю из него элемент управления обновлением. (если я снова добавлю refreshcontroll в свой метод обновления, у моего прокрутки снова будет refreshconroll) Но есть еще одна проблема. После обновления моего прокрутки вниз... я прикрепил к картинкам:
Вот как я удаляю 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()
}
Вот как выглядит прокрутка перед обновлением:
Вот как это выглядит после обновления:
может ли кто-нибудь помочь мне о том, почему это движется вниз?
Благодарю вас!
Спасибо, это решение:
let subViews = self.scrollView.subviews
for subview in subViews{
println("for removing...")
if (subview is PostLineItem) {
subview.removeFromSuperview()
}
else {
println("not removing..")
}
}