2017-10-19 72 views
0

在我的MacOS應用程序的主視圖中,我試圖佈置一堆圖像視圖彼此相鄰。MacOS - 如何以編程方式將圖像視圖彼此相鄰放置?

我使用的邏輯是,所述第一子視圖有其leadingAnchor組作爲主視圖的leadingAnchor,和每一個後續的子視圖有其leadingAnchor組作爲前一子視圖的trailingAnchor

  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 

      } 

但是,我看到只有一個圖像,而不是像我期望的那樣彼此相鄰放置。

Swift/Xcode/MacOs開發新手。我錯過了什麼?

編輯:

如果我更換線

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

imgView = NSImageView(image: img) 

我沒有看到任何東西。

EDIT2: 與

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

x += 100 

更換

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

的伎倆。

+0

「但是我只看到一個圖像」顯然,你們都將它們定位在.zero。我建議你回到一本書並閱讀控制流程。 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.html#//apple_ref/doc/uid/TP40014097-CH9-ID120 –

+0

請參閱編輯。 (我沒有在這裏用控制流邏輯掙扎,但是顯示/定位視圖) –

回答

0

基於埃爾番茄的評論,我換成

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 

該訣竅。

相關問題