Swift 按钮因自定义表格视图样式代码(Xcode8)创建的UIView而受阻
我使用以下代码更改UITableView的背景颜色和边框半径: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:
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)
}