// Это вернет 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);
}
});
}
До 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:] из конец ваших переопределенных методов в начало? Это может привести к первому удару камня.
Верно, 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
суперкласс.