下面我的快速代码使用nslayoutconstraint将图像视图放置在视图控制器上。我的问题是,当应用程序在iPad上构建但在iPhone上看起来不错时,存在差距。我附上了一个想象,解释下面的情况。我尝试将下面的约束链接到我评论的位置,但它不起作用。下面的代码是有问题的2个imageview的。本是它们上方的大图像视图。
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)