好的。我正在努力复制this project作为纯 SwiftUI View 。
我的工作已经完成。我知道这个系统仍然有很多问题。第一次更新有很大帮助,但仍然存在问题。
尽管如此,我仍然希望大部分问题都是我自己造成的。这些,我可以解决。
我以与原始控件相同的方式布局控件,具有三层:背景圆圈、中间可移动元素(微调器)和顶部透明蒙版。
圆圈已经完成,我正在绘制旋转层。
我希望它看起来像这样:
我目前的样子是这样的:
问题是,我很难获取图像尺寸以告知偏移量,但我真正想要的是简单地使图像 anchor 位于顶部,以便对偏移量进行排序.
我尝试搞乱 alignmentGuide
和 frame
的东西,但我一定没有很好地理解它,因为它们似乎被忽略了。
这是the code snippet对于一个图像半径,这应该发生:
struct RVS_SwiftUISpinner_ItemDisplayView: View {
@State var itemImage: Image
@State var size: CGSize
var body: some View {
return VStack(alignment: .center, spacing: 0) {
self.itemImage
.resizable()
.aspectRatio(contentMode: .fit)
.offset(y: -self.size.height)
.frame(alignment: .top)
}
.frame(width: self.size.width,
height: self.size.height,
alignment: .bottom)
.background(Color(red: 0, green: 1.0, blue: 1.0, opacity: 0.25))
.offset(y: -self.size.height / 2.0)
}
}
有人看到我做错了什么吗?我会坚持下去,最终我会找到并解决这个问题,但我基本上仍然在不断地弥补这个问题。
最佳答案
好的。我想我已经有了:
struct RVS_SwiftUISpinner_ItemDisplayView: View {
@State var itemImage: Image
@State var size: CGSize
var body: some View {
return VStack(alignment: .center, spacing: 0) {
self.itemImage
.resizable()
.aspectRatio(contentMode: .fit)
.frame(alignment: .top)
}
.frame(width: self.size.width,
height: self.size.height,
alignment: .top)
.background(Color(red: 0, green: 1.0, blue: 1.0, opacity: 0.25))
.offset(y: -self.size.height / 2.0)
}
}
我做了外部对齐.top。
向前、向上...
关于ios - 在 SwiftUI 中对齐包含的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56674165/