[英]SwiftUI changing the position of a view programmatically
Swift 5、iOS 13
一個 SwiftUI 問題
我想在創建視圖時記錄它的 position。 我想保存 position 因為如果我按下重置按鈕,我希望能夠將它移回那里。 有問題的視圖是可拖動的。 我可以在創建幾何閱讀器時使用它來獲取它的坐標,並使用 .appear 屬性對其進行設置。 我可以使用 position 屬性將其放置在 X 點。
但是如果我使用 position 我需要給它坐標。 如果我給它坐標,我就不能使用像 HStack 這樣理智的東西來放置它。 我需要 position 屬性在第一次運行時被忽略,然后每次都應用。
感覺就像是先有雞還是先有蛋的問題。 有沒有人解決這個問題? 一個瘋狂的想法,我可以使用偏移量嗎?
對我來說,你對使用.offset(x:y:)
修飾符的瘋狂猜測似乎讓你走上了正確的道路。
從.onAppear{}
中相關視圖的 GeometryReader 代理中獲取 position 並使用 .offset 恢復它。
我的這個較早的答案只使用 x 軸,應該很容易將其應用於 y 軸: https://stackoverflow.com/a/60854527/301790
如果您需要更多指導,請考慮發布准備復制並粘貼到 Xcode 的代碼。
這里是 UIButton 的代碼示例
Button(action: {
//Here what you want to do on button click:
}) {
HStack {
Spacer()
Text("Scores")
Spacer()
}
}.frame(width: 90, height: 45, alignment: .center)
.foregroundColor(Color.white)
.background(Color.black)
.contentShape(Rectangle())
.padding(EdgeInsets(top: 16, leading:
UIScreen.main.bounds.size.width - 110 , bottom: 16, trailing: 20))
UIScreen.main.bounds.size.width是獲取屏幕寬度,然后您可以從中減去按鈕以將其調整到右上角。 如附圖所示:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.