Swift开发:如何将Medium Widget Extension中的链接文本左对齐
解决Widget中Medium尺寸下Link文本无法左对齐的问题
问题出在你给Text添加的.multilineTextAlignment(.leading)仅对多行文本生效,且Link默认会让内部Text自适应宽度,导致即便VStack设置了.leading对齐,文本仍会居中显示。
直接给每个Link里的Text添加frame(maxWidth: .infinity, alignment: .leading)修饰符,就能让文本占满横向可用空间并左对齐:
case .systemMedium: VStack (alignment: .leading){ Link(destination: URL(string: "game:///link1")!, label: { Text("Link1") .frame(maxWidth: .infinity, alignment: .leading) }) Spacer() Link(destination: URL(string: "game1:///link2")!, label: { Text("Link2") .frame(maxWidth: .infinity, alignment: .leading) }) Spacer() Link(destination: URL(string: "game2:///link3")!, label: { Text("Link3") .frame(maxWidth: .infinity, alignment: .leading) }) } .padding()
如果需要个别文本使用其他对齐方式(比如你原本给Link2设置的右对齐、Link3的居中),只需把对应alignment参数改成.trailing或.center即可。
你之前尝试的.font、.shadow等修饰符不影响布局对齐,因此无法解决问题;.multilineTextAlignment是控制多行文本的换行对齐逻辑,对单行文本的整体布局位置没有作用。
内容的提问来源于stack exchange,提问作者noorapps
相关产品推荐
相关产品推荐

