我编写了一个函数,当使用UIScrollView命中顶部或底部时应该执行某些操作。
-(void)scrollViewDidScroll: (UIScrollView*)scrolling
{
NSLog(@"Event triggered.");
float scrollViewHeight = scrolling.frame.size.height;
float scrollContentSizeHeight = scrolling.contentSize.height;
float scrollOffset = scrolling.contentOffset.y;
if (scrollOffset == 0)
{
_lol.text = @"top hit";
NSLog(@"Top Hit");
}
else if (scrollOffset + scrollViewHeight == scrollContentSizeHeight)
{
_lol.text = @"bottom hit";
NSLog(@"bottom Hit");
}
}
问题是:我不知道如何将此功能链接到名为"滚动"的UIScrollView。
提前致谢。
答案 0 :(得分:3)
我们假设你有一个名为mScrollView1
要拨打电话,请按以下方式使用
[self scrollViewDidScroll:mScrollView1];
^^^^^^^^^^^^ here is your scrollview name
这是用于处理scrollview的所有边缘情况的内容。你需要一个ivar来保持状态,并且如评论中所示,还有其他方法来处理这个问题。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
//[super scrollViewWillBeginDragging:scrollView]; // pull to refresh
self.isScrolling = YES;
NSLog(@"+scrollViewWillBeginDragging");
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
//[super scrollViewDidEndDragging:scrollView willDecelerate:decelerate]; // pull to refresh
if(!decelerate) {
self.isScrolling = NO;
}
NSLog(@"%@scrollViewDidEndDragging", self.isScrolling ? @"" : @"-");
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
self.isScrolling = NO;
NSLog(@"-scrollViewDidEndDecelerating");
}
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
self.isScrolling = NO;
NSLog(@"-scrollViewDidScrollToTop");
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
self.isScrolling = NO;
NSLog(@"-scrollViewDidEndScrollingAnimation");
}
现在使用适当的委托并调用您的方法。
要为scrollview添加委托,请在下面写一行
myScrollview.delegate = self;
答案 1 :(得分:0)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
是 UIScrollViewDelegate 的方法。它将被称为automaticaly。
为此,您必须将UIScrollView的委托设置为当前的ViewController。在(void)viewDidLoad
中设置此项:
self.myScrollView.delegate = self
。
在.h上,您的View Controller必须实现协议< UIScrollViewDelegate >:
@interface MyViewController : UIViewController <UIScrollViewDelegate>
。
现在在.m上包含方法-(void)scrollViewDidScroll: (UIScrollView*)scrolling
并进行实现。