2016-03-08 61 views
2

我在Xcoode中开发了一个应用程序,并添加了一个ScrollView。现在我在一行中添加了一些小图片。如何在Swift中将图像添加到ScrollView中

let myImages = ["BallBeispielBlau.png","BallBeispielRot.png","BallBeispielGelb.png","BallBeispielBlau.png","BallBeispielRot.png","BallBeispielGelb.png","BallBeispielBlau.png","BallBeispielRot.png","BallBeispielGelb.png"] 
    let imageWidth:CGFloat = 66 
    let imageHeight:CGFloat = 66 
    var xPosition:CGFloat = 0 
    var scrollViewSize:CGFloat=0 

    for image in myImages { 
     let myImage:UIImage = UIImage(named: image)! 
     let myImageView:UIImageView = UIImageView() 
     myImageView.image = myImage 

     let LongTapGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "InfosZuEinemEvent:") 
     LongTapGestureRecognizer.minimumPressDuration = 1.0; 
     myImageView.addGestureRecognizer(LongTapGestureRecognizer) 
     myImageView.userInteractionEnabled = true 

     myImageView.frame.size.width = imageWidth 
     myImageView.frame.size.height = imageHeight 
     myImageView.frame.origin.x = xPosition 
     myImageView.frame.origin.y = 0 

     ScrollViewFreunde.addSubview(myImageView) 
     ScrollViewFreunde.showsHorizontalScrollIndicator = false 
     xPosition += imageWidth 
     scrollViewSize += imageWidth 
    } 
    ScrollViewFreunde.contentSize = CGSize(width: scrollViewSize, height: imageHeight) 

这工作正常,但我想它,六幅图像,从而落入五个镜像后的图像,其中第一图像在显示使第二排。我用if语句尝试它,但它不起作用。我希望你能帮助我。

enter image description here

感谢您的帮助。

+0

添加代码,如果你试图语句,以便我们可以告诉你如何解决它。否则,你应该看看使用'UICollectionView'。它的目的是为了做到这一点。 –

+0

看到这一次,它可以帮助你http://stackoverflow.com/questions/24056219/multiple-image-in-scrollview/24056398#24056398 –

回答

0

你应该更喜欢collectionview而不是scrollview。它只是一个建议。

0

我已经写了一个堆栈视图因为这个原因,你可以下载一个示例项目:

https://github.com/mcmatan/StackViewWithAutoLayout

它相当简单的,你只需要调用“addSubviewWithLayout”,并添加您的看法。 堆栈视图将管理滚动内容大小。 您可以调用“removeViewWithLayout”从堆栈中删除视图。

干杯

1

您应该重新使用Collection View来做到这一点。以简单形式显示项目非常简单方便。

然而,要回答你的问题...

您可以创建一个“yPosition”变量将由每次一个图像溢出了滚动可见帧imageHeight递增。

发生这种情况时,xPositions变为0

var yPosition = 0 

for image in myImages { 
    let myImage:UIImage = UIImage(named: image)! 
    let myImageView:UIImageView = UIImageView() 
    myImageView.image = myImage 

    let LongTapGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "InfosZuEinemEvent:") 
    LongTapGestureRecognizer.minimumPressDuration = 1.0; 
    myImageView.addGestureRecognizer(LongTapGestureRecognizer) 
    myImageView.userInteractionEnabled = true 

    myImageView.frame.size.width = imageWidth 
    myImageView.frame.size.height = imageHeight 
    myImageView.frame.origin.x = xPosition 
    myImageView.frame.origin.y = yPosition 

    ScrollViewFreunde.addSubview(myImageView) 
    ScrollViewFreunde.showsHorizontalScrollIndicator = false 
    xPosition += imageWidth 

    if xPosition + imageWidth >= view.frame.width { 
     xPosition = 0 
     yPosition += imageHeight 
    } 
    scrollViewSize += imageWidth 
} 
相关问题