UIScrollView затрагивает по сравнению с касаниями подпредставления

// Это вернет A для Z и a для z.

function nextLetter(s){
    return s.replace(/([a-zA-Z])[^a-zA-Z]*$/, function(a){
        var c= a.charCodeAt(0);
        switch(c){
            case 90: return 'A';
            case 122: return 'a';
            default: return String.fromCharCode(++c);
        }
    });
}
7
задан Alexander Farber 18 March 2014 в 10:28
поделиться

2 ответа

До iPhone OS 3.0 метод UIScrollView hitTest: withEvent: всегда возвращал self, поэтому он напрямую получает событие UIEvent, перенаправляя его только в соответствующее подразделение, если и когда он определяет, что он не связан с прокрутка или масштабирование.

Я не мог прокомментировать iPhone OS 3.0, так как он находится под соглашением о неразглашении, но ознакомьтесь с вашими «Примечаниями к выпуску iPhone SDK для iPhone OS 3.0 beta 5»:)

Если вам нужно настроить таргетинг до версии до 3.0 , вы можете переопределить hitTest: withEvent: в BeachView и установить флаг для игнорирования следующего касания пляжа, если CGPoint на самом деле находится в камне.

Но пробовали ли вы просто переместить свои вызовы в [super touch *: withEvent:] из конец ваших переопределенных методов в начало? Это может привести к первому удару камня.

2
ответ дан 7 December 2019 в 12:24
поделиться

Верно, iPhone SDK 3.0 и выше, не передавать касания в -touchesBegan: и - touchesEnded: ** UIScrollview ** методы подкласса больше не используются. Вы можете использовать методы touchesShouldBegin и touchesShouldCancelInContentView , которые не совпадают.

Если вы действительно хотите получить эти штрихи, используйте один хак , позволяющий это .

В своем подклассе UIScrollView переопределите метод hitTest следующим образом:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

  UIView *result = nil;
  for (UIView *child in self.subviews)
    if ([child pointInside:point withEvent:event])
      if ((result = [child hitTest:point withEvent:event]) != nil)
        break;

  return result;
}

Это передаст вам подкласс этих касаний, однако вы не можете отменить касания к ] UIScrollView суперкласс.

3
ответ дан 7 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: