我正在尝试在 SwiftUI TabView 中使用自定义图标。我看不出这段代码有什么问题——我已经包含resizable在图像中,但它没有缩小。
HomeView()
.tag(0)
.tabItem {
VStack {
Image("tab-home")
.resizable()
.aspectRatio(CGSize(width: 20, height: 20), contentMode: .fit)
Text("Home")
}
}
Run Code Online (Sandbox Code Playgroud)
当我查看这个时,图像是全尺寸的。
当Image是 SF 符号时它工作正常。
任何想法,SwiftUI 忍者?
如果您可以接受系统为您选择图像大小,您实际上可以添加自定义Symbol Image Set来实现此目的。您可以使用任何矢量图标作为基础。
要获取我们需要的符号模板,您可以打开SF Symbols 应用程序,选择一个图标并将其导出。
在 Sketch(或您选择的其他工具)中打开。请注意,定义了一个独特的结构。我们需要遵循这种结构。在中间,有一个名为“Regular-M”的尺寸,定义这个尺寸就足以满足我们的目的。打开“形状”组并将您的路径元素放在那里。
您可以删除其他尺寸。然后,使整个页面可导出并导出为 SVG。
在您的 XCAsset 文件中,添加一个新的Symbol Image Set并将新创建的 SVG 文件拖放到那里。
现在,您可以简单地使用您在 XCAsset 文件中定义的名称来引用图像,正如您所期望的那样。图像大小会自动调整并正确使用强调色:
TabView {
Text("Hello, world 1").tabItem {
Image("your.image.name")
Text("title1")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3549 次 |
| 最近记录: |