邊界和幀之間有什麼區別?事實上,爲什麼「界限」甚至存在? 「邊界」的大小等於框架的大小,邊界的原點應始終爲0,0。NSView的邊界vs幀
回答
從View and Window Architecture編程指南爲iOS:
一個視圖對象使用其幀,邊界, 和中心性能跟蹤其尺寸和位置:
的幀屬性包含框架矩形,它在其超級視圖的座標系統中指定視圖的大小和位置 。
的範圍屬性包含視圖自身的本地 座標系中的邊界矩形,它指定 大小視圖(及其內容來源)。
center屬性包含 superview座標系中視圖的已知中心點。
這裏是一個解釋一個很好的可視化:
正確。看到我的問題。邊界對於原點始終是0,0,並且尺寸是相同的。那麼爲什麼還有界限,因爲框架包含了所有界限的信息呢? – David 2011-12-13 23:04:30
在第一個答案不包括旋轉爲橫向後會發生什麼變化框架和邊界蘋果文檔。所以爲了更加完整,你應該知道窗口的框架和根視圖在旋轉後不會改變,但是邊界是這樣的。 See this article瞭解更多細節,並小心使用框架作爲縱向方向以外的任何參考。
從文章:
如果您的視圖控制器具有頂級的非窗口視圖(即,它是 最底層的視圖控制器),然後
self.frame
總是縱向。世界衛生大會?是的,總是在肖像 - 你的看法的變化是什麼變化。所以,你的
self.bounds
總是準確的(記住最後一點),但
self.frame
可能會或可能不會給寬高比的用戶真正看到, 因爲每個視圖的框架是根據監視的 座標報告,並考慮應用到 視圖的任何轉換。
邊界的起點並不總是0,0。如果您在滾動過程中觀察UIScrollView的更改界限屬性,很容易理解框架和邊界之間的區別。
例如,您具有帶有幀(0,0,320,460),邊界(0,0,320,460)和ContentSize(640,460)的UIScrollView。其幀總是(0,0,320,460),但邊界的X座標將根據滾動距離而變化。
如果你想改變你的內容可能很有用UIScrollView(例如,動態地創建和刪除頁面),所以你想知道滾動的距離。
視圖框架是它可以完全適合的矩形的大小。它總是看起來好像邊界和框架是相同的,但事實並非如此。 考慮一個剛旋轉大約45度的方形!
這裏這個旋轉的正方形的框架將是完全填充它的矩形,因此它將與此對象的邊界不同。
P.S主要是在旋轉的對象框架和邊界往往不同。
- 1. UIView的邊界大小vs幀大小
- 2. 託管CALayer在NSView邊界變化
- 3. NSView - 在什麼情況下邊界和幀*大小*是不相等的?
- 4. 識別RTP流中的幀邊界
- 5. UIView的邊界和幀大小
- 6. UIImage和UIScrollView的幀/邊界不一致
- 7. 問題設置NSView的幀
- 8. 軸對齊邊界框vs邊界橢圓
- 9. 用負邊界設置NSView的背景顏色原點
- 10. NSView邊框顏色
- 11. 在Mac OS X上獲取NSView相對於屏幕的邊框/邊界10.6
- 12. 如何使NSView不剪輯其邊界區域?
- 13. 根據初始邊界設置NSView默認屬性值
- 14. 表格邊界差異IE9 vs IE8
- 15. PostGIS中的大陸/國家邊界(多邊形vs線串)
- 16. NSView -dataWithPDFInsideRect:和圖層邊框
- 17. 面向邊界框vs定向邊界框相交測試(c/C++)
- 18. cocos2d與levelhelper的邊界滾動邊界
- 19. wpf不同邊界的不同邊界
- 20. 如何獲取邊界的邊界值?
- 21. 我可以同時設置邊界左邊界和右邊界邊界嗎?
- 22. 流遠程幀緩衝到NSView
- 23. 的Java:邊界
- 24. 邊界的Java
- 25. 多邊形的邊界框
- 26. UIView:邊界大小不同的幀大小?
- 27. iPhone 6和6加上給出錯誤的幀,邊界值
- 28. CALayer subLayer正在繪製不同的幀起源。邊界問題
- 29. 在大熊貓數據幀替換外的邊界(復)值
- 30. 獲取四邊形邊界的邊界區域
可能重複[可可:框架和邊界之間的區別是什麼?](http://stackoverflow.com/questions/1210047/cocoa-whats-the-difference-between-the-frame-and-the -bounds) – daisy 2016-05-08 03:16:15