如何在SwiftUI中使按钮组具有相同的宽度

时间:2019-07-23 16:28:35

标签: button swiftui

我有一组三个用于媒体控制的按钮(后退,播放/暂停,前进)。当我按下“播放”按钮时,“播放”图标被“暂停”图标代替,该图标占用的空间更少。由于我尚未定义任何大小限制,因此暂停按钮会变小一点,并使其他两个按钮稍微移动一点。

如何在不定义任何硬约束的情况下使所有三个按钮具有相同的宽度,因为当前这些按钮在所有不同设备上都具有完美的尺寸?

简化代码:

  let classes = ['one','two','three','four'];

  classes.forEach(function (cls) {
    changeStyle(cls,"red");
  });

2 个答案:

答案 0 :(得分:1)

我也在用音频播放器做类似的事情。我的方法是将最大视图的不可见副本(Select * from Table where status_code in (2, 3, 4, 5, 6, 7, 8, 9, 10) )放在.opacity(0.0)中,以使大小不会跳跃。

ZStack

答案 1 :(得分:0)

如果您知道尺寸的差异,则可以按不同的数量填充图像 即Image(systemName: "bigger").padding(.horizontal, 1)Image(systemName: "smaller").padding(.horizontal, 5)

您还可以将条件表达式包装在VStack中,然后将框架应用于VStack,使其变为固定宽度。您可能需要将图像放在VStack中居中。

play.circle和pause.circle看起来更像是相同的大小,或者您可以使用播放暂停图像。

最后,您可以使用SF Symbols应用程序导出符号并进行修复。