我的应用程序中有UIScrollView,启用了垂直弹跳.我需要在屏幕底部弹跳但不在屏幕顶部启用.
我没有如何检测scrollview与以下内容:
(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
// no bounce if scrollView has reached the top of the screen ??
}
Run Code Online (Sandbox Code Playgroud) 我想禁用UITableView底部反弹,我不能在情节提要中使用标准的“ bounce”属性,bcs UIRefreshControl需要顶部反弹才能工作。所以我尝试了这个解决方案:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) {
[scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)];
}
Run Code Online (Sandbox Code Playgroud)
}
如上图所示,UIRefreshControl没有被隐藏(如果UIRefreshControll被隐藏,则uitableview中只有3个单元格,底部有空白)。我试图通过将UIRefreshControl高度添加到我的方法中来解决此问题,但是它也没有帮助:
override func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height - self.refreshControl!.frame.size.height {
scrollView.setContentOffset(CGPoint(x: scrollView.contentOffset.x, y: scrollView.contentSize.height - scrollView.frame.size.height + self.refreshControl!.frame.size.height), animated: false)
}
}
Run Code Online (Sandbox Code Playgroud)
我顶部有空白,RefreshControl停止工作:
我究竟做错了什么?谢谢。
PS我的viewDidLoad方法:
override func viewDidLoad() {
super.viewDidLoad()
self.refreshControl = UIRefreshControl()
self.refreshControl!.attributedTitle = NSAttributedString(string: "??????????")
self.refreshControl!.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
self.edgesForExtendedLayout = UIRectEdge.None;
tableView.allowsMultipleSelectionDuringEditing = false;
tableView.tableFooterView = UIView() …Run Code Online (Sandbox Code Playgroud) 我的问题与这个问题相同,但有一点不同.当我滚动到顶部刷新我的网站时,我想停止弹跳到底部滚动的末尾.我该怎么做呢?