2016-12-16 105 views
0

我試圖將深層'Subview'框架轉換爲上層'UIView'。我在這裏附加了視圖層次結構。ConvertRect無法按預期方式工作

附加說明:

enter image description here

我試過這個,但結果是遙遠屏幕:

let rect = smallSubview.convert(smallSubview.frame, to: bigSuperview) 

我想小 '子視圖' 幀轉換,到'VideoCrop'/ bigSuperView座標空間。有什麼建議麼?謝謝!

+0

請參閱我的更新的答案澄清您的意見 –

回答

3

不確定,但不應該考慮你的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,0。 –

+0

太棒了。謝謝Sandeep! :)應該仔細閱讀文檔。哈哈。祝你有美好的一天! –

+0

@roi-mulia:總是歡迎先生!祝你有個美好的一天:) –

相關問題