qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          iOS為移動(dòng)中的UIView(UIButton )添加點(diǎn)擊事件

           高高興興迎接新的產(chǎn)品新需求,滿心歡喜的開(kāi)始工作,結(jié)果研究了一下午才發(fā)現(xiàn),是自己想的太簡(jiǎn)單了,是我太單純呀。
            需求是這樣的類似下雪的效果,隨機(jī)產(chǎn)生一些小雪花,然后每個(gè)雪花可以點(diǎn)擊到下個(gè)頁(yè)面。
            接到需求之后我的首先想法就是用button實(shí)現(xiàn)不久可以了,多簡(jiǎn)單點(diǎn)事情,結(jié)果實(shí)踐之后就知道自己多么的無(wú)知了,在移動(dòng)中的button根本沒(méi)有辦法接收點(diǎn)擊事件。
            然后同事給出了一種解決辦法,通過(guò)手勢(shì)獲取點(diǎn)擊的位置,然后遍歷頁(yè)面上的控件,如果在這個(gè)范圍內(nèi)就點(diǎn)擊成功。通過(guò)這個(gè)想法我嘗試用frame來(lái)實(shí)現(xiàn)需求,然后發(fā)現(xiàn)自己又白癡了,頁(yè)面上所有的“雪花”的frame,都是動(dòng)畫結(jié)束的位置,并不是實(shí)時(shí)的位置。
            但是我感到用手勢(shì),然后通過(guò)位置,遍歷,這個(gè)思路應(yīng)該是對(duì)的,于是繼續(xù)百度,發(fā)現(xiàn)了一個(gè)好東西
            - (CALayer *)hitTest:(CGPoint)p;
            通過(guò)這個(gè)可以得到這個(gè)頁(yè)面時(shí)候覆蓋了這個(gè)點(diǎn),這樣就可以解決我的問(wèn)題了,把手勢(shì)加在“雪花”的父頁(yè)面上,然后點(diǎn)擊事件里進(jìn)行處理(當(dāng)然 用這個(gè)方法就沒(méi)有必要一定用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;
          }
          }
          }
          }
            這樣就可以解決問(wèn)題,當(dāng)然應(yīng)該還有其他的方法,歡迎補(bǔ)充。

          posted on 2014-11-26 15:08 順其自然EVO 閱讀(1378) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄 、android

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 建阳市| 红原县| 新乐市| 福安市| 象山县| 寿光市| 蚌埠市| 峨边| 阳朔县| 南木林县| 友谊县| 渝北区| 白山市| 葫芦岛市| 中牟县| 宁安市| 团风县| 渝北区| 上蔡县| 平乡县| 稻城县| 井研县| 河池市| 龙口市| 武平县| 瑞金市| 涞水县| 慈利县| 河津市| 科尔| 武隆县| 达拉特旗| 峨眉山市| 新干县| 江永县| 富源县| 富裕县| 扎赉特旗| 屯昌县| 龙州县| 万宁市|