我在tableView的部分有一个页脚。 我尝试在中间添加一个按钮,然后按下按钮。 我没有找到如何使我的按钮居中,我尝试使用view.center,或者给他所有父视图的宽度,并在使用文本对齐后,我的按钮中心。 (我个人更喜欢使用第二种方法。) 实际上我的代码就是这个
override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView()
let labelMore = UIButton()
footerView.addSubview(labelMore)
labelMore.sizeToFit()
labelMore.setTitle(footerText(status: "Test"), for: .normal)
labelMore.backgroundColor = #colorLiteral(red: 0.3411764801, green: 0.6235294342, blue: 0.1686274558, alpha: 1)
footerView.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
//labelMore.addTarget(self, action:#selector(footerMore(sender:)), for: .touchUpInside)
return footerView
}
我得到了,绿色方块实际上是我的按钮,我从我的代码labelMore.frame = footerView.frame中删除,因为它不起作用
编辑:如果我的问题不明确,我想把我的按钮放在中心位置。
答案 0 :(得分:1)
您所显示的代码都没有“居中”按钮,因此它没有居中也就不足为奇了。您根本不设置frame.origin
的{{1}},因此其原点为零 - 左上角,完全如屏幕截图所示。
我从代码
中删除labelMore
是的,那是永远无法奏效的。这只是混淆labelMore.frame = footerView.frame
和frame
的另一个案例。请记住,子视图的bounds
是根据超级视图的frame
。所以你要把代码改为
bounds
然而,由于labelMore.frame = footerView.bounds
没有界限,因此无法正常工作 - 你没有给它任何大小!
这里的真实解决方案是使用autolayout定位footerView
。这样,无论labelMore
如何最终确定大小,footerView
都会在其中拥有正确的位置。例如,假设您希望labelMore
与labelMore
的大小相同:
footerView