Ios UITable视图项目有时会在选中时消失(取决于屏幕大小)

Ios UITable视图项目有时会在选中时消失(取决于屏幕大小),ios,swift,xcode,uitableview,Ios,Swift,Xcode,Uitableview,我正在创建一个选项卡式应用程序,其中包含3个独立的视图控制器2个常规视图,1个使用Swift 5和Xcode 11的表格视图。在我的第三个视图(即带有表格视图的视图)和UITableViewCells中,有一个红色按钮。我已经在两台测试设备上测试了我的程序,一台是大屏幕,另一台是小的iPhone 5s屏幕,下面是我得到的结果: 屏幕更大的iPhone iPhone 6 Plus: 一切正常,即使我选择UITableViewCell,其中的项目也不会消失 iPhone 5s: 如果我不选择UITa

我正在创建一个选项卡式应用程序,其中包含3个独立的视图控制器2个常规视图,1个使用Swift 5和Xcode 11的表格视图。在我的第三个视图(即带有表格视图的视图)和UITableViewCells中,有一个红色按钮。我已经在两台测试设备上测试了我的程序,一台是大屏幕,另一台是小的iPhone 5s屏幕,下面是我得到的结果:

屏幕更大的iPhone iPhone 6 Plus: 一切正常,即使我选择UITableViewCell,其中的项目也不会消失

iPhone 5s: 如果我不选择UITableViewCell,则一切正常: 但如果我选择UITableViewCell,其中的项目将消失:

这是我的uitableviewcontroller:

导入UIKit @ObjectMembers类CustomViewController:UITableViewController{ 变量标记=0 覆盖func viewDidLoad{ super.viewDidLoad } 覆盖func VIEWDID显示动画:Bool{ } 覆盖tableView中的func NumberOfsection:UITableView->Int{ //警告未完成实现,返回节数 返回1 } 覆盖函数表视图\uTableView:UITableView,numberOfRowsInSection节:Int->Int{ 返回1 } // 3 重写func tableView\utableview:UITableView,cellforrow在indexPath:indexPath->UITableView单元格{ 标签=标签+1 让cell=tableView.dequeueReusableCellwithIdentifier:themeCell,for:IndeXPathAs!themeCell ///////// 让cellButton=UIButtonframe:CGRectx:0,y:5,宽度:50,高度:30 cellButton.TranslatesAutoResizezingMaskintoConstraints=false cell.addSubviewcellButton cell.accessoryView=cellButton cellButton.backgroundColor=UIColor.red cellButton.leadingAnchor.constraintequalTo:cell.leadingAnchor,常数:10.isActive=true cellButton.topAnchor.constraintequalTo:cell.topAnchor,常数:5.isActive=true cellButton.widthAnchor.constraintequalToConstant:50.isActive=true cellButton.heightAnchor.constraintequalToConstant:30.isActive=true cell.img.image=UIImageName:SingletonViewController.themes[indexPath.row] cell.accessoryView=cellButton cellButton.backgroundColor=UIColor.red cellButton.addTargetself,操作:selectorCustomViewController.backBTNsender:,用于:。touchUpInside cellButton.tag=tag 返回单元 } }
知道为什么会发生这种情况吗?

您只需将此项添加到第二个“tableView”功能中,即可禁用表视图的选择功能:

tableView.AllowSelection=false
删除该行代码

cell.accessoryView = cellButton

将按钮添加为子视图或将其设置为附件视图

也许不相关,但为什么要不断增加标签?为什么按钮的背景色设置了两次,按钮被分配给accessoryView两次?。为什么按钮会被添加为单元格的子视图?为什么每次重复使用电池都要多次?好的,如果numberOfRows仍然是1,那么最后一个原因是不相关的。@vadian 1。我正在用标签来标记我做的按钮。我还没用过它。我本来打算做两个按钮,但还没有完成3/4。我将重用cell,但还没有,我将稍后再这样做,而不是使用额外的属性将索引路径的行用作标记。用你的方式你将无法识别细胞。如果按钮用作附件视图,则不需要将其添加为子视图。无论如何,我都会在界面生成器中设计按钮。@vadian谢谢你的建议,这对我很有帮助。