美文网首页
iOS11.0-UITableViewController自动弹

iOS11.0-UITableViewController自动弹

作者: 神秘嘉宾yzj | 来源:发表于2018-04-12 21:59 被阅读542次

    UITableViewController自动弹出键盘

    场景:
    输入列表,n个输入框(每一行44高度,30个cell),或编辑或弹出picker

    各个cell自动适应高度
    设置预设高度:
    self.tableView.rowHeight = UITableViewAutomaticDimension;
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    点击当前屏幕范围内某inputView,弹出键盘, UITableViewController自动弹起,会出现不在当前视图内的cell加载不出来,产生空白(部分cell展示不出),再次滚动滚出范围恢复加载cell;

    解决方案:
    取消预设高度,通过代理方法heightForRowAtIndexPath:返回每一行cell高度;

    原因:
    tableView自适应高度,每个cell的位置都是不确定的,弹出键盘会改变cell(不在当前屏幕的)的位置,导致UI错乱;
    由于本人xcode环境9.1,在我的手机(iphoneX11.3)上时100%复现的bug,在11.2系统iphone se上面复现率也很高;感觉和11.0之后UITableViewController的底层机制有关系,还需要更深入的研究;

    ps:
    我的table布局,创建cell加入到list里面;
    中间看到同事利用字典参数,循环创建的cell输入列表,参考:https://www.jianshu.com/p/47e96d025742;
    有机会学习一下,感觉自己技术落后了;

    相关文章

      网友评论

          本文标题:iOS11.0-UITableViewController自动弹

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