UIButton 在 UITableView 中不起作用(点击时崩溃)?我可以得到一些关于 obj-c 的帮助吗

Posted

技术标签:

【中文标题】UIButton 在 UITableView 中不起作用(点击时崩溃)?我可以得到一些关于 obj-c 的帮助吗【英文标题】:UIButton not working inside UITableView(crashes on tap)? Can I get some help for obj-c 【发布时间】:2017-03-11 14:01:59 【问题描述】:

解决方案:这太简单了,我忽略了在这个实现中为我的按钮函数声明方法的需要,修复只是在正确的位置添加它(在实现内部......呵呵!)

-(void)bugButton  //do stuff 

找到了一些看起来像我想要的按钮的代码。添加和编译按钮后,点击时我的应用程序崩溃,知道为什么吗?这是整个单元格,制作这些非常新,因此它与其他东西一起被破解,按钮的东西靠近顶部。我确实在不同的地方有该方法(并且成功地使用了无聊的 PSButtonCell,所以我知道该方法有效)

       @interface harpButtonCell : PSTableCell <PreferencesTableCustomView> 



@end

@implementation harpButtonCell

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(id)reuseIdentifier specifier:(id)specifier 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier specifier:specifier];

    if (self) 
        // icon
        UIImage *bugImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/Bug.png", kSelfBundlePath]];
        UIButton *bugbutton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 75, 75)];
        [bugbutton setImage:bugImage forState:UIControlStateNormal];
        [bugbutton addTarget:self action:@selector(bugButton) forControlEvents:UIControlEventTouchUpInside];
        [self addSubview:bugbutton];
/*
        UIImage *paypalImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/Paypal.png", kSelfBundlePath]];
        UIButton *paypalbutton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 75, 75)];
        [paypalbutton setImage:paypalImage forState:UIControlStateNormal];
        [paypalbutton addTarget:self action:@selector(paypalButton) forControlEvents:UIControlEventTouchUpInside];
        [self addSubview:paypalbutton];*/
//int width = self.contentView.bounds.size.width;
    

    return self;


- (instancetype)initWithSpecifier:(PSSpecifier *)specifier 
    return [self initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"harpButtonCell" specifier:specifier];


- (void)setFrame:(CGRect)frame 
    frame.origin.x = 0;
    [super setFrame:frame];


- (CGFloat)preferredHeightForWidth:(CGFloat)arg1
    return 100.0f;


- (CGFloat)preferredHeightForWidth:(CGFloat)width inTableView:(id)tableView 
    return [self preferredHeightForWidth:width];


@end

【问题讨论】:

你把这段代码放在哪里了,是在 UITableViewCell 里吗,有帮助吗***.com/questions/8836563/… @Flexicoder 啊,这看起来确实有帮助,如果它不起作用,请编辑我的 q 以获取其余缺失的东西 【参考方案1】:

好像你没有实现按钮的动作,尝试在单元格中添加动作:

-(void)bugButton
    NSLog(@"you clicked on button");
 

【讨论】:

我确实有它在不同的地方,我知道该方法可以正常工作,因为我曾经使用 PSButtonCells,但它们占用了太多空间,所以我试图获取这些自定义单元格跨度> 你在哪里声明按钮的动作? 哦!感谢您提出这个问题,因为它帮助我意识到我需要在我的实现中声明它!我的印象是,只要我把它放在像 psbuttoncells 这样的地方,它就可以工作,非常感谢你

以上是关于UIButton 在 UITableView 中不起作用(点击时崩溃)?我可以得到一些关于 obj-c 的帮助吗的主要内容,如果未能解决你的问题,请参考以下文章

如何将静态 UIButton 覆盖在 UITableView 上

如何将静态 UIButton 覆盖在 UITableView 上

为啥我的 UITableView 需要在场景大纲中的 UIButton 下面

如何在 UITableVIew 下添加 UIButton?

如何管理 UITableView + 动态自定义单元格(UIBUtton + UITextField + UIBUtton)插入?

在 UITableView 顶部按下时,UIButton 不会更改其状态