Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 按钮因自定义表格视图样式代码(Xcode8)创建的UIView而受阻_Swift_Uitableview_Xcode8 - Fatal编程技术网

Swift 按钮因自定义表格视图样式代码(Xcode8)创建的UIView而受阻

Swift 按钮因自定义表格视图样式代码(Xcode8)创建的UIView而受阻,swift,uitableview,xcode8,Swift,Uitableview,Xcode8,我使用以下代码更改UITableView的背景颜色和边框半径: let containerView:UIView = UIView(frame:self.gamesTableView.frame) gamesTableView.layer.cornerRadius = 5 gamesTableView.layer.masksToBounds = true gamesTableView.backgroundColor = UIColor(red:1, green:1, blue:1, alpha:

我使用以下代码更改UITableView的背景颜色和边框半径:

let containerView:UIView = UIView(frame:self.gamesTableView.frame)
gamesTableView.layer.cornerRadius = 5
gamesTableView.layer.masksToBounds = true
gamesTableView.backgroundColor = UIColor(red:1, green:1, blue:1, alpha:0.40)
self.view.addSubview(containerView)
containerView.addSubview(gamesTableView)
这在xcode 7中运行良好,产生了我预期的结果。然而,在Xcode 8中,这段代码似乎导致屏幕上的按钮无法工作,使用调试视图层次结构工具,我发现在这段代码中创建了一个额外的UIView,它似乎阻碍了按钮。删除有问题的代码确实解决了问题,但它也带走了我给表视图提供的额外特性。我想知道是否有其他方法可以达到同样的效果。我已经包含了视图层次结构的图像,包括代码和代码

有问题的按钮是:“开始新游戏”和“设置”

没有样式代码的侧视图:

带有吊索代码的侧视图,请注意前面突出显示的图层:

解决这个问题的方法似乎很简单,只需将上述问题中的代码放入
viewdilayoutsubviews

像这样:

override func viewDidLayoutSubviews(){
    let containerView:UIView = UIView(frame:self.gamesTableView.frame)
    gamesTableView.layer.cornerRadius = 5
    gamesTableView.layer.masksToBounds = true
    gamesTableView.backgroundColor = UIColor(red:1, green:1, blue:1, alpha:0.40)
    self.view.addSubview(containerView)
    containerView.addSubview(gamesTableView)
}

解决这个问题的方法似乎很简单,只需将上述问题中的代码放入
viewdilayoutsubviews

像这样:

override func viewDidLayoutSubviews(){
    let containerView:UIView = UIView(frame:self.gamesTableView.frame)
    gamesTableView.layer.cornerRadius = 5
    gamesTableView.layer.masksToBounds = true
    gamesTableView.backgroundColor = UIColor(red:1, green:1, blue:1, alpha:0.40)
    self.view.addSubview(containerView)
    containerView.addSubview(gamesTableView)
}