2013-06-27 58 views
0

我有自定義可拖動的UITextViews,最新拖拽的UITextView有最大的zPosition(textView.layer.zPosition)以確保它出現在其他textView上面,但是當我拖動textViews在彼此之上,然後嘗試移動一個出現在上面,最新添加(到超級視圖)textView的hitTest首先運行,應用程序決定它被擊中,即使我需要最大的zPosition(最近移動了一個)更改點擊測試序列的彼此頂部的視圖

我試圖修改則hitTest,以檢查是否有關於觸摸位置其他textViews與更大的z向位置,但是則hitTest基於TextView的的邊界(左上角爲x = 0 Y = 0)

給位置那麼,有沒有辦法改變擊中測試運行,而無需去除的看法,然後重新添加的順序,或者你能想到的另一種方式,以確保正確的觀點被擊中

example situation

回答

1

好吧,我使用textView自己的框架修復了hitTest。由於從則hitTest點是給我的位置基礎上的TextView的邊界,

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
    //Real location of point in superview 
    CGPoint pointInEditingView = CGPointMake(self.frame.origin.x+point.x, self.frame.origin.y+point.y); 

然後我檢查是否有觸摸位置的其他textViews具有較大z位置值,如果有

0

使用bringSubviewToFront與你的上海華最新移動UITextView

+0

我也嘗試返回nil,沒有工作 – Efesus

+0

它應該工作,你可以添加一個示例項目或相關的源代碼? – Danilo

+0

我每次使用textView時都會使用[editingView bringSubviewToFront:[textViewArray objectAtIndexPath:maxZPositionTextView]],但它不起作用 – Efesus