320


やりたいことは、ScrollViewとTableViewの判断です。
二つともデリゲートでつなげているのですが、TableviewはScrollのデリゲートがつながってしまいます・・・
なので、どちらのViewでスクロールされているのかが判断できない状態です。

現在

[code]

     - (void)scrollViewDidScroll:(UIScrollView*)scrollView
    
[/code]

こちらで、スクロールが縦にされた場合TableView横でされた場合ScrollViewと判断させているのですが、もっとよいやり方があるのではないかと考えています。
どなたかご存知の方がいらっしゃればぜひご教授ください。 現在はこちらで判断しております。

[code]

    CGPoint currentPoint = [scrollView contentOffset];
    if(self.scrollBeginingPoint.y > currentPoint.y){
            //上方向スクロール検知        
        }else if(self.scrollBeginingPoint.y < currentPoint.y){
            //下方向スクロール検知      
        }
    
[/code]


CC BY-SA 3.0
2014-12-03T10:25:00.060
310
2014-12-03T19:24:58.340
2014-12-03T10:49:19.363
10
798
question
ios tableview iphone scrollview delegate
UIScrollView UITableView ScrollViewDelegateの判定について


引数で渡ってきた`scrollView`を、プロパティなどで保持している`scrollView`や`tableView`と比較して処理を分けると良いと思います。


CC BY-SA 3.0
2014-12-03T11:56:39.100
312
2014-12-03T11:56:39.100
55
310
answer


`tag`でできると思います。

<https://developer.apple.com/library/ios/documentation/Uikit/reference/UIView_Class/index.html#//apple_ref/occ/instp/UIView/tag>

tagに適当な値をセット(ここではtableViewに2、scrollViewに1）して、

[code]

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
        if(scrollView.tag == 1){
            //scrollView
        }else if(scrollView.tag == 2){
            //tableView
        }
    }
    
[/code]

とすれば振り分けられます。

タグはstoryboardからも設定できます。

![タグ](https://i.stack.imgur.com/rrkfw.png)


CC BY-SA 3.0
2014-12-03T16:39:57.290
320
2014-12-03T16:39:57.290
351
310
answer


既に回答にでているように、基本的にはインスタンスの`property`や`tag`などに情報を保持しておいて一意な情報を元に比較するのが良いと思います。

ただ、もしTableViewやScrollViewが動的に生成され、１つのController内にscrollViewDidScrollのscrollView候補がたくさんあるような場合であれば`isKindOfClass`を使って、クラスの種類によって分岐させるという方法もあります。

[code]

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
        if([scrollView isKindOfClass:[UITableView class]] ){
            //scrollViewがUITableViewの場合
        }else{
           //scrollViewがUITableView以外のScrollViewの場合
        }
    }
    
[/code]

「一意なインスタンス」として分岐させたい（`property`や`tag`で識別)のか、「クラスの種類」で分岐(`isKindOfClass`で識別)させたいのかで要件によって使い分けるのが良いと思います。(後者は少し特殊なケースかもしれませんが。。)


CC BY-SA 3.0
2014-12-03T19:08:30.247
323
2014-12-03T19:24:58.340
2014-12-03T19:24:58.340
813
813
310
answer