2010-04-17 73 views
0

我有一個表格單元格的UIButton是爲了彈出一個UIActionSheet,但問題是didSelectRowAtIndexPath捕獲該觸摸並且它的操作優先。當用戶觸摸按鈕時,任何聰明的方式來覆蓋該動作,並且當用戶按下單元格中的其他位置時仍然具有默認動作?UIButton攔截UITableView的didSelectRowAtIndexPath方法

太糟糕了沒有MoveToFront屬性。

回答

3

你怎麼有加的單元格按鈕

我把一個樣本

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

...

UIButton *btnDetail = [UIButton buttonWithType:UIButtonTypeRoundedRect] ; 

    [btnDetail setFrame:CGRectMake(225.0f, 15.0f, 65.0f, 20.0f)] ; 
    //btnDetail.backgroundColor = [UIColor grayColor]; 
    [btnDetail setTitle:@"Detail" forState:UIControlStateNormal]; 
    [btnDetail setTitleColor: [UIColor redColor] forState: UIControlStateNormal]; 
    [btnDetail.titleLabel setFont:[UIFont fontWithName:@"Verdana-Bold" size:12]]; 
    [btnDetail setBackgroundColor:[UIColor clearColor]]; 
    [btnDetail sizeThatFits:btnDetail.frame.size]; 
    [cell addSubview:btnDetail]; 
    [btnDetail addTarget:self 
       action:@selector(function1:) 
    forControlEvents:UIControlEventTouchUpInside]; 
    [btnDetail setImage:[UIImage imageNamed:@"btn-detail.png"] forState:UIControlStateNormal]; 

如果你寫

[btnDetail addTarget:self 
        action:@selector(function1:) 
     forControlEvents:UIControlEventTouchUpInside]; 

你的按鈕應該能夠捕捉觸摸事件和function1應該被稱爲...在它的觸摸事件...

+0

這是我使用的方法。但是,didSelectRowAtIndexpath正在接觸,而不是UIControlEventTouchDownInside。 該按鈕的大小是16x16(其背景圖像的大小),但我不認爲做大它會做任何事情。 – 2010-04-17 05:31:12

+0

然後嘗試UIControlEventTouchUpInside .... – 2010-04-17 05:49:46

+0

沒有。還要別的嗎? 你自己試過這個嗎? – 2010-04-17 05:56:29