如何删除UIScrollView放置在子视图之间的随机空白?

时间:2018-11-24 17:55:02

标签: ios swift xcode uiscrollview

我试图在mainStoryBoard的UIScrollView中添加两个自定义界面,即UIViews。

两个UIView都有一个图像,图像的尺寸等于视图的尺寸。

这是我用来将这些视图添加到我的scrollView中的代码

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var myScrollView: UIScrollView!


    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.
        self.myScrollView.frame = view.frame     

        for i in 0..<2{


            let uiImage = UIImage(named: "\(i)")!  
           let view =  Bundle.main.loadNibNamed("TestView", owner: self, options: nil)?.first as! UIView

            view.setImage(uiImage)

            let xpos = self.myScrollView.frame.width * CGFloat(i)
            view.frame = CGRect(x: xpos, y: 0, width: self.myScrollView.frame.width, height: self.myScrollView.frame.height)


            myScrollView.contentSize.width = self.myScrollView.frame.width * CGFloat((i + 1))
            myScrollView.layer.cornerRadius = 20
            myScrollView.layer.masksToBounds = true
            myScrollView.addSubview(view)

        }


    }


}

TestView.swift中,我有

func setImage(_ name:UIImage) -> Void{

    testUIImage.image = name
    testUIImage.contentMode = .scaleAspectFit
    testUIImage.clipsToBounds = true

}

但是,当我运行该应用程序时,第一个视图可以很好地添加,但是当我向右滚动时,我可以看到第二个视图不在Scrollview中,并且第一个视图和第二个视图之间存在空白,几乎就像该空间是一个附加视图一样,即将第二个视图向右推。我在scrollViewer中启用了分页。

First Image In ScrollView

Second Image In ScrollView

如您所见,第二张图像在前端被切除。

这是它们之间的空白: enter image description here

我检查了两个UIView框架的宽度,它们相等。我还检查了第二次迭代后的内容大小,它应该等于两个帧的大小* 2。但是由于某种原因,正在添加白色黑色空间。并且仅在添加2个或更多子视图后显示。

0 个答案:

没有答案