忙しい魚のメインページを参照して、上部のビューと下のポイントにtableView:
まず、UI制御設計を取得します:
@property(弱い、非アトミック)IBOutlet UIScrollViewの * ContentScrollView; // ScrollView外適用 @Property(弱い、非アトミック)IBOutletのUITableView * DocterInfoTable; //これは内部テーブルビューScrollViewある @Property(弱い、非アトミック)IBOutlet UIStackView * DoctorTableStack。 //これは、あなたがScrollView滞在したいポイントです
私たちは、.Mファイルに合意UIGestureRecognizerDelegateを達成するために、複数のジェスチャーに対応するための新しいコントローラをContentScrollViewする必要があります。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { リターンYES。 }
次にその<、UITableViewDelegate、UITableViewDataSource、UIScrollViewDelegate>メインインタフェースプロトコルを実現します:
- (ボイド)scrollViewDidScroll:(UIScrollViewの* )scrollView { // のNSLog(@ "%の@%のF"、scrollView.class、CGRectGetMinY(_DoctorTableStack.frame) - _ContentScrollView.contentOffset.y)。 // のNSLog(@ "%@の"、NSStringFromCGRect(_DoctorTableStack.frame)); もし(CGRectGetMinY(_DoctorTableStack.frame)<= _ContentScrollView.contentOffset.y){ のNSLog(@ " 禁止_ContentScrollView滑动" )。 _ContentScrollView.contentOffset = CGPointMake(0 、CGRectGetMinY(_DoctorTableStack.frame))。 もし(_DocterInfoTable.contentOffset.y> 20 ){ doctorViewPull= 真; } 他 doctorViewPull = 偽; } であれば(CGRectGetMinY(_DoctorTableStack.frame)> _ContentScrollView.contentOffset.y){ のNSLog(@ " 不行_DocterInfoTable滑动" )。 もし(!doctorViewPull){ _DocterInfoTable.contentOffset = CGPointZero。 } 他 _ContentScrollView.contentOffset = CGPointMake(0 、CGRectGetMinY(_DoctorTableStack.frame))。 } }
50より大きいまずcontentoffset値は瞬間的である可能性が高いです。だから、判定境界値問題のエラーが発生する可能性がありcontentoffsetに依存しています!!!
1._ContentScrollView.contentOffset.yは彼が私達の位置の上部よりも小さく設定すると、オフセットたちのScollViewを表し、私たちはテーブルビューは、つまり、そのCGPointZeroにオフセットオフセットは許可されていません。このビジョンにScrollViewは、子どもたちのテーブルビューを動かすには動いていません。
2.場合は、設定値よりも_ContentScrollView.contentOffset.y一度時間が大きく、そのスライドを禁止するには、彼の常に設定値にとどまるの値を設定します。おそらく第二分岐、そこに入力されますので、しかし、我々は突然引き上げ時にScrollViewとテーブルビューは、contentoffsetを持つことになりますと、「スライド_DocterInfoTablehuませんが。」だから我々は、パンに私の状態テーブルビューを表現するフラグを必要とする、あなたはこのブランチに入るが、それでも我々は値を設定し、あなたの現在の場所を大切になるにもかかわらず、応答しないScrollview。contentoffsetが十分に小さくなるまでテーブルビューは、ここで私は、私は国家を代表してパンを応答するために始めた、リファレンスとして20を設定します。(完璧に近いものにも設定することができる)
、IはScrollViewの特定の値をスライドするときの状態フラグを必要ScrollViewは変更しないで、テーブルビュー応答パンジェスチャ:焦点です。テーブルビューはパンジェスチャーに対応するための私の時間をあきらめ値はスライドの上に、つまり、0.1よりも少なくとも大きい私のtableViewをcontentoffsetです。これは、両方のスイッチボタンで