我想滾動到頂部,當我雙擊任何BarButtonItem
。 我在stackoverflow上看到了很多答案,但他們都沒有爲我工作。 也許我使用它錯了?我在哪裏把代碼放在AppDelegate
或TableViewControllers
我想特別添加這個功能?雙擊酒吧按鈕項滾動到頂部
無論如何,我使用Swift 2.3和Xcode 8,並希望得到一些幫助。
謝謝。
我想滾動到頂部,當我雙擊任何BarButtonItem
。 我在stackoverflow上看到了很多答案,但他們都沒有爲我工作。 也許我使用它錯了?我在哪裏把代碼放在AppDelegate
或TableViewControllers
我想特別添加這個功能?雙擊酒吧按鈕項滾動到頂部
無論如何,我使用Swift 2.3和Xcode 8,並希望得到一些幫助。
謝謝。
您是否知道scrollsToTop
?我認爲這是你需要的。從iOS版SDK說明在UIScrollView
有關scrollsToTop
屬性:
當用戶點擊狀態欄,觸摸下方的滾動視圖最接近的狀態欄會滾動到頂部,但只有當它的
scrollsToTop
財產是YES,其代表不會從shouldScrollViewScrollToTop
返回NO,並且它不在頂部。 //在iPhone上,我們只有在有一個屏幕滾動視圖scrollsToTop
== YES時才執行此手勢。如果發現多於一個,則不會滾動。
首先設置UITabBarControllerDelegate委託。委託可以通過Storyboard或通過UITabBarController的委託屬性代碼輕鬆設置。
myTabBar.delegate = myNewDelegate // Have to conform to UITabBarControllerDelegate protocol
你甚至可以子類的UITabBarController和實施UITabBarControllerDelegate它,因此它可以爲自己成爲代表。
mySubclassedTabBar.delegate = mySubclassedTabBar
當您有代表時,您可以嘗試此方法。
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool
{
guard let tabBarControllers = tabBarController.viewControllers
else
{
// TabBar have no configured controllers
return true
}
if let newIndex = tabBarControllers.indexOf(viewController) where newIndex == tabBarController.selectedIndex
{
// Index won't change so we can scroll
guard let tableViewController = viewController as? UITableViewController // Or any other condition
else
{
// We are not in UITableViewController
return true
}
tableViewController.tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0), atScrollPosition: .Top, animated: true)
}
return true
}
我把所有的代碼放在TableViewController/ViewController中,我想特別添加這個功能嗎?或者在一個新的swift文件中,我將連接到我的tabBarViewController? –
最簡單的方法是繼承UITabBarController(通常是新的swift文件),實現委託協議並在故事板更改tabBarController的類。然後,您可以輕鬆更改故事板或代碼中的委託屬性(即在初始化過程中)。 – Adamsor
是啊,我知道,此行中我看到了很多答案,但我總能得到它指向的好聽,你可能告訴我如何將其正確寫入,使其工作的錯誤? –
'scrollsToTop'默認是true,但如果你有很多'UIScrollView'或它的子類,你需要爲所有需要設置'false'除了需要的視圖 –
我唯一的'UIScrollView'是這樣的:'override func scrollViewWillBeginDragging scrollView:UIScrollView)self.searchController.searchBar.resignFirstResponder() self.searchController.searchBar.endEditing(true) }'所以我可以輕掃以關閉鍵盤時,我搜索... –