我試圖將深層'Subview'框架轉換爲上層'UIView'。我在這裏附加了視圖層次結構。ConvertRect無法按預期方式工作
附加說明:
我試過這個,但結果是遙遠屏幕:
let rect = smallSubview.convert(smallSubview.frame, to: bigSuperview)
我想小 '子視圖' 幀轉換,到'VideoCrop'/ bigSuperView座標空間。有什麼建議麼?謝謝!
我試圖將深層'Subview'框架轉換爲上層'UIView'。我在這裏附加了視圖層次結構。ConvertRect無法按預期方式工作
附加說明:
我試過這個,但結果是遙遠屏幕:
let rect = smallSubview.convert(smallSubview.frame, to: bigSuperview)
我想小 '子視圖' 幀轉換,到'VideoCrop'/ bigSuperView座標空間。有什麼建議麼?謝謝!
不確定,但不應該考慮你的smallSubView的邊界而不是框架?
我的意思是:
let rect = smallSubview.convert(smallSubview.bounds, to: bigSuperview)
編輯
我不能回答你的回答,因此更新我的答案:)
轉換API的快速視圖顯示
評論func convert(_ rect:CGRect,查看:UIView?) - > CGRect說明
將矩形從接收器的座標系轉換爲另一個視圖的 。參數
RECT接收機的本地 座標系(邊界)中指定的矩形。
view該視圖是 轉換操作的目標。如果視圖爲零,則此方法將 轉換爲窗口底座座標。否則,接收者必須屬於同一個UIWindow對象,這兩個視圖和 。
因爲它表明你應該考慮範圍,而不是框架:)
請告訴我框架和邊界,然後之間的區別?
邊界:指定視圖在其自己的座標系中的位置和大小。 框架:雖然這指定在其superViews座標系統中的視圖的位置和大小:)
因此,任何視圖的邊界的起源爲(0,0),其中框架的x和y相對於其超級查看:)而高度和寬度是相同的:)
光滑。作品!你能解釋爲什麼我們應該使用邊界而不是框架?界限始終將是0,0。 –
太棒了。謝謝Sandeep! :)應該仔細閱讀文檔。哈哈。祝你有美好的一天! –
@roi-mulia:總是歡迎先生!祝你有個美好的一天:) –
請參閱我的更新的答案澄清您的意見 –