首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子类化UIScrollView/UIScrollViewDelegate

子类化UIScrollView/UIScrollViewDelegate
EN

Stack Overflow用户
提问于 2011-04-04 08:40:11
回答 2查看 1K关注 0票数 0

我正在尝试创建自己的自定义UIScrollView,这样我就可以将触摸事件从它传递到一个委托对象,该对象具有绘制到滚动视图内的图像视图的逻辑。

如果我从类接口中删除委托变量和属性,它就会像普通的滚动视图一样正常工作。当我让它成为我的自定义协议委托时,它会构建但不会传递消息。

感谢您的任何帮助

代码语言:javascript
复制
@class DrawableScrollView;

@protocol DrawableScrollViewDelegate <UIScrollViewDelegate>

- (void)touchesBegan:(DrawableScrollView *)drawableScrollView touches:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(DrawableScrollView *)drawableScrollView touches:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(DrawableScrollView *)drawableScrollView touches:(NSSet *)touches withEvent:(UIEvent *)event;

@end

@interface DrawableScrollView : UIScrollView {

    id<DrawableScrollViewDelegate> delegate;

}

@property (nonatomic, assign) IBOutlet id<DrawableScrollViewDelegate> delegate;

@end
EN

回答 2

Stack Overflow用户

发布于 2011-04-04 09:27:59

传递委托消息的UIScrollView方法可能使用(私有) ivar来访问委托,而不是每次都使用属性访问器。因此,当您使用自己的委托属性重写这些属性时,根本不会设置底层的scrollview委托。

一种解决方法是使用UIScrollView的delegatesetDelegate:实现来存储您的委托,而不是使用您自己的ivar。另一种方法是重命名您的属性以避免冲突。第三种方法是让滚动视图内部的视图对触摸做出响应,而不是干扰滚动视图本身。

票数 1
EN

Stack Overflow用户

发布于 2011-06-04 15:46:52

为什么不让imageView来处理这些问题呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5533567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档