`lblAddress.frame.width`
`lblAddress.frame.size.width`
我已搜查如此多的時間,但我仍然沒有指出......是什麼lblAddress.frame.width
和lblAddress.frame.size.width
之間的差異。它給了我相同的輸出..我不知道哪一個使用時?的UILabel得到幀的寬度或高度
請建議一些例子,以便我可以弄清楚整個事情。
`lblAddress.frame.width`
`lblAddress.frame.size.width`
我已搜查如此多的時間,但我仍然沒有指出......是什麼lblAddress.frame.width
和lblAddress.frame.size.width
之間的差異。它給了我相同的輸出..我不知道哪一個使用時?的UILabel得到幀的寬度或高度
請建議一些例子,以便我可以弄清楚整個事情。
他們是(幾乎)相同。 一個是width of CGRect,另一種是width of CGSize。
唯一的區別是frame.width
將始終返回正值,因爲frame.size.width
可能會在某些情況下返回負值。
如果我只關心標準幾何,我會直接使用簡寫frame.width
。
框架和大小都有寬度屬性。您可能會感到困惑,因爲大小也是框架的屬性。這就像我問你我有什麼顏色的鞋子,但下一刻問我腳上有什麼顏色的鞋子,我問的是同樣的事情,這對我來說可能是方便的,根據我的情況。
謝謝.... :) – Foolish
你想找到原點使用此代碼 這裏ViewSend是
self.ViewSend.frame.origin.y
你想找到HIGHT所以用這個代碼
self.ViewSend.frame.size.height
你想找到寬度來看出口所以使用此代碼
self.ViewSend.frame.size.width
謝謝.... :) – Foolish
他們幾乎一樣;然而,fram.width
是一個只有值,但frame.size.width
可用於設置或獲取值
要了解更多,您可以看看如何構造CGRect結構。
struct CGRect {
var origin: CGPoint
var size: CGSize
}
,並添加一些額外的功能,的CGRect的擴展名也由蘋果公司提供的,像下面
extension CGRect {
@available(iOS 2.0, *)
public var height: CGFloat { get }
@available(iOS 2.0, *)
public var width: CGFloat { get }
}
現在回答你的問題。 lblAddress.frame會返回一個的CGRect
lblAddress.frame.width //This will use the extended functionality
lblAddress.frame.size.width //this will use the actual struct
internally the width extension on CGRect will always use the same
CGSize property from struct to give the width back and hence the same
size property is accessed in both case, but the difference is the first
one is standardized and hence only gives back positive values whereas
the second will give the negative values as well.
謝謝.... :) – Foolish