MacOS - 如何以编程方式将图像视图彼此相邻放置?

时间:2017-10-19 14:51:12

标签: swift xcode macos

在我的MacOS应用程序的主视图中,我正在尝试将一堆图像视图彼此相邻布局。

我使用的逻辑是第一个子视图将其leadingAnchor设置为主视图的leadingAnchor,并且每个后续子视图都将其leadingAnchor设置为{前一个子视图的{1}}。

trailingAnchor

但是我只看到一张图片,而不是像我预期的那样将它们放在一起。

是Swift / Xcode / MacOs开发的新手。我错过了什么?

编辑:

如果我更换行

            let imgWidth :CGFloat = 100, imgHeight :CGFloat = 100
            var leadingAnchor = self.view.leadingAnchor

            for /*loop logic*/ {

                let img: NSImage = funcToGetImage()
                var imgView = NSImageView(frame: NSRect(origin: .zero, size: img.size))
                imgView.image = img

                self.view.addSubview(imgView)

                imgView.widthAnchor.constraint(equalToConstant: imgWidth).isActive = true
                imgView.heightAnchor.constraint(equalToConstant: imgHeight).isActive = true

                imgView.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true

                leadingAnchor = imgView.trailingAnchor

            }

var imgView = NSImageView(frame: NSRect(origin: .zero, size: img.size))
imgView.image = img

我什么都没看到。

EDIT2: 替换

imgView = NSImageView(image: img)

var imgView = NSImageView(frame: NSRect(origin: .zero, size: img.size))

做了这个伎俩。

1 个答案:

答案 0 :(得分:0)

根据El Tomato的评论,我取代了

var imgView = NSImageView(frame: NSRect(origin: .zero, size: img.size))

var imgView = NSImageView(frame: NSRect(origin: CGPoint(x: x, y: 0), size: img.size))

x += 100

这就是诀窍。