我想設置一個表格視圖單元格已被分組,作爲一個按鈕,但我似乎無法找到在XCode 4.2或編程方式在界面生成器中的位置。表視圖單元格作爲按鈕
我試過將表格視圖單元連接到IBAction,但它只允許我創建或鏈接到IBOutlet。
作爲一個臨時修復,我在單元格中嵌入了一個矩形按鈕,但按下時不會突出顯示藍色。
我見過幾個應用程序這項工作,一個例子是在下面的Safari瀏覽器的應用程序清除歷史記錄,並清除Cookies和數據按鈕:
我想設置一個表格視圖單元格已被分組,作爲一個按鈕,但我似乎無法找到在XCode 4.2或編程方式在界面生成器中的位置。表視圖單元格作爲按鈕
我試過將表格視圖單元連接到IBAction,但它只允許我創建或鏈接到IBOutlet。
作爲一個臨時修復,我在單元格中嵌入了一個矩形按鈕,但按下時不會突出顯示藍色。
我見過幾個應用程序這項工作,一個例子是在下面的Safari瀏覽器的應用程序清除歷史記錄,並清除Cookies和數據按鈕:
試想一下,你的IBAction爲是這樣的:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//check if your cell is pressed
BOOL myCellIsPressed = ...
if(myCellIsPressed)
[self buttonPressed];
}
要檢查是否已按下你的,你有幾種方式,爲:
-(IBAction)buttonPressed{
//Do my stuff
}
然後,你應該在你的委託做到這一點例如,如果您知道表格中的按鈕行:
int myCellRow = 5;
if (myCellRow == IndexPath.row) //YES!
或者您可以在您的單元格中放置標記然後檢查是否是一個:
#define myTag 5
在創建單元:
UITableViewCell *myCell = ...
myCell.tag = myTag
而且在didSelectRowAtIndexPath方法:
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
if (selectedCell.tag == myTag) //YES!
這些都不按鈕.. 的清晰餅乾和其他東西的函數在 表視圖委託方法進行處理
tableview : didselectRow
在此可以找到選擇了哪個部分,並且行和執行功能BAS編輯。
一個很簡單的問題,但如何在didSelectRowAtIndexPath方法知道哪個小區或行被實際按下?我得到的BOOL是檢查它是否被按下,但它怎麼知道哪一個? – jcrowson 2012-03-02 10:24:52
讓我編輯我的答案 – 2012-03-02 10:30:27
絕對的輝煌迴應,非常感謝tonio。最後一個問題要清楚:IndexPath.row代表用戶按下了什麼?所以當你說myCellRow == IndexPath.row時,是在說被按下的單元格叫做myCellRow,然後做些什麼? – jcrowson 2012-03-02 10:47:46