我正在创建一个 UIImageView 并将其循环添加到我的 View 中,我将初始帧设置为 0,0,1,47,循环的每个段落我都会更改 ImageView 的中心以将它们隔开。
我总是使用 0 作为 origin.y
问题是原点引用位于 ImageView 的中心,假设我们在界面构建器中,这相当于下图。
如何更改代码中的引用点?
最佳答案
阅读这些答案和您的评论后,我不太确定您的意思是什么。
使用 UIView
可以通过两种方式设置位置:
center
– 它明确表示它是中心。frame.origin
– 左上角,不能直接设置。
如果您希望左下角位于 x=300,y=300,您可以这样做:
UIView *view = ...
CGRect frame = view.frame;
frame.origin.x = 300 - frame.size.width;
frame.origin.y = 300 - frame.size.height;
view.frame = frame;
但是如果你更深入到 CALayers
的神奇世界(不要忘记导入 QuartzCore),你会更强大。
CALayer
有这些:
position
– 你看,它没有明确表示“中心”,所以它可能不是中心!anchorPoint
–CGPoint
的值在 0..1(包括)范围内,指定 View 内部的点。默认值为 x=0.5,y=0.5,表示“中心”(并且-[UIView center]
假定此值)。您可以将其设置为任何其他值,position
属性将应用于该点。
示例时间:
- 您有一个尺寸为 100x100 的 View
view.layer.anchorPoint = CGPointMake(1, 1);
view.layer.position = CGPointMake(300, 300);
- View 的左上角位于 x=200,y=200,右下角位于 x=300,y=300。
注意:当您旋转图层/ View 时,它会围绕 anchorPoint
旋转,默认情况下它是中心。
Bu 因为你只是问HOW 做具体的事情而不是WHAT 你想要实现,我现在不能再帮你了。
关于ios - 如何设置 UIView 的来源引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10012406/