UIButton触摸在UITableView自定义单元格中无法正常工作

时间:2013-12-05 05:17:30

标签: ios objective-c uitableview uibutton

UIButton TouchUpInside或UITableView自定义单元格中无法正常工作的任何其他事件。如果我按下角落里的按钮,有时触摸有效。

实际上我想在任何时候重新排序单元格,所以我启用了编辑模式。

[_profileTblView setEditing:YES animated:YES];
_profileTblView.allowsSelectionDuringEditing=YES;

如果我禁用编辑模式,那么UIButton事件正常工作,但我无法重新排序单元格。在这里,我希望两者一起工作。

那么,这将是什么解决方案..

我的手机看起来像UITableView Custom Cell

Cell的Prototype看起来像Cell Prototype

2 个答案:

答案 0 :(得分:0)

在自定义单元格结束处

1)制作自定义单元格.h文件的协议,如

@protocol CustomCellDelegate
@optional
- (void)ButtonTappedOnCell:(id)sender;
@end

2)在.h文件中设置委托,并在点击方法

上设置自定义单元格按钮
@property (nonatomic, strong) id<CustomCellDelegate> delegate;
- (IBAction)buttonTapped:(id)sender;

3)在你的.m文件中,

- (IBAction)buttonTapped:(id)sender {
    [self.delegate ButtonTappedOnCell:self];
}

4)将IBAction与Button链接

5)取消选中自定义单元格的使用Autolayout

在桌面视图结束时

1)设置自定义单元格的代理

@interface SomeViewController : UIViewController<UITableViewDelegate, UITableViewDataSource, CustomCellDelegate>

2)在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 中,设置单元格的委托cell.delegate=self

3)根据您的需要实施新的代表功能,即

- (void)ButtonTappedOnCell:(id)sender
{
//your logic
}

希望对你有所帮助。

干杯

答案 1 :(得分:0)

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     UITableViewCell *Cell = [tableView dequeueReusableCellWithIdentifier:@"" forIndexPath:indexPath];
    [cell.buttnName2 addTarget:self action:@selector(BtnAction:) forControlEvents:UIControlEventTouchUpInside];
    return Cell;
    }
//action for button
        - (void)BtnAction:(id)sender//type 1 button action
        {
        }