From 7b3ecfffc59d2d980d9f7628365b64c20fe015be Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Sun, 27 Jul 2025 09:42:03 +0000
Subject: [PATCH] 多个小窗缩放问题修复

---
 LiveProject/activity/stream/views/MiniWindow.swift |   28 ++++++++++------------------
 1 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/LiveProject/activity/stream/views/MiniWindow.swift b/LiveProject/activity/stream/views/MiniWindow.swift
index 53fba14..596b66d 100644
--- a/LiveProject/activity/stream/views/MiniWindow.swift
+++ b/LiveProject/activity/stream/views/MiniWindow.swift
@@ -31,7 +31,7 @@
     //视图比例(相对于 main 尺寸)
     @Published var viewRate = 0.5
     //位置
-    @Published var position:CGSize = CGSize(width: 0, height: 0)
+    @Published var position:CGPoint = CGPoint(x: 0, y: 0)
     //主选框位置
     @Published var mainPosition:CGSize = CGSize(width: 0, height: 0)
     //main 尺寸
@@ -160,22 +160,22 @@
             BottomBtns().background(Color.black.opacity(0.4)).frame(maxWidth: .infinity,maxHeight: .infinity,alignment: .bottom)
             
         }.background(Color.blue).frame(width:width,height:height)
-            .offset(self.miniData.position)
+            .position(self.miniData.position)
             .gesture(SimultaneousGesture(DragGesture(minimumDistance: 0)
                 .onChanged{ val in
-                    let x = self.miniData.position.width
-                    let y = self.miniData.position.height
+                    let x = self.miniData.position.x
+                    let y = self.miniData.position.y
                     let newX = x - lastLocation.width + val.translation.width;
                     let newY = y - lastLocation.height + val.translation.height;
-                    self.miniData.position = CGSize(width: newX, height: newY)
+                    self.miniData.position = CGPoint(x: newX, y: newY)
                     //print(" onChanged \(index) \(self.miniData.position) ")
                     lastLocation = val.translation;
                 }.onEnded{ val in
-                    let x = self.miniData.position.width
-                    let y = self.miniData.position.height
+                    let x = self.miniData.position.x
+                    let y = self.miniData.position.y
                     let newX = x - lastLocation.width + val.translation.width;
                     let newY = y - lastLocation.height + val.translation.height;
-                    self.miniData.position = CGSize(width: newX, height: newY)
+                    self.miniData.position = CGPoint(x: newX, y: newY)
                     //print(" onChanged \(index) \(self.miniData.position) ")
                     lastLocation = CGSize(width: 0, height: 0);
                     //print(" onEnded \(val)")
@@ -186,8 +186,6 @@
                         if(miniData.viewRate < 0.4){
                             miniData.viewRate = 0.4
                         }else{
-                            var w = miniData.mainSize.width * l / 2
-                            self.miniData.position = CGSize(width: self.miniData.position.width - w , height: self.miniData.position.height - w)
                         }
                     }
                     lastZoom = val.magnification;
@@ -197,15 +195,9 @@
                     if(miniData.viewRate < 0.4){
                         miniData.viewRate = 0.4
                     }else{
-                        var w = miniData.mainSize.width * l / 2
-                        self.miniData.position = CGSize(width: self.miniData.position.width - w , height: self.miniData.position.height - w)
                     }
                     lastZoom = 0;
                 }))
-            .onAppear{
-            
-                print("onAppear body width = \(width) , height = \(height)")
-            }
     }
     
     /**
@@ -265,8 +257,8 @@
         }.frame(maxWidth: .infinity)
             .padding(EdgeInsets(top: 5, leading: 15, bottom: 5, trailing: 15))
     }
-    
-    func IconButton(info:IconInfo,action:@escaping ()->Void = {},width:CGFloat = 20,height:CGFloat = 20) -> some View{
+
+    func IconButton(info:IconInfo,action:@escaping ()->Void = {},width:CGFloat = 20,height:CGFloat = 20, disabled:Bool = true,allow:Bool = true) -> some View{
         Button(action:{
             print("IconButton ")
             action()

--
Gitblit v1.9.1