2013-10-10 6 views
2

Я пытаюсь создать горизонтально прокручиваемый UIScrollView. I am using this Ray Wenderlich tutorial. У меня есть scrollview, появляющийся и работающий нормально, но в настоящее время тупик в разделе «Обнаружение касаний вне прокрутки» в части учебника.Обнаружение штрихов вне прокрутки с программным обеспечением

Проблема в том, что я создаю все программно. Я особенно озадачен об этой части кода учебника (в ScrollViewContainer.m):

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event { 
    UIView *view = [super hitTest:point withEvent:event]; 
    if (view == self) { 
     return _scrollView; 
     } 
    return view; 
} 

где _scrollView является IBOutlet (в ScrollViewContainer.h):

@property (nonatomic, strong) IBOutlet UIScrollView *scrollView; 

В I понимайте это, соединение «_scrollView» выполняется на раскадровке через розетку. Как я должен делать это программно?

ответ

0

Обнаружение касаний за пределами scrollview вы можете просто получить доступ к touchEventsUIView.

  • touchesBegan,
  • touchesEnded,
  • touchesMoved,
  • touchesCancelled

Try штрихи стали ни для одного крана вы хотите.

1

с использованием этого кода я нахожу свой сенсорный объект и скрываю вид, поэтому надеюсь, что вы сможете исправить его с помощью трюка и модификации на одном и том же коде, просто передайте свой объект scrollview и войдите в него, чтобы его коснуться или нет.

#pragma mark 
#pragma mark - Touch Events 
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [[event allTouches] anyObject]; 
    CGPoint imgPop = [touch locationInView: _scrollView]; 
    if ([_scrollView pointInside:imgPop withEvent:event]) 
    { 
     NSLog(@"Touch Inside ScrollView"); 
    } else { 
     NSLog(@"Touch Outside ScrollView"); 
    } 
} 

Сообщите мне, если вы обнаружили какие-либо трудности с его внедрением.

0

Этот обычай hitTest:withEvent: метод Ray Wenderlich учебник нужен только если вы сделали вид прокрутки меньше, что экран (и установить его clipsToBounds в NO):

app screenshot

метод сделает штрихи происходящее вне представления прокрутки, будет отправлено на него.

Таким образом, в исходном коде вам нужно вызвать что-то вроде

@property (nonatomic, strong) UIScrollView *scrollView; 
... 
UIScrollView *scrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(
    20, 
    20, 
    self.view.frame.size.width - 20, 
    self.view.frame.size.height - 20 
)]; 
Смежные вопросы