我正在使用Xcode和Swift为iOS创建一个应用程序。
我有一个按钮,它在宽度上填充屏幕,其高度与根视图成比例。我希望按钮的文字尽可能大,同时仍然适合宽度和高度。我尝试设置一个非常大的字体大小(100),行设置为1并调整FontSizeToFitWidth为true。效果是,它使字体大小填充宽度,如果文本不再适合(在我的平板电脑上以纵向模式的情况),它用“...”替换部分文本
同样在横向模式下,虽然大部分文字完全适合高度,但斜线大于高度,部分位于按钮之外(位于底部)。
答案 0 :(得分:0)
最佳做法是在按钮下方放置标签。并使按钮透明以填充所有标签。 - 用正确的约束做到这一点。 我写了一个小视频如何实现 -
答案 1 :(得分:0)
您必须使用透明按钮并在该按钮后面添加标签。
没有其他方法然后命中并尝试。您必须设置字体并检查它是否适合您的宽度。这是递归函数的一些例子。
您必须设置label.lineBreakMode = .byCharWrapping
和label.numberOflines = 0
func adjustSize() {
let font = label.font
label.font = UIFont(name: font!.fontName, size: font!.pointSize + 1)
let constraintRect = UIScreen.main.bounds.size
let boundingBox = label.text!.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [NSAttributedStringKey.font: label.font], context: nil)
if boundingBox.width < constraintRect.width {
adjustSize()
}
}