双击UIScrollView内部到另一个视图

时间:2010-01-29 15:27:04

标签: iphone cocoa-touch uikit uiscrollview double-click

我想在这个问题前面加上我对iphone应用程序开发的新事实,并且多次相信我可能会超过我的头脑。我试图找到一个动作,允许我在我的全屏UIScrollView中双击任何地方以返回我的主菜单(MainMenuViewController)。

我目前为ScrollViewController运行以下代码...

ScrollViewController.h

#import <UIKit/UIKit.h>

@interface ScrollViewController : UIViewController <UIScrollViewDelegate>
{

}

@end

ScrollViewController.m

#import "ScrollViewController.h"

UIScrollView *myScrollView;
UIPageControl *myPageControl;

@implementation ScrollViewController

- (void)loadScrollViewWithPage:(UIView *)page
{
int pageCount = [[myScrollView subviews] count];

CGRect bounds = myScrollView.bounds;
bounds.origin.x = bounds.size.width * pageCount;
bounds.origin.y = 0;
page.frame = bounds;
[myScrollView addSubview:page];
}

...etc

在ScrollView控制器中实现双击以允许我返回到我的MainMenuViewController的任何建议或示例代码将非常感激。另外,请在视图中包含任何Interface Builder更改(如有必要)。我已经在论坛上倾倒了几天,但未能成功实施此操作。感谢... R.J。

1 个答案:

答案 0 :(得分:1)

首先,创建UIScrollView的子类:

#import <UIKit/UIKit.h>

@interface MyScrollView : UIScrollView {
}

@end

实施它:

#import "MyScrollView.h"

@implementation MyScrollView

- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event {

    if (!self.dragging) {
        [self.nextResponder touchesEnded: touches withEvent:event]; 
    }       
    [super touchesEnded: touches withEvent: event];
}

- (void)dealloc {
    [super dealloc];
}


@end

然后,在主View Controller中使用此子类而不是普通的UIScrollView。这将调用touchesEnded:withEvent:方法(或者,您可以调用任何您想要的方法)。然后,跟踪双击(如果您需要有关如何操作的信息,请告诉我。)