解决tableView上cell的按钮点击效果不明显(轻点无效)

本文介绍了在iOS8环境下,如何通过创建一个baseTableView父类,并在父类中重写`cellForRowAtIndexPath`方法来解决tableView上cell内按钮点击效果不明显或者点击无响应的问题。

在ios8中,可以让tableview继承一个baseTabelView父类,在父类的.,m文件中重写以下方法:

#import "BaseTableView.h"

@implementation BaseTableView

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self)
    {
        self.delaysContentTouches = NO;
        
        // iterate over all the UITableView's subviews
        for (id view in self.subviews)
        {
            // looking for a UITableViewWrapperView
            if ([NSStringFromClass([view class]) isEqualToString:@"UITableViewWrapperView"])
            {
                // this test is necessary for safety and because a "UITableViewWrapperView" is NOT a UIScrollView in iOS7
                if([view isKindOfClass:[UIScrollView class]])
                {
                    // turn OFF delaysContentTouches in the hidden subview
                    UIScrollView *scroll = (UIScrollView *) view;
                    scroll.delaysContentTouches = NO;
                }
                break;
            }
        }
    }
    return self;
}

@end


但是在ios7中,这种办法就失去了效果,因为在ios7中,tableviewcell中也有scrollView的子类,因此需要对cell进行遍历:

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    for (UITableViewCell *cell in self.tableView.visibleCells) {
        for (id obj in cell.subviews)
        {
            if ([NSStringFromClass([obj class]) isEqualToString:@"UITableViewCellScrollView"])
            {
                UIScrollView *scroll = (UIScrollView *) obj;
                scroll.delaysContentTouches = NO;
                break;
            }
        }
    }
}
以上代码我用在storyboard拖的tableview控制器中,类别为静态cell.而对于动态的cell,则可以在datasource的代理方法

cellForRowAtIndexPath中将上述forin循环代码贴上.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值