【问题标题】:Buttons in UITableview cell doesn't get highlighted on fast clicksUITableview 单元格中的按钮不会在快速点击时突出显示
【发布时间】:2013-12-16 14:55:36
【问题描述】:

我在 UITableview 单元格中添加了自定义 UIButton。
使用以下代码:-

UIButton *btnOtherCount=[UIButton buttonWithType:UIButtonTypeCustom];

    btnOtherCount.frame=CGRectMake(577, 43, 110, 60);
    [btnOtherCount setBackgroundImage:[UIImage imageNamed:@"orange.png"] forState:UIControlStateNormal];
    [btnOtherCount setTitle:@" Nonfiction - Other - 0" forState:UIControlStateNormal];
    btnOtherCount.titleLabel.lineBreakMode=NSLineBreakByWordWrapping;
    btnOtherCount.titleLabel.textAlignment = NSTextAlignmentCenter;
    btnOtherCount.titleLabel.font=[UIFont boldSystemFontOfSize:13.0f];
    [btnOtherCount setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btnOtherCount addTarget:self action:@selector(done:) forControlEvents:UIControlEventTouchDown];
    [cell.contentView addSubview:btnOtherCount];

问题是,当我尝试单击单元格中的按钮时,它不会突出显示以快速触摸,或者如果我单击快速或连续触摸一个接一个等等。但是当我稳定且更有力地单击时(不是长按),它会突出显示。

重要的是在这两种情况下都会调用相应的操作方法,即在慢速点击和快速点击中。

【问题讨论】:

    标签: ios objective-c uitableview uibutton


    【解决方案1】:

    这是 iOS7 的一个新问题。 UITableviewCell 的视图层次结构中现在有一个滚动视图。该滚动视图检查它是否需要在按钮获得触地事件之前接管触摸操作。对此有一个 hack 修复,在您的单元初始化中添加以下代码:

    for (id obj in self.subviews)
    {
        if ([NSStringFromClass([obj class]) isEqualToString:@"UITableViewCellScrollView"])
        {
            UIScrollView *scroll = (UIScrollView *) obj;
            scroll.delaysContentTouches = NO;
            break;
        }
    }
    

    这并不理想,但它适用于我的细胞。我不使用 UITableViewCell 内的滚动视图,所以我可以做这个 hack。如果您需要滚动视图的功能,那么这可能会给您带来麻烦。

    【讨论】:

    • 这是一个非常脆弱的修复。它依赖于操作 UIKit 中的私有类。糟糕的魔力。
    • 还有一个可怕的内存泄漏与动画表格单元格是由调配函数修复的。在修复内部代码之前,这些脆弱的修复都是可以完成的。或者您可以处理 iOS7 的新“改进”行为。
    • @Putz1103 ,嘿,谢谢你的帮助,但仍然没有任何区别。
    • 在模拟器上看起来没有区别,但在设备上它可以工作。如果在设备上它仍然无法工作,那么您无能为力。现在这是 iOS7 内置的行为,除了这些 hack 实现之外无法处理。
    猜你喜欢
    • 2011-02-06
    • 2018-07-30
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多