• UITableView设置cell为不可选?


    本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术。本文将为读者讲解UITableView如何设置单元格属性为不可选?

    问题:

    Mugunth

    怎样才能设置UITableView的单元格属性为不可选择。我不想看到用户选择单元格时显示蓝色选择区域。

    答案:

    Daniel Dickison

    把表格单元格selectionStyle的属性设置为UITableViewCellSelectionStyleNone.

    那会避免单元格高亮,也可以在tableView:didSelectRowAtIndexPath:里检查属性。

    Sebastian Celis

    为了彻底避免UITableViewCell选择,让UITableViewDelegate实现tableView:willSelectRowAtIndexPath:。如果你不希望选中行,从那个函数可以返回nil

    - (NSIndexPath *)tableView:(UITableView *)tv willSelectRowAtIndexPath:(NSIndexPath *)path
    {
        //根据 NSIndexPath判定行是否可选。
     
        if (rowIsSelectable)
        {
            return path;
        }
     
        return nil;
    }

    hanumanDev

    用这个:

    1
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    JOM

    我也遇到过这个问题,几乎试了所有提到的方法。摆脱选择单元格时出现蓝色显示的绝招是加上下面这一行:

    1
    self.myTableView.allowsSelection = NO;

    不清楚是这一行,还是结合所有东西才实现的,但是总体来看蓝色的显示不会再出现了,哈哈!

    zekel

    另一种方法是在UITableViewCell添加几个分类函数。相对于Sebastians的回答(虽然也很棒),我更喜欢这个。因为我在建立我自己的表格,这或许对某些人有帮助。

    - (void)setSelectable:(BOOL)enabled {
        [self setSelectionStyle:UITableViewCellSelectionStyleNone];
        [self setUserInteractionEnabled:enabled];
    }
     
    - (BOOL)isSelectable {
        BOOL disabled = [self selectionStyle]==UITableViewCellSelectionStyleNone &&
                         [self isUserInteractionEnabled];
        return ! disabled;
    }

    Rob Bonner

    设置cell.userinteractionenabled= FALSE;

    ryanday

    苹果说在didSelectRowAtIndexPath里首先要做的是取消选择的行。

    1
    [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:NO];

    然后可以修改AccessoryType为复选标记,或者什么都不是。所以当你进入idSelectRowAtIndexPath你可以取消选择行,但是如果不是为了被选中,那就不需要检查。

    Table View Programming Guide

    Jay

    如果你在界面生成器里设计了单元格,你可以通过'User Interaction Enabled' 为 tableViewCell去除复选框做到这一点。

    原文链接:UITableView Setting some cells as “unselectable”

    文章选自StackOverFlow社区,鉴于其内容对于开发者有所帮助,现将文章翻译于此,供大家参考及学习。9Tech将每日持续更新,读者可点击StackOverflow(简称:SOF)精选问答汇总,查看全部译文内容。同时,我们也招募志同道合的技术朋友共同翻译,造福大家!报名请发邮件至zhangqi_wj#cyou-inc.com。(#换成@

    http://ios.9tech.cn/news/2013/1129/38980.html

  • 相关阅读:
    随笔
    随笔
    随笔1
    随笔2
    intellij-maven-imports-have-broken-classpath
    如何使用idea把web项目打成war包
    spring-wind 搭建过程问题记录
    windows 64位 安装mvn提示 不是内部或外部命令
    面试碰到“为何从上家离职”...
    nginx 两台机器 出现退款失败问题
  • 原文地址:https://www.cnblogs.com/savagemorgan/p/3831613.html
Copyright © 2020-2023  润新知