2011-12-26 65 views
1

我在uitableview的每一行中都添加了uibutton現在,無論用戶何時點擊uitableview中的任何按鈕,我都想要刪除該按鈕。請幫我解決這個問題,我已經添加了按鈕標籤indexPath.row,然後激發一個包含可變數組的方法,然後我將[sender標籤]添加到可變數組中,並重新加載tableview,並在單元格中進行檢查,數組是否包含該對象,如果是,則放置一個標籤或其他按鈕。UitableView中的Uibutton

回答

1
add below code in cellForRowAtIndexPath method 
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    myButton.frame = CGRectMake(230, 2, 60, 25); 
    myButton.tag = indexPath.row; 
    [myButton setBackgroundColor:[UIColor clearColor]]; 
    [myButton setTitle:@"Click to remove" forState:UIControlStateNormal]; 
    [myButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
    [myButton addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; 
    [cell.contentView addSubview:myButton]; 


//button action metod 
-(void)buttonAction:(UIButton *)sender 
{ 
    [sender removeFromSuperview]; 
} 
+0

感謝所有有價值的建議,但我想要的是這樣的: - (IBAction)buttonClicked:(id)發送者{[self requestToTheServerToAddThisFriend]如果我在當時獲得成功的反應,我想刪除uibutton並放置一個標籤在那一行上,我開始瞭解removeFromSuperView方法,但我也想放置一個標籤,這對我來說是一個開銷,請給我一些建議。 – user1115985 2011-12-27 05:36:43

0

UIButton是UIView類的一個子類。它有-removeFromSuperview方法。請注意,您將必須檢查單元是否在-tableView:cellForRowAtIndexPath方法中刪除了其按鈕。

1

我已經嘗試過了,希望因此這會爲你工作也

-(IBAction)buttonAction:(id)sender 
    { 
     UIButton *mybutton =(UIButton *)sender; 
     [mybutton removeFromSuperview]; 
    } 

- (UITableViewCell *) tableView:(PullDownTableView *)tableView cellInRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *identifier = @"cellIdentifier"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 

    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier] autorelease]; 
    } 

    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    myButton.frame = CGRectMake(230, 2, 60, 25); 
    [myButton setBackgroundColor:[UIColor clearColor]]; 
    [myButton setTitle:@"Button" forState:UIControlStateNormal]; 
    [myButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
    [myButton addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; 
    [cell addSubview:headerButton]; 
    return cell; 
} 
+0

的UIButton需要唯一標識符來刪除抽頭的UIButton。 – 2011-12-26 07:56:39

+0

@iApple:感謝您的回覆,我認爲唯一標識符是必要的,如果我們想要刪除任何具有特定描述的按鈕。但在這種情況下,無論按鈕被竊聽,應該刪除/刪除。所​​以在ButtonAction誰是發件人將被刪除。指導我,如果我錯了 – 2011-12-26 08:22:59

0

myButton.tag = indexPath.row;需要才能識別要刪除的UIButton。因此,爲UITableViewCell中的每個創建的UIButtons設置一個唯一標記。

以下爲改性示例代碼...

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
myButton.frame = CGRectMake(230, 2, 60, 25); 
myButton.tag = indexPath.row; 
[myButton setBackgroundColor:[UIColor clearColor]]; 
[myButton setTitle:@"Button" forState:UIControlStateNormal]; 
[myButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
[myButton addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; 
[cell addSubview:headerButton]; 
+0

感謝所有寶貴的建議,但我想要的是這樣的: - (IBAction )buttonClicked:(id)sender {[self requestToTheServerToAddThisFriend]如果我當時成功獲得響應,我想刪除uibutton並在該行上放置標籤,我開始瞭解removeFromSuperView方法,但我也想放置一個標籤,這對我來說是一個開銷,請給我一些建議。 – user1115985 2011-12-27 05:51:46