【发布时间】:2019-07-21 20:19:03
【问题描述】:
7 月 24 日添加:
这行代码修复了详细视图中的空间。但是...在列表视图中,标题也变得更小了。
.navigationBarTitle(Text("Egg management"), displayMode: .inline)
7 月 23 日添加:
感谢提示,我取得了很大进步。尤其是添加边框的技巧确实很神奇。你明白会发生什么!
但是,Xcode Preview 画布、模拟器和物理设备之间似乎存在差异。这是一个错误,因为 - 毕竟 - 它仍然是测试版吗?或者有什么我可以做的吗?
正如您在图片中看到的那样……只有在 Xcode 预览画布中,视图才连接到屏幕顶部。
我相信它与标签栏有关。因为当我用标签栏查看 Xcode Preview 画布时......上面的空间也在那里。知道如何摆脱它吗?
原帖:
这是我的详细列表视图代码:
import SwiftUI
struct ContentDetail : View {
@State var photo = true
var text = "Een kip ..."
var imageList = "Dag-3"
var day = "3.circle"
var date = "9 augustus 2019"
var imageDetail = "Day-3"
var weight = "35.48"
var body: some View {
VStack (alignment: .center, spacing: 10) {
Text(date)
.font(.title)
.fontWeight(.medium)
ZStack (alignment: .topLeading){
Image(photo ? imageDetail : imageList)
.resizable()
.aspectRatio(contentMode: .fit)
.background(Color.black)
.padding(.trailing, 0)
.tapAction {
self.photo.toggle() }
HStack {
Image(systemName: day)
.resizable()
.padding(.leading, 10)
.padding(.top, 10)
.frame(width: 40, height: 32)
.foregroundColor(.white)
Spacer()
Image(systemName: photo ? "photo" : "pencil.circle")
.resizable()
.padding(.trailing, 10)
.padding(.top, 10)
.frame(width: 32, height: 32)
.foregroundColor(.white)
}
}
Text(text)
.lineLimit(6)
.frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)
.padding(.leading, 6)
} .padding(20)
}
}
#if DEBUG
struct ContentDetail_Previews : PreviewProvider {
static var previews: some View {
ContentDetail()
}
}
#endif
还包括预览画布。我没有得到的是如何确保文本和照片与顶部(而不是中间)对齐。我尝试过使用 Spacers、padding 等。
我想我一定是在监督一些小事……但是。有人可以指出我正确的方向吗?谢谢。
添加: 在两个答案之后,我在最后一个文本之后添加了一个 Spacer() 。在预览画布中的 Xcode 中,现在一切看起来都很好。但在我连接的 iPhone 7 Plus 上存在一些问题:视图未与顶部对齐,图像被裁剪(右侧图标消失;右侧出现白色条纹)。
【问题讨论】:
-
对不起,我没有订阅你的问题,所以我只有在你评论我的回答时才收到通知。我现在才看到你的更新。我看到你取得了很大的进步。关于预览,我在开始使用 SwiftUI 的第二天就放弃了它们,并且再也没有回头。至少在 GM 之前,我不打算使用它们。在他们目前的状态下,我不信任他们,我认为他们是在浪费时间。必须仔细检查一切!此外,当您得到不同的结果时,可能有 99% 的情况是预览错误。
-
谢谢。顺便说一句,您网站上的精彩文章(SwiftUI 的 Layout Magic)。
标签: swiftui