【发布时间】:2012-03-13 18:18:16
【问题描述】:
这对于知道这一点的人来说可能听起来很傻,但我对 iOS 还是很陌生。 我想知道,为什么我们不能修改原点或大小,或者可能是 UIView 框架的这些属性的 x、y 或高度宽度?
frame 是一个 CGRect 结构,origin 和 size 又是 CGPoint 和 CGSize 结构。 当我们可以访问它们时,为什么我们不能修改它们?
在 CGRect 中没有这样的东西,我们可以修改它的属性,为什么我们不能为 frame 或 bounds 做。
【问题讨论】:
-
好问题,一点也不傻!
-
@ChrisNolet:我发布这个已经两年多了!
-
做了4年iOS,终于明白为什么不能直接设置frame了!
-
原因是他整个框架是可写/可分配的,而单个属性不是(只读)
-
我用 Swift 编写了一个扩展,可以让你将视图框架设置为任何指定的原点。我做了一些数学运算,找出了中心位置需要在哪里才能获得所需的原点。扩展在技术上仍然设置中心属性(调整以获得所需的原点)!见stackoverflow.com/questions/10012406/…
标签: objective-c ios