Дважды нажмите внутри UIScrollView, чтобы другой вид - PullRequest
4 голосов
/ 29 января 2010

Я хочу предвосхитить этот вопрос тем фактом, что я новичок в разработке приложений для 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 Ответ

1 голос
/ 30 ноября 2010

Прежде всего, создайте подкласс 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

Затем используйте этот подкласс вместо обычного UIScrollView в вашем главном контроллере вида. Это вызовет метод touchesEnded: withEvent: (в качестве альтернативы вы можете вызвать любой метод, который захотите). Затем проследите за двойным нажатием (если вам нужна информация о том, как это сделать, дайте мне знать).

...