2010-11-18 2 views
2

Я создал подкласс UIScrollView для реализации одного из моих пользовательских элементов управления, на данный момент все работает отлично.Как я могу обнаружить прикосновение внутри в своем пользовательском представлении?

Однако, что бы я хотел, чтобы иметь возможность вызывать методы всякий раз, когда обнаружено событие Touch Up Inside (так же, как конструктор интерфейсов), кто-нибудь знает, как я могу это сделать?

ответ

5

Потому что UIScrollView не наследует от UIControl, это невозможно. Вы можете, однако, реле сенсорных событий По мнению скроллинга путем внедрения UIResponder методов в классе пользовательских UIScrollView:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if (!self.dragging) 
    { 
     [self.nextResponder touchesEnded: touches withEvent:event]; 
    }  

    [super touchesEnded: touches withEvent: event]; 
} 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if (!self.dragging) 
    { 
     [self.nextResponder touchesBegan: touches withEvent:event]; 
    }  

    [super touchesBegan: touches withEvent: event]; 
} 
+0

Я дам, что попробовать. Btw, что является nextResponder и что он делает? – cgossain

+1

'nextResponder' возвращает контроллер вида view для инструкций ретрансляции, но в вашем случае он возвращает родительский вид, поскольку вид прокрутки не находится в стеке контроллера представления. Подробнее здесь: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIResponder_Class/Reference/Reference.html%23//apple_ref/occ/cl/UIResponder –

+0

большое спасибо !!! – cgossain

Смежные вопросы