2012-06-19 35 views
0

我有一個iOS應用程序,它具有寬度靈活的UITableView,可以在方向更改期間自動將滾動條放置在iPad的右側。UITableViewCell在靈活寬度內的「可觸摸」區域的裁剪或遮罩UITableView

但是,我的單元格視圖有一個不可調整大小的背景,應該向用戶顯示可觸摸區域是什麼。但是,如果用戶遠離背景觸摸,手勢將被截取爲didSelect事件,因爲表覆蓋整個屏幕,表格單元格也是如此。

因此,我正在尋找一種方法來解析用戶的觸摸,看看它是否在背景之外,並接受與否。

使事情複雜化,我使用UIStoryBoard。

更新: 只是爲了完成lolcat提出的兩個解決方案的答案,我選擇重寫NSResponder方法,因爲我已經有一個UIStoryBoard,並且已經繪製了所有的segues。通過使用NSResponder,我沒有改變我的視圖控制器中的一行代碼。

回答

0

我已經做了這樣的事情,在觸摸應被攔截的單元格上放置一個不可見的按鈕。創建一個函數來作爲選擇器來響應該按鈕,該按鈕的功能通常與您的didSelectRowAtIndexPath函數相同。

否則,您可以繼承UITableViewCell並覆蓋touchesBegan(或touchesEnded - 基於您正在查找的內容)。這將允許您看到在單元格內點擊的確切點。該方法可以是seen here

+0

我看不到像touchesBegin/End方法:在UITableViewCell中,它已被棄用? – Leonardo

+0

觸摸功能是UIResponder功能。 UITableViewCell是UIView的子類,它是UIResponder的子類。 [文檔在這裏](http://developer.apple.com/library/ios/#documentation/uikit/reference/UIResponder_Class/Reference/Reference.html) – Dima

+0

好的,我明白了,在你的答案中有一個錯字錯誤,我剛剛複製並粘貼,編譯器正在抱怨。 – Leonardo