[英]Transferring touches from uiview to uitableview
我這樣設定我的觀點
+- MyView : UIView --------------------+
| A |
| +- MyTableView : UITableView -----+|
| | ||
| | B ||
| | ||
| +---------------------------------+|
+--------------------------------------+
我想實現以下兩點。
最初,當用戶開始滾動MyTableView時,我不想滾動MyTableView(圖中的B),而是要在特定點移動MyView(圖中的A)。
達到某個點后,我要開始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.