作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我编写了以下代码,用于在节标题 View 的中心添加文本标签。
后半部分代码是添加一个UIButton
,它的宽度为100,并与section header的右上角对齐。
结果是:只有添加的标签显示在中心。该按钮根本不会显示在标题上!
能否请您帮忙指出我在实现过程中哪里出了问题?谢谢。
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = UIView()
// code for adding centered title
headerView.backgroundColor = UIColor.gray
let headerLabel = UILabel(frame: CGRect(x: 0, y: 0, width:
tableView.bounds.size.width, height: 28))
headerLabel.textColor = UIColor.black
headerLabel.text = titlesList[section]
headerLabel.textAlignment = .center
headerView.addSubview(headerLabel)
// code for adding button to right corner of section header
let showHideButton: UIButton = UIButton(frame: CGRect(x:headerView.frame.size.width - 100, y:0, width:100, height:28))
showHideButton.setTitle("Show Closed", for: .normal)
showHideButton.backgroundColor = UIColor.blue
showHideButton.addTarget(self, action: #selector(btnShowHideTapped), for: .touchUpInside)
headerView.addSubview(showHideButton)
return headerView
}
最佳答案
你的问题是这一行:
let headerView = UIView()
您没有指定任何框架尺寸,因此下面的行将是您的 showHideButton
框架的可识别尺寸:
let showHideButton: UIButton = UIButton(frame: CGRect(x:headerView.frame.size.width - 100, y:0, width:100, height:28))
当你声明你的 headerView
时使用这一行:
let headerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 100))
关于ios - 如何在 Swift 中将标签和 UIButton 添加到 tableViewSection header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46515882/
我是一名优秀的程序员,十分优秀!