我如何水平对齐状态栏项目文本?

问题描述 投票:0回答:1

我正在学习快速,因此我从时钟应用程序开始。我能够使它正常工作,但是样式不是我期望的。当时间改变时,整个标题就会移动。是否可以防止文本四处移动?

这是正在发生的事情:https://imgur.com/A5yj6CI.gif

guard let statusButton = statusBarItem.button else { return }
let formatter = DateFormatter()

let timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { timer in
  formatter.dateFormat = "hh:mm:ss.S"
  let dateTimeString = formatter.string(from: Date())
  statusButton.title = dateTimeString
}

是否对齐解决方案?如果没有,有什么选择?

swift xcode statusbar menubar statusbaritem
1个回答
0
投票

如果标签没有足够的空间来容纳移位(由于标签值不断变化),则标签左对齐将无助于解决您的问题,因此我相信您可以通过设置固定的宽度约束来解决为您的标签。

首先,您需要将标签设置为最大可能的标签值,即您的情况下为99:99:99.9,看看标签宽度的值是多少。

enter image description here

然后设置标签的宽度限制。

enter image description here

最后设置的约束值需要略大于第一步中看到的最大宽度。

enter image description here

这样,您的标签将有足够的空间来移动,而不会更改可能与之有约束力的其他元素的整体外观。

© www.soinside.com 2019 - 2024. All rights reserved.