Ios 确定用户是否可以看到按钮
我有一个有趣的要求。我有一个webview,当用户向上滑动时,它的大小会扩展。这很好,但现在我试图检测用户是否已滚动到顶部,以便再次最小化它 我试图通过在webview后面放置一个图像来实现这一点,如果用户滚动过webview的顶部,就会出现反弹效果,并且底层图像变得可见。我试图使用“隐藏”属性,认为图像在webview下是隐藏的,但在webview被拉下时是可见的。然而,这似乎不能正常工作Ios 确定用户是否可以看到按钮,ios,iphone,objective-c,uiwebview,uibutton,Ios,Iphone,Objective C,Uiwebview,Uibutton,我有一个有趣的要求。我有一个webview,当用户向上滑动时,它的大小会扩展。这很好,但现在我试图检测用户是否已滚动到顶部,以便再次最小化它 我试图通过在webview后面放置一个图像来实现这一点,如果用户滚动过webview的顶部,就会出现反弹效果,并且底层图像变得可见。我试图使用“隐藏”属性,认为图像在webview下是隐藏的,但在webview被拉下时是可见的。然而,这似乎不能正常工作 有人知道如何检测用户是否可以看到按钮/图像吗?查找Web视图滚动视图的contentOffset如果Y=
有人知道如何检测用户是否可以看到按钮/图像吗?查找Web视图滚动视图的contentOffset如果Y==0,则表示用户已向上滚动到顶部
CGRect visibleRect;
visibleRect.origin = webView.scrollView.contentOffset;
if(visibleRect.origin.y == 0)
{
//t means that user has scrolled up to the top
}
由于UIWebView实现UIScrollViewDelegate,它声明符合该协议,因此可以使用
ScrollViewDidScroll
delegate方法
首先确保您的UIWebView
不在UIScrollView
重要提示:不应在中嵌入UIWebView或UITableView对象
UIScrollView对象。如果这样做,可能会导致意外行为
因为两个对象的触摸事件可能会混淆和错误
处理
相反,您可以通过UIWebView属性访问UIScrollView,因为我们现在知道UIWebView基于UIScrollView。视图控制器可以实现UIScrollViewDelegate
@interface MyViewController : UIViewController<UIScrollViewDelegate>
@end
我们只对ScrollView的委托方法之一——scrollViewDidScroll感兴趣。然后,您可以检测scrollView何时已在webview中滚动,并最终得到一个简单的数学公式,用于检查scrollView是否已滚动到顶部:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if(scrollView.contentOffset.y <= 0.0){
NSLog(@"TOP REACHED so do the chicken dance");
}
}
-(无效)scrollViewDidScroll:(UIScrollView*)scrollView
{
如果(scrollView.contentOffset.y那么你到底想实现什么?将视图隐藏在你的webview后面,或者检测用户何时向上滚动?如果用户已经滚动到webview的顶部,我真正需要做的就是调用一个方法。这可能是错误的方法…对此有什么想法吗?当用户向下滚动页面时,webview会扩展但是你想在用户向上滚动时让webview收缩?是的,但前提是用户已经滚动到webview的最顶端。是的,当然,请看一下我现在要写的帖子。请稍等几分钟。嘿,伙计,只是为了让你知道将来,这只会让用户知道scrollView是否在poi的顶端此代码已执行了nt次。OP要求的是只有当用户向上滚动时才会发生某些事情。因此,我们使用ScrollViewDidScroll委托方法,并在用户向上滚动时自动检测。@Pavan好的,先生,我得到了它。工作得很好!!非常感谢!
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if(scrollView.contentOffset.y <= 0.0){
NSLog(@"TOP REACHED so do the chicken dance");
}
}