VStack 中 FrameHeight 低于 1 不准确

Posted

技术标签:

【中文标题】VStack 中 FrameHeight 低于 1 不准确【英文标题】:FrameHeight under 1 in VStack not accurate 【发布时间】:2020-08-31 18:30:08 【问题描述】:

我尝试在 VStack 中的项目之间设置一个小分隔符。但是当我添加框架高度为 0.5 的 Color-Line 时,线高不准确。在某些行它比其他行小一点,在某些行分隔符是模糊的。

我也尝试使用 Divider() 代替 Color.frame,但看起来一样。当我使用 1 的框架高度时,它似乎更好,但对于我来说,这对于分隔线来说太大了。

Sample Image

这是我的代码:

struct TestView: View 
    var body: some View 
        VStack 
            ForEach(0...10, id: \.self)  i in
                Color.gray.frame(height: 0.5)
                Text("\(i)")
            
        
    

知道有什么问题吗?或者我该如何解决?还是 SwiftUI 中的 bug?

我正在使用 ios 14 的当前 Beta 5 版本。

【问题讨论】:

我认为这只是模拟器/预览的规模效应。你试过真机吗? 是的,不幸的是它在真实设备上看起来一样 【参考方案1】:

这是你要找的吗?

.frame(height: 1 / UIScreen.main.scale)

【讨论】:

以上是关于VStack 中 FrameHeight 低于 1 不准确的主要内容,如果未能解决你的问题,请参考以下文章

将 VStack 的位置保存在 @State 私有变量中

SwiftUI:VStack中的VStack,标签被截断

SwiftUI - 在 VStack 中对齐文本

VStack中不同的垂直对齐方式

列表与 VStack(在 ScrollView 中)

在 numba 中使用 numpy.vstack