如何设置UIView的原点参考?

Dan*_*iel 21 xcode cocoa uiview ios

我正在创建一个UIImageView并将它添加到我的视图循环中,我将初始帧设置为0,0,1,47并且循环的每个段落我改变图像视图的中心以将它们分开.

我总是使用0作为origin.y

问题是原点引用位于图像视图的中心,假设我们在界面构建器中,这相当于下面的图像.

如何更改代码中的参考点?

在此输入图像描述

Tri*_*ops 45

在阅读了这些答案和你的评论后,我不确定你的观点是什么.

随着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;
Run Code Online (Sandbox Code Playgroud)

但是如果你进入更深层次的神奇世界CALayers(不要忘记导入QuartzCore),你就会变得更强大.

CALayer 有这些:

  • position - 你看,它没有明确地说'中心',所以它可能不是中心!
  • anchorPoint- CGPoint值范围为0..1(包括),指定视图的点.默认值为x = 0.5,y = 0.5,表示"中心"(并-[UIView center]假设此值).您可以将其设置为任何其他值,该position属性将应用于该点.

示例时间:

  1. 你有一个100x100的视图
  2. view.layer.anchorPoint = CGPointMake(1, 1);
  3. view.layer.position = CGPointMake(300, 300);
  4. 视图的左上角是x = 200,y = 200,右下角是x = 300,y = 300.

注意:旋转图层/视图时,它将围绕anchorPoint默认情况下旋转,即中心.

卜,因为你刚才问如何做具体的事情,而不是什么你想达到的,我帮不了你任何进一步的现在.


Phi*_*lls 8

对象的框架包括其在superview中的位置.您可以使用以下内容进行更改:

CGRect frame = self.imageView.frame;
frame.origin.y = 0.0f;
self.imageView.frame = frame;
Run Code Online (Sandbox Code Playgroud)