- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 VStack,它有一些 HStack,正如您在我的代码中看到的那样,在我的每个 Hstack 中都有一个图像和文本,在运行我的代码之后,所有代码的 Alignmet 都很丑陋,我希望图像对齐中心在一起并且文本对齐领先。我该如何解决这个问题?我可以使所有图像 .center 对齐,也可以使所有文本 .leading 对齐。但我不能让两者同时发生。
struct CustomAlignment: AlignmentID
{
static func defaultValue(in context: ViewDimensions) -> CGFloat
{
return context[HorizontalAlignment.center]
}
}
struct CustomAlignment2: AlignmentID
{
static func defaultValue(in context: ViewDimensions) -> CGFloat
{
return context[HorizontalAlignment.leading]
}
}
extension HorizontalAlignment
{
static let custom: HorizontalAlignment = HorizontalAlignment(CustomAlignment.self)
static let custom2: HorizontalAlignment = HorizontalAlignment(CustomAlignment2.self)
}
import SwiftUI
struct ContentView: View {
var body: some View {
VStack(alignment: .custom)
{
HStack()
{
Image(systemName: "folder")
.alignmentGuide(.custom) { $0[HorizontalAlignment.center] }
Text("Some texts here.")
.alignmentGuide(.custom2) { $0[HorizontalAlignment.leading] }
Spacer()
}
HStack()
{
Image(systemName: "music.note")
.alignmentGuide(.custom) { $0[HorizontalAlignment.center] }
Text("Some texts here.")
.alignmentGuide(.custom2) { $0[HorizontalAlignment.leading] }
Spacer()
}
HStack()
{
Image(systemName: "person.fill.questionmark")
.alignmentGuide(.custom) { $0[HorizontalAlignment.center] }
Text("Some texts here.")
.alignmentGuide(.custom2) { $0[HorizontalAlignment.leading] }
Spacer()
}
}
.padding()
Spacer()
}
最佳答案
如果您想要精确控制,请使用自定义对齐指南。
关于您对使用固定框架的评论,here是一篇解释框架如何在 SwiftUI 中工作的文章。基本上,在这种情况下,框架修改器只是在 SF 周围添加一个固定大小的框架,但它不会改变固有大小。
struct ContentView: View {
var body: some View {
VStack(alignment: .sfView) {
SFView(title: "This is some text", image: "folder")
SFView(title: "SwiftUI is cool. Combine is cooler.", image: "snow")
SFView(title: "This is a music note. This has a different length.", image: "music.note")
}
}
}
private struct SFView: View {
let title: String
let image: String
var body: some View {
HStack(spacing: 8) {
Image(systemName: image)
.font(.system(size: 20))
.frame(width: 32, height: 32)
.alignmentGuide(.sfView) { d in d[HorizontalAlignment.center] }
Text(title)
.alignmentGuide(.sfView) { d in d[HorizontalAlignment.leading] }
}
}
}
private extension HorizontalAlignment {
struct SFViewAlignment: AlignmentID {
static func defaultValue(in d: ViewDimensions) -> CGFloat {
d[HorizontalAlignment.leading]
}
}
static let sfView = HorizontalAlignment(SFViewAlignment.self)
}
关于swiftui - 编辑 : How we can alignment Image with Images and Text withTexts in SwiftUI, 多重对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64278774/
我遇到一个问题,如果 ActionItem 有图标和文本,并且 ActionBar 被拆分,它只会显示图标,即使 showAsAction="always|withText"。 有没有办法强制显示文本
我正在尝试使用 withText 创建一个选择器过滤并想要选择同级元素。 给定:const Create_asset = S('span').withText('Create Asset')Creat
我的这个测试大约有一半的时间有效。 @Test public void thirdSwipe() { onView(withId(R.id.pager)).perform(swipeL
这是我的菜单 XML 文件,理论上它应该将两个图标显示为单个图标,第一个图标也应该显示为标题。 然而,在应用程序中它不显示标题,这里是屏幕截图: 那为什么不显示“ti
我正在使用 ActionBarCompat 并有一个用 XML 定义的选项菜单。它看起来像这样: 图标出现在操作栏中,但没有文字!我怎样才能让文字显示出来?我做错了什么? 提前致谢! 最
是否可以按照建议设置标志here android:showAsAction="ifRoom|withText" 以编程方式? 最佳答案 对于每个 MenuItem,执行以下操作: myMenuItem
我有一个带有以下菜单的操作栏: 但是 withText 不起作用。它只显示图标。 我已经尝试使用 android:showAsAction 而不是 app:showA
我正在学习 Pluralsight 教程“使用 Kotlin 的 Android 应用程序:工具和测试”并遇到了以下问题: 在仪器化测试期间,我们检查微调器和两个文本字段中的文本,在视频中它正常运行,
我正在使用 ActionBarSherlock 并尝试向 ActionBar 添加一个选项菜单。 drawable-mdpi 目录中的图标为 32x32 像素。当 Actio
我正在尝试在 .withText() 中同时使用文本和正则表达式来验证我的一项测试。这是我希望完成的: Selector('div').withText(`Are you sure you want
我遇到了 Espresso 的奇怪测试失败。下面是在显示的Dialog中测试一个TextView。我收到以下错误: com.google.android.apps.common.testing.
此平板电脑上操作栏上的按钮,如果显示有文字,则会出现文字变形,如下面的屏幕截图所示: 我尝试了很多可能的设置组合(ifRoom、always、withText……)。即使试图操纵按钮的实际 View
我有一个 VStack,它有一些 HStack,正如您在我的代码中看到的那样,在我的每个 Hstack 中都有一个图像和文本,在运行我的代码之后,所有代码的 Alignmet 都很丑陋,我希望图像对齐
我有一个菜单项,带有图标和文本。我正在使用 Appcompat v7 库。菜单项不显示文本,即使将 showAsAction 设置为 withText|always 或反之亦然。 菜单.xml
我是一名优秀的程序员,十分优秀!