OGeek|极客世界-中国程序员成长平台

标题: ios - 只能点击 UITableView 中的一项 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 14:20
标题: ios - 只能点击 UITableView 中的一项

所以我有一个列出数据的子类 UITableView。我只需要选择一个单元格。

- (NSIndexPath *)tableViewUITableView *)tableView willSelectRowAtIndexPathNSIndexPath *)indexPath {
// rows in section 0 should not be selectable
    UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
if (indexPath.row == 3) {
    cell.userInteractionEnabled = YES;
    cell.selectionStyle = UITableViewCellSelectionStyleGray;
    NSLog(@"Hey whats up, address");
    return indexPath;
}
else {
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
   return nil;
}



- (void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath{


[tableView deselectRowAtIndexPath:indexPath animated:YES];
}

到目前为止,我执行此操作的代码有效,但仅在单击单元格至少一次之后。将其放在 didSelectCell 中,如果按住 1-2 秒,则可以选择单元格。



Best Answer-推荐答案


您应该在 cellForRowAtIndexPath 中执行此操作。像这样:

-(UITableViewCell*)tableViewUITableView *)aTableView cellForRowAtIndexPathNSIndexPath *)indexPath{

// your code
if(indexPath.row != 3)
{
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
{

}

然后在didSelectRowAtIndexPath:

- (void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath{
   if(indexPath.row == 3)
    {
        //do your stuff
    {

}

关于ios - 只能点击 UITableView 中的一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150993/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4