`lblAddress.frame.width`
`lblAddress.frame.size.width`
我已经搜索了这么多次,但我仍然没有指出...... lblAddress.frame.width
和lblAddress.frame.size.width
之间有什么区别。它给了我相同的输出..我不知道在哪个时候使用它?
请提出一些例子,以便我能弄清楚整件事。
答案 0 :(得分:1)
他们(几乎)是一样的。 一个是width of CGRect,另一个是width of CGSize。
唯一的区别是,frame.width
将始终返回正值,因为frame.size.width
在某些情况下可能会返回负值。
如果我只关心标准几何,我会直接使用速记frame.width
。
答案 1 :(得分:1)
框架和大小都具有width属性。您可能会感到困惑,因为大小也是框架的属性。就像我问你我的鞋子颜色是什么颜色,但下一刻询问我的脚有多少颜色的鞋子,我问同样的事情,我可能会方便地问它根据我的情况,这种或那种方式。
答案 2 :(得分:1)
要了解更多信息,您可以了解如何构建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.
答案 3 :(得分:0)
你想找到原点使用这段代码 这里 ViewSend 是视图的出口
self.ViewSend.frame.origin.y
你想要找到hight所以请使用此代码
self.ViewSend.frame.size.height
您想要找到宽度,请使用此代码
self.ViewSend.frame.size.width
答案 4 :(得分:0)
它们几乎相同;但是,fram.width
是一个获取值,但frame.size.width
可用于设置或获取值