Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在swift中以编程方式设置约束_Ios_Swift_Xcode - Fatal编程技术网

Ios 在swift中以编程方式设置约束

Ios 在swift中以编程方式设置约束,ios,swift,xcode,Ios,Swift,Xcode,我通过编程设置了一些图像,但是图像没有达到屏幕的全宽。也许是因为图像没有那么大?有没有办法让我的3张图片更局限于屏幕的右侧(见附图) 如果将常量:40添加到约束中,则会调整较大屏幕尺寸的宽度,但随后会使较小屏幕尺寸的宽度大于屏幕尺寸 以下是我设置图像的方式: // creating an image private lazy var backgroundImage: UIImageView = { let backgroundImage = UIImageView()

我通过编程设置了一些图像,但是图像没有达到屏幕的全宽。也许是因为图像没有那么大?有没有办法让我的3张图片更局限于屏幕的右侧(见附图)

如果将
常量:40
添加到约束中,则会调整较大屏幕尺寸的宽度,但随后会使较小屏幕尺寸的宽度大于屏幕尺寸

以下是我设置图像的方式:

// creating an image
private lazy var backgroundImage: UIImageView = {
        let backgroundImage = UIImageView()
        backgroundImage.translatesAutoresizingMaskIntoConstraints = false
        return backgroundImage
}()

将contentMode设置为ScaleSpectFill或ScaleSpectFit使用该工具确定图像视图的大小。这将帮助您确定问题是否在于图像视图的大小、超级视图的大小、内容模式等,从而消除猜测。我敢打赌,这是因为您在屏幕实际加载之前初始化了这些变量。你在哪里调用这些函数?如果它位于可重用的单元格中,我会在cellForItemAt方法期间尝试设置大小。
// setting up cosntraints for image
private func setupConstraints(){
        let margins = layoutMarginsGuide
        NSLayoutConstraint.activate([
            backgroundImage.topAnchor.constraint(equalTo: margins.topAnchor),
            backgroundImage.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
            backgroundImage.trailingAnchor.constraint(equalTo: margins.trailingAnchor),
            backgroundImage.bottomAnchor.constraint(equalTo: margins.bottomAnchor)
        ])
}