【发布时间】:2020-10-09 06:53:52
【问题描述】:
目前我有一个看起来像这样的视图。
struct StatsView: View {
var body: some View {
ScrollView {
Text("Test1")
Text("Test2")
Text("Test3")
}
}
}
这会在滚动视图中呈现一个包含 3 个文本的视图,每当我在屏幕中拖动这些文本中的任何一个时,视图都会移动导致其可滚动,即使这 3 个文本适合屏幕并且还有剩余空间。我想要实现的是仅在其内容超过屏幕高度大小时才使 ScrollView 可滚动,如果不是,我希望视图是静态的并且不要移动。我尝试使用 GeometryReader 并将滚动视图框架设置为屏幕宽度和高度,内容也相同,但我仍然有相同的行为,我也尝试过设置 minHeight、maxHeight,但没有任何运气。
我怎样才能做到这一点?
【问题讨论】:
-
如果默认情况下它的内容不超过屏幕高度,我认为滚动视图不会滚动。根据您的描述,我认为它正在弹跳(如果它在离开触摸后回到初始位置)。尝试设置 scrollView.alwaysBounceHorizontal = false & scrollView.bounces = false 并检查它是否有效
-
@MuhammadAli,这是关于 SwiftUI 的,ScrollView 不像 UIKit 中的 UIScrollView 那样有
alwaysBounceHorizontal或bounces,所以下次评论之前要注意。 -
@Asperi 至少 MuhammedAli 指出这是弹跳行为。因此,这听起来有点像 how to disable scrollview bounce in swiftui 的重复。那里接受的答案有一些缺陷,所以你可能也想在那里添加你的答案。
标签: ios swift swiftui scrollview