2016-03-08 3 views
2

Я разрабатываю приложение в Xcoode и добавляю ScrollView. Теперь я добавил несколько изображений в строку.Как добавить изображение в ScrollView в Swift

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», чтобы удалить представление из стека.

Cheers

1

Вы должны повторно использовать вид коллекции для этого. На самом деле легко и удобно отображать элементы в математической форме.

Однако, чтобы ответить на ваш вопрос ...

Вы можете создать «yPosition» переменную, которая будет увеличиваться на ImageHeight каждый раз, когда один образ переполняет видимую рамку Scrollview.

Когда это происходит, 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 
} 
Смежные вопросы