使用 UIScreen 获取屏幕宽度以自动适应内容?
Get screen width to automatically fit content with UIScreen?
我正在使用 Xcode
和 Swift
的最新版本。
我有一个 Navigation Bar
和一个 Navigation Item Title
。
在一些屏幕较小的设备上,此标题太长,因此被截断了。
我的想法是:
首先我计算有多少个字符适合特定的宽度。 (当然有 2-3 个字符的余量,因为有些字符比其他字符大。)
我有可能的标题,一个较长,宽度为 x 个字符,另一个是较短的交替,宽度为 y 个字符。
现在我检查较长的标题是否适合,具体取决于它的字符数和当前屏幕可以容纳的最大字符数。如果没有,我将展示其较短的替代方案。
我想用下面的代码测量屏幕宽度:
let screenWidth = UIScreen.main.bounds.size.width
这样做合适吗?或者这例如根据屏幕分辨率输出不同的值,尽管设备的实际宽度是相同的……
这是什么单位?像素?
注意:应用程序处于纵向模式,因此 width
也是实际设备宽度。
What unit is this? Pixels?
来自docs:
The bounding rectangle of the screen, measured in points.
所以是分。
Is this the right one to do this?
既然您要获取导航栏的宽度,为什么不直接获取导航栏的宽度?
navigationController?.navigationBar.bounds.width
当导航栏覆盖整个屏幕宽度时,这将与 UIScreen.main.bounds.width
的值相同,但这样更有意义,不是吗?
另外,仅供参考,您可以使用特征集合检查屏幕宽度是否较小。虽然这不像计算字符大小那样准确,但当您尝试使 UI 适应不同的屏幕尺寸时,这是 Apple 推荐的方法。
if traitCollection.horizontalSizeClass == .compact {
// small screen width
} else {
// big screen width
}
我正在使用 Xcode
和 Swift
的最新版本。
我有一个 Navigation Bar
和一个 Navigation Item Title
。
在一些屏幕较小的设备上,此标题太长,因此被截断了。
我的想法是:
首先我计算有多少个字符适合特定的宽度。 (当然有 2-3 个字符的余量,因为有些字符比其他字符大。)
我有可能的标题,一个较长,宽度为 x 个字符,另一个是较短的交替,宽度为 y 个字符。
现在我检查较长的标题是否适合,具体取决于它的字符数和当前屏幕可以容纳的最大字符数。如果没有,我将展示其较短的替代方案。
我想用下面的代码测量屏幕宽度:
let screenWidth = UIScreen.main.bounds.size.width
这样做合适吗?或者这例如根据屏幕分辨率输出不同的值,尽管设备的实际宽度是相同的……
这是什么单位?像素?
注意:应用程序处于纵向模式,因此 width
也是实际设备宽度。
What unit is this? Pixels?
来自docs:
The bounding rectangle of the screen, measured in points.
所以是分。
Is this the right one to do this?
既然您要获取导航栏的宽度,为什么不直接获取导航栏的宽度?
navigationController?.navigationBar.bounds.width
当导航栏覆盖整个屏幕宽度时,这将与 UIScreen.main.bounds.width
的值相同,但这样更有意义,不是吗?
另外,仅供参考,您可以使用特征集合检查屏幕宽度是否较小。虽然这不像计算字符大小那样准确,但当您尝试使 UI 适应不同的屏幕尺寸时,这是 Apple 推荐的方法。
if traitCollection.horizontalSizeClass == .compact {
// small screen width
} else {
// big screen width
}