tableView和scrollView滾動(dòng)起沖突,點(diǎn)擊事件沖突

上下滾動(dòng)沖突

想實(shí)現(xiàn)以下tableview+scrollview,scrollview是最底層。Segment和TableView是都是單獨(dú)寫好的,都可以左右滑動(dòng)。最上面是一個(gè)header部分,內(nèi)容不變的,回顯示一些圖片什么的。想做到tableview向上滑動(dòng)的時(shí)候header部分頁(yè)上移,以便給下面的顯示提供更多空間。上移的時(shí)候navigationBar會(huì)顯示,Segment會(huì)停留,類似TableView的HeaderView。

Paste_Image.png

為了實(shí)現(xiàn)這個(gè)真是搞了許久,今天突然發(fā)下原來(lái)是下面這個(gè)方法可以同時(shí)讓scrollview接收兩個(gè)事件,直接自定義一個(gè)scrollview放上這個(gè)方法就行了。參考http://blog.csdn.net/sanmaofly/article/details/12218591

  - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;

}

至于到時(shí)候區(qū)分tableView和scrollView,在代理方法中判斷

  -(void)scrollViewDidScroll:(UIScrollView *)scrollView{

  if ([scrollView isKindOfClass:[UITableView class]]){
      //UITableView
      }
   if ([scrollView isEqual:self.scrollView]) {
     //scrollView
     }

  {

</br>

scrollview上設(shè)置點(diǎn)擊事件和scrollview上的tableview的選中方法沖突

一般出現(xiàn)在有選擇功能的頁(yè)面, 頁(yè)面本身肯定是scrollview的, 又想設(shè)置點(diǎn)擊scrollview空白處收起選項(xiàng)卡或者鍵盤, 又想選項(xiàng)卡可以點(diǎn)擊選擇(選項(xiàng)卡tableview), 這時(shí)候scrollview的點(diǎn)擊事件就會(huì)跟tableview的didselect方法沖突了, 造成didselect代理方法不執(zhí)行而只執(zhí)行scrollview的點(diǎn)擊事件方法.

解決方法:

為scrollview的點(diǎn)擊手勢(shì)設(shè)置代理self

在文件中實(shí)現(xiàn)UIGestureRecognizerDelegate中的

  - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;

代碼如下:

  - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
  {

  // 輸出點(diǎn)擊的view的類名
  // 若為UITableViewCellContentView(即點(diǎn)擊了tableViewCell),則不截獲Touch事件
  if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"])             
  {
        return NO;
  }

  //截獲Touch事件      
  return  YES;

  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容