美文网首页
2021-10-11

2021-10-11

作者: 歩羡仙 | 来源:发表于2021-10-11 19:11 被阅读0次

    TableView使用中遇到一些细节场景


    前提:在UITableView中添加SearchController.searchBar作为tableHeaderView

    • 收键盘

      当在searchBar中输入完内容后,当结果列表出现后,希望能在点击tableView的空白区域后,优雅收起键盘「创建手势是必然操作啦~」

      <u style="box-sizing: border-box;">此时需要注意</u>:

      [self.view endEditing:YES]; // 无效

      替换为 :

      [_searchController.searchBar resignFirstResponder];


    • 指定一行Cell设置为已选状态

      简单设置cell.selected = YES;[cell setSelected:YES animated:YES]; 都无效(笔者在cell的- setSelected:animated:中打了断点是有执行的)

      参考这个链接找到原因【tableView默认选中某一行...】

      原因

      调用cell的setSelected方法,在这之后,又将自动调用一次cell的setSecleted方法,而且参数selected的值为NO;<u style="box-sizing: border-box;">So</u>被第二次自动调用的setSelected方法覆盖。

      实用代码

    if(indexPath.row == 0) {
            [cell setSelected:YES animated:YES];
            [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 
    }
    

    相关文章

      网友评论

          本文标题:2021-10-11

          本文链接:https://www.haomeiwen.com/subject/iyqroltx.html