在SwiftUI中对齐包含的视图

时间:2019-06-19 18:54:13

标签: ios swift swiftui

好。我正在将this project复制为纯SwiftUI视图。

我的工作适合我。我知道该系统仍然存在问题。第一次更新很有帮助,但是仍然存在问题。

尽管如此,我仍然希望大多数问题由我自己解决。这些,我可以解决。

我将以与原始控件相同的方式布置控件,该控件分为三层:背景圆圈,中间可移动元素(微调器)和顶部透明蒙版。

圈已经完成,我正在绘制旋转器图层。

我希望它看起来像这样:

What I Want

我目前看起来像这样:

What I Get

问题是我花了一段时间来获取图像尺寸以告知偏移量,但我真正想要的是简单地使图像锚点指向顶部,因此对偏移量进行了排序

我尝试弄乱alignmentGuideframe这些东西,但是我一定不能很好地理解它们,因为它们似乎被忽略了。

这里是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)
    }
}

有人看到我在做什么错吗?我会继续这样做,最终将找到并解决此问题,但我仍会继续努力。

1 个答案:

答案 0 :(得分: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)
    }
}

You-Reek-Ah

我将OUTER对准.top。

向上和向上...