我正在创建UIImageView并将其循环添加到 View 中,将初始帧设置为0,0,1,47,循环的每个 channel 都更改了 ImageView 的中心以将它们隔开。
我总是使用0作为原点。
问题是原点引用位于 ImageView 的中心,假设我们在界面构建器中,则这等效于下面的图像。
如何更改代码中的引用点?
最佳答案
阅读这些答案和您的评论后,我不确定您的意思是什么。
使用UIView
,您可以通过2种方式设置位置:
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
–范围在0..1(包括)范围内的CGPoint
,用于指定 View 内的点。默认值为x = 0.5,y = 0.5,表示“居中”(而-[UIView center]
假定为该值)。您可以将其设置为任何其他值,并且position
属性将应用于该点。 时间示例:
view.layer.anchorPoint = CGPointMake(1, 1);
view.layer.position = CGPointMake(300, 300);
注意:旋转图层/ View 时,它将绕
anchorPoint
旋转,默认情况下是中心。既然您只要求 HOW 去做特定的事情,而不是您想要实现的,现在我无能为力了。
关于ios - 如何设置UIView的原始引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10012406/