我有自定義單元格的tableview.the表被分成許多部分和rows.i有一個單元格上的自定義按鈕。現在,當我點擊該按鈕時,我想要獲取部分編號和行編號。?獲取自定義單元格按鈕單擊的節號和行號?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
訪問區段號碼:內正確int section = indexPath.section;
訪問的行數( 對此
我有自定義單元格的tableview.the表被分成許多部分和rows.i有一個單元格上的自定義按鈕。現在,當我點擊該按鈕時,我想要獲取部分編號和行編號。?獲取自定義單元格按鈕單擊的節號和行號?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
訪問區段號碼:內正確int section = indexPath.section;
訪問的行數( 對此
您需要在您的視圖控制器上實現UIControl事件處理方法,並將其設置爲所有按鈕的處理程序。即你-tableView:cellForRowAtIndexPath:
函數內部,你會做這樣的事情:
[theCell.button addTarget: self
action: @selector(buttonPressed:withEvent:)
forControlEvents: UIControlEventTouchUpInside];
那麼你的事件處理程序是這樣的:
- (void) buttonPressed: (id) sender withEvent: (UIEvent *) event
{
UITouch * touch = [[event touches] anyObject];
CGPoint location = [touch locationInView: self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: location];
/* indexPath contains the index of the row containing the button */
/* do whatever it is you need to do with the row data now */
}
當你在你的tableView選擇一個單元格下面的方法被調用的任何想法節):int row = indexPath.row;
當用戶點擊某一行上的按鈕不叫;它只在他們點擊行背景本身時才被調用。 – 2009-06-11 01:31:16
的的UITableView can convert a CGPoint coordinate into an indexPath:
-(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
個
的一點想法:
你可以通過按鈕的上海華層次重複,直到你找到一個UITableViewCell,然後調用 - (NSIndexPath *)indexPathForCell:在UITableView的(*的UITableViewCell)單元。
- (void)buttonClicked:(id)sender {
UIView *button = sender;
for (UIView *parent = [button superview]; parent != nil; parent = [parent superview]) {
if ([parent isKindOfClass: [UITableViewCell class]]) {
UITableViewCell *cell = (UITableViewCell *) parent;
NSIndexPath *path = [self.tableView indexPathForCell: cell];
// now use the index path
break; // for
}
}
}
您可以交替使用按鈕的標記來存儲引用該行的索引。這隻能保存一個整數,所以當你有一個單獨的部分時,或者當你將行作爲一個扁平列表來管理時,它是最有意義的。
您可以替代子類UITableViewCell封裝按鈕。您的UITableViewCell可以響應按鈕事件並將事件轉播給其自己的代理,從而傳遞自我。然後,事件委託可以調用UITableView上的 - (NSIndexPath *)indexPathForCell:(UITableViewCell *)單元來獲取索引路徑。
添加可以在你的UITableViewCell的subclassTo的實例變量存儲單元格的索引路徑:
NSIndexPath *myIndexPath;
當您在單元格:在indexpath
cellForIndexPath:
通到新創建的/再生細胞。
現在,當您按下按鈕時,只需從您的手機ivar讀取indexpath即可。
輕微更正... [事件觸及]應該是[事件所有觸發] – dizy 2009-06-09 21:46:27