Двойное нажатие внутри UIScrollView для перехода к другому виду

Я хочу предварить этот вопрос тем фактом, что я новичок в разработке приложений для 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 (при необходимости). Я уже несколько дней лазаю по форумам и так и не смог успешно реализовать это действие. Спасибо... Р.Дж.


person R.J.    schedule 29.01.2010    source источник
comment
Вы когда-нибудь находили решение?   -  person JosephH    schedule 16.09.2010


Ответы (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

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

person Community    schedule 30.11.2010