iPhoneアプリ開発と留学

iPhoneアプリケーションを開発しているエンジニア。 2010年7月からアメリカで技術経営を学ぶために留学中

UIGestureRecognizer

UIGestureRecogniserを継承している認識可能なジェスチャ

UITapGestureRecognizer: タップ(タップ数は任意)
UIPinchGestureRecognizer: ピンチインとピンチアウト(ビューのズーム拡大縮小用)
UIPanGestureRecognizer: パニング(ドラッグ)
UISwipeGestureRecognizer: スワイプ(任意の方向に対応)
UIRotationGestureRecognizer: 回転(お互いに反対の方向への指の移動)
UILongPressGestureRecognizer: 長押し(「タッチアンドホールド」とも呼ばれる)

参考:iPadプログラミングガイド

UIScrollViewに含まれているUIGestureRecognizerについて

UIScrollViewのインスタンスのuserInteractionEnabledをNOにしたのに、まだタップに反応しているので何が影響しているかなと調べてみたらUIScrollViewにはUIGestureRecognizerが加えられているようでした。

●ソースコード
    UIScrollView *scrollView = [[[UIScrollView alloc] init] autorelease];
    scrollView.frame = self.view.bounds;
    scrollView.pagingEnabled = YES;
    UIView *uiView = [[[UIView alloc] init] autorelease];
    uiView.frame = self.view.bounds;
   
    NSLog(@"uiView = %@", uiView.gestureRecognizers);
    NSLog(@"scrollView = %@", scrollView.gestureRecognizers);
●実行結果
2010-06-17 15:02:23.585 ScrollViewGestureRecognizer[5812:207] uiView = (null)
2010-06-17 15:02:23.593 ScrollViewGestureRecognizer[5812:207] scrollView = (
<UIScrollViewDelayedTouchesBeganGestureRecognizer: 0x471f650; state = Possible; delaysTouchesBegan = YES; view = <UIScrollView 0x471f440>; target= <(action=delayed:, target=<UIScrollView 0x471f440>)>>,
<UIPanGestureRecognizer: 0x4726420; state = Possible; view = <UIScrollView 0x471f440>; target= <(action=handlePan:, target=<UIScrollView 0x471f440>)>; must-fail = {
<UIScrollViewPagingSwipeGestureRecognizer: 0x4720260; state = Possible; view = <UIScrollView 0x471f440>; target= <(action=_handleSwipe:, target=<UIScrollView 0x471f440>)>>
}>,
<UIScrollViewPagingSwipeGestureRecognizer: 0x4720260; state = Possible; view = <UIScrollView 0x471f440>; target= <(action=_handleSwipe:, target=<UIScrollView 0x471f440>)>; must-fail-for = {
<UIPanGestureRecognizer: 0x4726420; state = Possible; view = <UIScrollView 0x471f440>; target= <(action=handlePan:, target=<UIScrollView 0x471f440>)>>
}>
)


userInteractionEnabledをNOにすることに加えて、UIGestureRecognizerをオフにしないとタップに反応してしまいます。
記事検索
<% for ( var i = 0; i < 7; i++ ) { %> <% } %>
<%= wdays[i] %>
<% for ( var i = 0; i < cal.length; i++ ) { %> <% for ( var j = 0; j < cal[i].length; j++) { %> <% } %> <% } %>
0) { %> id="calendar-291409-day-<%= cal[i][j]%>"<% } %>><%= cal[i][j] %>
yahoo
twitter
  • ライブドアブログ

'); label.html('\ ライブドアブログでは広告のパーソナライズや効果測定のためクッキー(cookie)を使用しています。
\ このバナーを閉じるか閲覧を継続することでクッキーの使用を承認いただいたものとさせていただきます。
\ また、お客様は当社パートナー企業における所定の手続きにより、クッキーの使用を管理することもできます。
\ 詳細はライブドア利用規約をご確認ください。\ '); banner.append(label); var closeButton = $('