2011-11-21 82 views

回答

0

您可以使用UIBezierPath的containsPoint:方法計算觸摸是否在曲線內。然而,這隻有在路徑是閉合類型(例如圓形或矩形)時纔有效。

我從來沒有測試過的一件事情是,如果一條路徑被從一個不可見的行從開始點到結束點隱式關閉。如果在你的想象中除了第四面不存在,那麼在多邊形的三面可以檢測到四面內的命中。

對於曲線是單一筆畫的情況(如在繪畫程序中),您將不得不人爲地擴大筆畫以檢測您的觸摸。實現此目的的一種方法是,從每一端開始切線,並在請求「擴展線/筆劃」時,大多數矢量程序沿曲線繪製相同形狀的平行線,然後在該擴展筆劃內檢測到擊中。膨脹中風的肥胖程度將決定觸覺的準確程度。