我在Xcoode中开发了一个App,并添加了一个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语句尝试它,但它不起作用。我希望你能帮助我。
感谢您的帮助。
答案 0 :(得分:1)
您应该为此使用集合视图。以矩阵形式显示项目真的很简单,也更方便。
然而,要回答你的问题......
您可以创建一个“yPosition”变量,每当一个图像溢出scrollView可见帧时,该变量将由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
}
答案 1 :(得分:0)
您应该更喜欢collectionview
而不是scrollview
。这只是一个建议。
答案 2 :(得分:0)
由于这个原因,我写了一个堆栈视图,您可以在以下位置下载示例项目:
https://github.com/mcmatan/StackViewWithAutoLayout
非常简单,只需拨打#34; addSubviewWithLayout"并添加您的视图。 堆栈视图将管理滚动内容大小。 你可以调用" removeViewWithLayout"从堆栈中删除视图。
干杯