38

我想沿着一条线绘制点。

横过屏幕的线条

行长取决于设备和方向,并且总是在整个屏幕上延伸。因此,使用相对百分比定位点对我来说最有意义。

到目前为止,我只发现在某种点值(Doc)中定义了约束

是否也可以使用百分比值作为约束?关于如何以可扩展的方式定位这些点的任何想法......还是我需要“手动”进行这种转换/定位?

4

2 回答 2

52

是的,您可以将点定位为视图宽度的一小部分。NSLayoutConstraint 方法,constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:,有一个 multiplier 参数,可以让你在父视图和它的子视图之间使用分数关系。超级视图的右边缘将是该视图的宽度(如果它是全宽视图,则为屏幕),因此如果您创建如下所示的约束,该点将定位在沿线的一小段距离处:

-(void)viewDidLoad {
      [super viewDidLoad];
      [self.view removeConstraint:self.leftConDark];
      [self.view removeConstraint:self.leftConLight];
      NSLayoutConstraint *lcd = [NSLayoutConstraint constraintWithItem:self.darkButton 
                                                             attribute:NSLayoutAttributeCenterX 
                                                             relatedBy:NSLayoutRelationEqual 
                                                                toItem:self.view 
                                                             attribute:NSLayoutAttributeRight 
                                                            multiplier:.5 
                                                              constant:0];
      NSLayoutConstraint *lcl = [NSLayoutConstraint constraintWithItem:self.lightButton 
                                                             attribute:NSLayoutAttributeCenterX 
                                                             relatedBy:NSLayoutRelationEqual 
                                                                toItem:self.view 
                                                             attribute:NSLayoutAttributeRight 
                                                            multiplier:.9 
                                                              constant:0];
      [self.view addConstraints:@[lcd,lcl]];
}

在此示例中,我定位了两个 UIButton(信息类型为深色和浅色)。我在 IB 中添加了它们,并将 IBOutlets 设置为它们在视图左侧的约束(这就是系统给我的,它可能在右侧 - 没关系,因为你只是删除它们.如果您在代码中制作点,则不需要这样做)。在代码中,我删除了这些约束,然后添加新的约束,将按钮的中心放置在屏幕上 50% 和 90% 的位置。

于 2013-07-07T03:56:13.780 回答
13

我不是自动布局专家(甚至还没有能力!)但从 XCode 6 开始,您似乎可以在 IB 中做到这一点。

  1. 选择对象。
  2. 显示尺寸检查器(单击标尺)尺寸检查员

  3. 双击约束矩形(不明显!“编辑”将您带到其他地方)

约束矩形

  1. 在这里,您可以像上面的答案一样设置乘数。

在此处输入图像描述

于 2014-10-05T22:21:34.783 回答