在scrollview顶部添加更多项目时,将现有项目向下移动

时间:2015-09-30 01:21:04

标签: ios swift

我尝试在向下移动所有现有项目时将项目添加到滚动视图的顶部。我不想删除现有的视图并重新添加它们。

这就是我构建我的滚动视图的方式:

for var index=0; index < data.users.count; index++
 {
  if data.users[index] as! String != ""
   {
    let myImageView:UIImageView = UIImageView()
    myImageView.image = myImage
    myImageView.contentMode = UIViewContentMode.ScaleAspectFit
    myImageView.frame.size.width = imageWidth
    myImageView.frame.size.height = imageHeight
    myImageView.frame.origin.x = 0
    myImageView.frame.origin.y = MyVariables.yPosition
    self.myScrollView.addSubview(myImageView)

    MyVariables.yPosition += imageHeight + spacer
    MyVariables.scrollViewContentSize+=imageHeight + spacer

    self.myChatScrollView.contentSize = CGSize(width: imageWidth, height: MyVariables.scrollViewContentSize)
}}

在向顶部添加新项目时,我是否可以将滚动视图中的现有项目向下移动?

// on button click, I want to shift everything down and add the new item on top 
// without removing the current views

1 个答案:

答案 0 :(得分:0)

为了更好地处理这类内容,你应该使用TableView,它可以在你添加删除和项目时更好地处理所有事情。

如果您的要求是使用滚动视图,那么您需要一步一步地完成。

  • 首先,您需要通过更改框架原点(y)来移动项目。

    - 为所有子视图运行一个for循环,并使你的视图框架为y +新视图的高度。

  • 如果您使用自动布局,请确保处理所有约束。

  • 如果你处理好你的约束,真的不需要移动所有物品,如果你移动顶部一个休息将被处理
  • 完成移动其他项目后,添加包含动画的新项目。