我有一组三个用于媒体控制的按钮(后退,播放/暂停,前进)。当我按下“播放”按钮时,“播放”图标被“暂停”图标代替,该图标占用的空间更少。由于我尚未定义任何大小限制,因此暂停按钮会变小一点,并使其他两个按钮稍微移动一点。
如何在不定义任何硬约束的情况下使所有三个按钮具有相同的宽度,因为当前这些按钮在所有不同设备上都具有完美的尺寸?
简化代码:
let classes = ['one','two','three','four'];
classes.forEach(function (cls) {
changeStyle(cls,"red");
});
答案 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应用程序导出符号并进行修复。