将 2 个图像视图约束在一起以保持它们之间相同的恒定距离
constraint together 2 imageviews to keep the same constant distance between them
我的 swift 下面的代码使用 nslayoutconstraint 将图像视图放置在视图控制器上。我的问题是当应用程序构建在 iPad 上时存在的差距,但它在 iPhone 上看起来不错。我附上了一个解释下面情况的想象。我尝试链接下面的约束,看看我评论的地方,但它不起作用。下面的代码是有问题的 2 个图像视图。 Ben 是他们上方的大图像视图。
takePhoto.topAnchor.constraint(equalTo: ben.bottomAnchor, constant : 10),
takePhoto.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.07, constant: 0),
takePhoto.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant : 50),
takePhoto.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.365,constant: 0),
importPhot.topAnchor.constraint(equalTo: ben.bottomAnchor, constant : 10),
importPhot.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.07, constant: 0),
importPhot.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant : -50),
importPhot.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.365,constant: 0),
//constraint below trying to keep a constant link between the imageviews
importPhot.leadingAnchor.constraint(equalTo: takePhoto.trailingAnchor, constant: 5),
在 importPhot
您将宽度锚点与前导锚点和尾随锚点混合在一起,这没有意义。
你必须选择一个选项。
在你的情况下删除
importPhot.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.365,constant: 0),
现在 importPhot
锚定到 view.trailingAnchor
和 takePhoto.trailingAnchor
。
对于您的用例,我建议锚定到屏幕中间。
例如:
takePhoto.topAnchor.constraint(equalTo: ben.bottomAnchor, constant : 10),
takePhoto.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.07, constant: 0),
takePhoto.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant : 50),
takePhoto.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :-5),
和
importPhot.topAnchor.constraint(equalTo: ben.bottomAnchor, constant : 10),
importPhot.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.07, constant: 0),
importPhot.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant : -50),
importPhot.leadingAnchor.constraint(equalTo: view.centerXAnchor, constant: 5)
我的 swift 下面的代码使用 nslayoutconstraint 将图像视图放置在视图控制器上。我的问题是当应用程序构建在 iPad 上时存在的差距,但它在 iPhone 上看起来不错。我附上了一个解释下面情况的想象。我尝试链接下面的约束,看看我评论的地方,但它不起作用。下面的代码是有问题的 2 个图像视图。 Ben 是他们上方的大图像视图。
takePhoto.topAnchor.constraint(equalTo: ben.bottomAnchor, constant : 10),
takePhoto.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.07, constant: 0),
takePhoto.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant : 50),
takePhoto.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.365,constant: 0),
importPhot.topAnchor.constraint(equalTo: ben.bottomAnchor, constant : 10),
importPhot.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.07, constant: 0),
importPhot.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant : -50),
importPhot.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.365,constant: 0),
//constraint below trying to keep a constant link between the imageviews
importPhot.leadingAnchor.constraint(equalTo: takePhoto.trailingAnchor, constant: 5),
在 importPhot
您将宽度锚点与前导锚点和尾随锚点混合在一起,这没有意义。
你必须选择一个选项。
在你的情况下删除
importPhot.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 0.365,constant: 0),
现在 importPhot
锚定到 view.trailingAnchor
和 takePhoto.trailingAnchor
。
对于您的用例,我建议锚定到屏幕中间。
例如:
takePhoto.topAnchor.constraint(equalTo: ben.bottomAnchor, constant : 10),
takePhoto.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.07, constant: 0),
takePhoto.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant : 50),
takePhoto.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :-5),
和
importPhot.topAnchor.constraint(equalTo: ben.bottomAnchor, constant : 10),
importPhot.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.07, constant: 0),
importPhot.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant : -50),
importPhot.leadingAnchor.constraint(equalTo: view.centerXAnchor, constant: 5)