我有一个下拉菜单,用户可以更改显示的数据。当用户选择选择一个项目时,按钮将被更新。
让我们假设按钮标题的开头是“汽车”,而在选择另一个项目后是“示例”,则按钮显示为:“ E ... le”。
如何调整按钮大小以适应其标题?
按钮的代码:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
...
setButtonCars()
...
let tv: UITableViewController = self.children[0] as! HomeTableViewController
print(self.children[0])
tv.tableView.reloadData()
tv.viewWillAppear(true)
buttonDropdown(self)
tableView.deselectRow(at: indexPath, animated: true)
}
func setButtonCars() {
carsButton.setTitle(currentCar.uppercased(), for: .normal)
let icon = UIImage(named: "chevron")!
carsButton.setImage(icon, for: .normal)
carsButton.imageView?.contentMode = .scaleAspectFit
carsButton.imageEdgeInsets = UIEdgeInsets(top: 11, left: 3, bottom: 1, right: 0)
carsButton.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)
carsButton.titleLabel?.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)
carsButton.imageView?.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)
}
编辑: 我忘了提到按钮在UIBarButtonItem内部。
答案 0 :(得分:0)
更改“汽车”按钮的框架(增加宽度),使其可以包含“示例”文本。
希望这会有所帮助。
答案 1 :(得分:0)
由于按钮的固定宽度可能不足以容纳图标和文本,因此可能会发生这种情况。尝试增加按钮的宽度。
设置按钮最小宽度的约束。您还可能希望也提供maxwidth,以防文本太大。
答案 2 :(得分:0)
更改标题后添加.sizeToFit()
:
func changeTitle(_ newTitle: String) -> Void {
carsButton.setTitle(newTitle, for: .normal)
carsButton.sizeToFit()
}