如何在UIScrollView中启用触摸?

时间:2010-08-02 10:23:23

标签: iphone objective-c

使用UIScrollview,当我尝试在UIscrollview中捕获触摸事件时没有响应。我应该如何实现它?我正在使用UILable来显示文本。

4 个答案:

答案 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:pagingEnableddelaysContentTouches等。 http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html

答案 2 :(得分:0)

“split”写了我在项目中使用的解决方案here,以便能够在滚动视图中访问触摸。

答案 3 :(得分:0)

无需去任何简单的解决方案here。真的很简单。