问题标签 [swiftui-layout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 如何从 SwiftUI 的列表视图中删除底部默认填充
当另一个视图被定义后,我试图删除列表视图的底部填充,以便列表视图位于另一个视图之上。不叠加。似乎从列表中创建了一些额外的空间,我不确定如何删除它以实现我想要的。这就是我所拥有的。
这就是它的样子。您可以看到第 2 行和红色矩形之间有一个间隙。我想要的是这两个视图的边界彼此相邻。
编辑:我尝试将代码嵌入到 VStack 中,但这并没有消除我们在下面看到的白色间隙。
看看这个答案,似乎将列表包装在 VStack 中会消除差距,但这不是我们在这里看到的?
我已经尝试了多种间距等于 0 的 VStack 变体,但还没有找到如何消除由 List 视图创建的间隙。如果添加了更多行,它会开始填满,但我试图在红色矩形上方只放置两行没有白色间隙的行。
我们可以看到下面突出显示的列表视图包含该差距。
swiftui - 循环值显示与抽头相同的结果
我已经为以下内容导入了 JSON countries
:
Country.json(示例)
我有一个函数getAnnotated
可以遍历国家以制作AnnotatedItem
. 它用于Map
并循环通过item
以实际创建MapAnnotation
. 然后item
传递给辅助函数getCountry
。我过滤countries
以获取与 具有相同display_name
字段的国家/地区item
。
所需的行为是在每个国家/地区都有一个注释/标记,点击该注释将弹出一个提供国家信息的模式/表格。
我的问题是,如果我放大并且屏幕上只有一个注释/标记,则单击它时会显示正确的国家/地区。
如果我缩小地图并且有多个注释,我点击的每个注释都会为每个注释弹出相同的country
信息。我认为我循环的方式有问题。
}
swiftui - SwiftUI:LazyVGrid 滚动时不刷新
我有一个显示搜索结果的 LazyVGrid,当我在搜索字段中键入字符时,我执行 CoreData 获取请求并更新@Published
属性。
问题:
LazyVGrid 按预期更新结果,除非它当前正在滚动:在这种情况下,它将等待滚动减速并在刷新之前结束。
作为比较,在 UIKit 中我可以使用 UICollectionView 并调用.reloadData()
它,它会立即刷新网格,无论它是否滚动。
出于测试目的,我尝试了以下操作但没有成功:
- 添加
.animation(nil)
视图修饰符 - 添加
.id(UUID())
视图修饰符 - 当我想刷新视图时更新 a
@State var dummy = ""
,并在视图的主体中使用它,例如:Text(dummy)
贝娄是一些代码来帮助可视化这个东西是如何工作的
知道如何让 LazyVGrid 在滚动动画运行时刷新它的内容事件吗?否则对用户来说感觉没有反应。
swift - 如何防止视图被 SwiftUI 中扩展的其他视图推送
如果你有这样的事情。您会看到底部视图rectangle 1
并rectangle 2
彼此对齐。
但是,一旦您将顶部文本从"Data"
to"Data 2"
或任何更长的时间延长,您就会看到顶部视图将底部视图进一步向下推。无论顶视图中的文本长度如何,如何阻止底视图被进一步向下推?
这是更新的代码以及会发生什么。
是否可以定位文本视图使其不移动?无论上述任何一个矩形上的文本视图的长度如何,我都希望rectangle 2
必须对齐。rectangle 1
我还应该注意,如果上面的文本视图字符串像下面这样长,它将被截断,这是我不想要的。
我也尝试过添加minimumScaleFactor
,0.4
它确实显示了整个文本而没有被截断,但它有同样的问题,它将底部文本视图进一步向下推。
编辑:标准
- 让每个矩形中的两个底部文本视图的位置相互对齐,就像在第一张图片中一样,并且在屏幕上的那个位置。
- 顶部文本视图的长度可以是可变的,无论是 2 个字符还是最多 40 个字符,都不应该导致底部文本视图被进一步向下推。应该注意的是,顶部文本视图中字符串的长度与另一个矩形中的顶部文本视图相比可以是不同的长度。尽管如此,底部视图不应向下移动,它们仍应彼此对齐。
- 如果顶部视图文本字符串开始变得太长,只要不移动底部文本视图,就可以更改字体大小。为了显示所有的文本。
- 顶视图中很长的字符串不应该像第三张图片那样被截断。我尝试修复此
minimumScaleFactor
问题,截断问题已修复,如第四张图片所示,但您可以看到底部文本视图仍然移动。