使用UIScrollview,当我尝试在UIscrollview中捕获触摸事件时没有响应。我应该如何实现它?我正在使用UILable来显示文本。
答案 0 :(得分:3)
是的我也遇到了同样的问题。但最后我得到了补救。 解决方案是您必须创建一个继承自UIScrollview的类,如下所示:
#import <Foundation/Foundation.h>
@interface CustomScrollView : UIScrollView
{
}
@end
并覆盖其实现文件中的touches方法,如下所示:
#import "CustomScrollView.h"
@implementation CustomScrollView
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.nextResponder touchesBegan:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
if(!self.dragging){
[self.nextResponder touchesMoved:touches withEvent:event];
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
[self.nextResponder touchesEnded:touches withEvent:event];
}
@end
您必须在所需文件中导入此类,并使用其对象而不是UIScrollview的对象。 现在,您可以看到控件可以触及您在触摸时添加了scrollview的类中的方法。
感谢。
答案 1 :(得分:0)
从iOS 3.2开始,UIScrollView不再听取touchesBegan:,touchesMoved:,touchesEnded:等等,afaik。
您应该添加手势识别器来处理UIScrollView中的触摸事件。 http://developer.apple.com/iphone/library/documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html
但是如果你想处理其中一个UIScrollView子视图中的触摸,最好阅读UIScrollView文档中的Overview部分。请参阅touchesShouldBegin:withEvent:inContentView:
,pagingEnabled
和delaysContentTouches
等。
http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html
答案 2 :(得分:0)
“split”写了我在项目中使用的解决方案here,以便能够在滚动视图中访问触摸。
答案 3 :(得分:0)
无需去任何简单的解决方案here。真的很简单。