按钮标题在点击时被裁剪

时间:2019-05-24 12:30:10

标签: ios swift

我有一个下拉菜单,用户可以更改显示的数据。当用户选择选择一个项目时,按钮将被更新。

让我们假设按钮标题的开头是“汽车”,而在选择另一个项目后是“示例”,则按钮显示为:“ 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内部。

desc

3 个答案:

答案 0 :(得分:0)

更改“汽车”按钮的框架(增加宽度),使其可以包含“示例”文本。

希望这会有所帮助。

答案 1 :(得分:0)

由于按钮的固定宽度可能不足以容纳图标和文本,因此可能会发生这种情况。尝试增加按钮的宽度。

设置按钮最小宽度的约束。您还可能希望也提供maxwidth,以防文本太大。

答案 2 :(得分:0)

更改标题后添加.sizeToFit()

func changeTitle(_ newTitle: String) -> Void {
    carsButton.setTitle(newTitle, for: .normal)
    carsButton.sizeToFit()
}