qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          iOS為移動中的UIView(UIButton )添加點擊事件

           高高興興迎接新的產品新需求,滿心歡喜的開始工作,結果研究了一下午才發現,是自己想的太簡單了,是我太單純呀。
            需求是這樣的類似下雪的效果,隨機產生一些小雪花,然后每個雪花可以點擊到下個頁面。
            接到需求之后我的首先想法就是用button實現不久可以了,多簡單點事情,結果實踐之后就知道自己多么的無知了,在移動中的button根本沒有辦法接收點擊事件。
            然后同事給出了一種解決辦法,通過手勢獲取點擊的位置,然后遍歷頁面上的控件,如果在這個范圍內就點擊成功。通過這個想法我嘗試用frame來實現需求,然后發現自己又白癡了,頁面上所有的“雪花”的frame,都是動畫結束的位置,并不是實時的位置。
            但是我感到用手勢,然后通過位置,遍歷,這個思路應該是對的,于是繼續百度,發現了一個好東西
            - (CALayer *)hitTest:(CGPoint)p;
            通過這個可以得到這個頁面時候覆蓋了這個點,這樣就可以解決我的問題了,把手勢加在“雪花”的父頁面上,然后點擊事件里進行處理(當然 用這個方法就沒有必要一定用button)
          -(void)tapClick:(UITapGestureRecognizer *)tap
          {
          CGPoint clickPoint =  [tap locationInView:self];
          for (UIImageView *imageView in [self subviews])
          {
          if ([imageView.layer.presentationLayer hitTest:clickPoint])
          {
          // This button was hit whilst moving - do something with it here
          break;
          }
          }
          }
          }
            這樣就可以解決問題,當然應該還有其他的方法,歡迎補充。

          posted on 2014-11-26 15:08 順其自然EVO 閱讀(1374) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄 、android

          <2014年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 遵义县| 五大连池市| 利川市| 塘沽区| 革吉县| 康平县| 南岸区| 博野县| 洪洞县| 吉安县| 郑州市| 雅江县| 固原市| 安康市| 剑阁县| 涟源市| 宜春市| 富锦市| 彰化县| 赫章县| 上犹县| 专栏| 金塔县| 井冈山市| 大田县| 安岳县| 集安市| 米脂县| 伊春市| 云龙县| 长子县| 乐至县| 大厂| 石狮市| 奉节县| 弥勒县| 沧源| 遵化市| 惠安县| 平阴县| 泉州市|