簡體   English   中英

將觸摸從uiview傳輸到uitableview

[英]Transferring touches from uiview to uitableview

我這樣設定我的觀點

+- MyView : UIView --------------------+
| A                                    |
|   +- MyTableView : UITableView -----+|
|   |                                 ||
|   |  B                              ||
|   |                                 ||
|   +---------------------------------+|
+--------------------------------------+ 

我想實現以下兩點。

  1. 最初,當用戶開始滾動MyTableView時,我不想滾動MyTableView(圖中的B),而是要在特定點移動MyView(圖中的A)。

  2. 達到某個點后,我要開始MyTableView滾動。 此時,表應該獲得觸摸事件,而超級視圖則不應。 我希望做到這一點而又不必費勁。

我可以通過遵循每個視圖的子類的代碼來實現第一部分

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    if  ( _canReceiveTouches )
        return YES;
    return NO;
}

我在啟用/禁用_canReceiveTouches的地方 ,但是如果不提高觸摸度就無法實現第二部分 我必須將觸摸移到表格視圖以獲取下一個觸摸事件。

有人可以給我一些指示如何實現這一目標嗎? 提前致謝。

實現touchesMoved:WithEvent:

在方法內部,使用以下方法獲取觸摸的位置(CGPoint):

CGPoint touchLocation = [touches anyObject] locationInView:self.view];

然后,將其與表格視圖的“頂部” y(也稱為origin.y)進行比較。 您可以使用以下方法獲取此信息:

CGFloat tableViewOriginY = CGRectGetMinY(self.tableview.frame);

有一條條件語句,檢查“ touchLocation.y”是否大於或等於“ tableViewOriginY”,那么您已達到所需的位置,可以滾動tableview。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM