我有一個scrollView,我添加了refreshcontroll它。Swift從超級視圖刪除子視圖
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)
後,我試圖去拉,我的滾動視圖獲得新的數據,但它不再有更新控制。我認爲這是因爲當我從我的scrollview刪除子視圖我也從它刪除refreshcontroll。 (如果我再次在我的刷新方法中添加refreshcontroll我的scrollview將再次有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..")
}
}
你可以發佈你用來刪除子視圖的代碼嗎? –
我在問,因爲你可能會刪除刷新控制器和佈局限制... –
謝謝!檢查我更新的問題..是佈局約束還子視圖? :) – solarenqu