在tableView單元中有一個按鈕,我需要響應觸摸事件。的cellForRowAtIndexPath:通常情況下,這將很容易被按鈕在UITableViewCell裏面是一個視圖的子視圖時不能在UITableViewCell子類中工作
[cell.playButton addTarget:self action:@selector(playButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
-tableView內解決
我遇到的問題是,我的按鈕是一個自定義的UITableViewCell子類的裏面,也是一個視圖的子視圖是我創建類的內部..
例如:
UIView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
self.theView = view;
[self addSubview:view];
[view release];
UIButton *playButton = [UIButton buttonWithType:UIButtonTypeCustom];
playButton.frame = CGRectMake(5, 5, 100, 30);
[playButton setImage:[UIImage imageNamed:@"button_playvid.png"] forState:UIControlStateNormal];
[playButton setImage:[UIImage imageNamed:@"button_playvid_active.png"] forState:UIControlStateHighlighted];
self.playButton = playButton;
[self.theView addSubview:playButton];
當按鈕是第I內創建視圖的子視圖e定製UITableViewCell,那麼單元格會突出顯示,而不是按下按鈕,因此我在-tableView:cellForRowAtIndexPath中設置的目標從不會被調用。不知道爲什麼..任何幫助?
感謝,
喬爾
PS。我意識到,創建一個完全像這樣的背景視圖可能沒有實際的理由,因爲已經有一個。這只是我用來解釋我遇到的問題的示例代碼..:D
感謝您的期待!
用「playButtonPressed:」方法實現編輯您的問題。 – Krishna 2012-02-14 05:46:48
你是說你正在你的視圖控制器中創建一個UIButton,並將它作爲視圖控制器視圖的子視圖並添加到uitableview的一個單元中(它也被添加到相同視圖控制器的視圖中)?這不可能是一個好主意... – MGA 2012-02-14 05:49:37
添加您的按鈕到您的新[查看addSubview:playButton] – Hiren 2012-02-14 06:06:36