• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Objective-C - ScrollView 事件

[复制链接]
菜鸟教程小白 发表于 2022-12-12 20:41:29 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我找到了一些可以完全解决我的问题的答案,但似乎我遗漏了一些步骤。我只是想拦截 ScrollView 的“ViewDidBlablabla”事件,所以我创建了一个自定义 UIScrollView 类。

MyScrollView.m

#import "MyScrollView.h"

@implementation MyScrollView

- (id)initWithFrameCGRect)frame{
    NSLog(@"initWithFrame");
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

-(void)scrollViewWillBeginDraggingUIScrollView*)scrollView{
    NSLog(@"scrollViewWillBeginDragging");
    //scrollView.contentOffset
}

-(void)scrollViewDidScrollUIScrollView*)scrollView{
    NSLog(@"scrollViewDidScroll");
}

-(void)scrollViewDidEndScrollingAnimationUIScrollView *)scrollView{
    NSLog(@"scrollViewDidEndScrollingAnimation");
}

@end

MyScrollView.h

#import <UIKit/UIKit.h>

@interface MyScrollView : UIScrollView <UIScrollViewDelegate>

@end

当我分配我的自定义 ScrollView 时,我确实收到了控制台消息“initWithFrame”,但无法访问其他事件。我错过了什么?

如果您需要其他一些代码,请随时询问,但由于我使用了自定义的“initWithFrame”方法,我想错误应该在这里。



Best Answer-推荐答案


尝试将您的 View 设置为自身的委托(delegate):

if (self) {
    // Initialization code
    self.delegate = self;
}

从技术上讲,您不需要继承 UIScrollView 来响应滚动事件:将 delegate 设置为 < 的实现就足够了

另外,the scrollViewDidEndScrollingAnimation: method has been gone for about two years ,因此不会在现代 iOS 安装中调用它。

关于Objective-C - ScrollView 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399952/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap