Iphone iOS应用程序类似于iOS跳板行为

Iphone iOS应用程序类似于iOS跳板行为,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我需要创建一个类似于iOS spring board的应用程序。 我需要显示不同的配置文件图片,行和列排列类似于下图。请记住,我将显示图片,而不是应用程序 我已经创建了一个UIScrollView,它可以像弹簧板一样显示图像。 首先,我需要使它们可点击(因此可能是按钮或带有交互的图像) 我的主要问题是,我需要实现一种行为,在这种行为中,我可以按住/触摸图像/图标一段时间,然后将其移动到另一个位置,并将其与我拖动的图像交换。(就像在弹簧板上排列图标一样) 我需要实现这个,任何建议,我的意思是苹

我需要创建一个类似于iOS spring board的应用程序。 我需要显示不同的配置文件图片,行和列排列类似于下图。请记住,我将显示图片,而不是应用程序

我已经创建了一个UIScrollView,它可以像弹簧板一样显示图像。 首先,我需要使它们可点击(因此可能是按钮或带有交互的图像)

我的主要问题是,我需要实现一种行为,在这种行为中,我可以按住/触摸图像/图标一段时间,然后将其移动到另一个位置,并将其与我拖动的图像交换。(就像在弹簧板上排列图标一样)

我需要实现这个,任何建议,我的意思是苹果有本地类吗? 或者我需要为此编写所有代码。我已经尝试过搜索,但我遇到了困难。

iOS SpingBoard


苹果会拒绝你的应用程序,如果它看起来太像spring board,即摇摆的动画,那么你可能需要在尝试进行更多开发之前练习搜索技能。花了几秒钟找到。你给我的wiggle动画链接是很棒的@NickBull,但它只为wiggle设置动画,而不用于交换和拖动图像。不管怎样,它会在我的问题的某些部分帮助我,我应该只编码交换。谢谢你的信息,我真的很感激。
func startWiggling() {
    deleteButton.isHidden = false
    guard contentView.layer.animation(forKey: "wiggle") == nil else { return }
    guard contentView.layer.animation(forKey: "bounce") == nil else { return }

    let angle = 0.04

    let wiggle = CAKeyframeAnimation(keyPath: "transform.rotation.z")
    wiggle.values = [-angle, angle]
    wiggle.autoreverses = true
    wiggle.duration = randomInterval(0.1, variance: 0.025)
    wiggle.repeatCount = Float.infinity
    contentView.layer.add(wiggle, forKey: "wiggle")

    let bounce = CAKeyframeAnimation(keyPath: "transform.translation.y")
    bounce.values = [4.0, 0.0]
    bounce.autoreverses = true
    bounce.duration = randomInterval(0.12, variance: 0.025)
    bounce.repeatCount = Float.infinity
    contentView.layer.add(bounce, forKey: "bounce")
}

func stopWiggling() {
    deleteButton.isHidden = true
    contentView.layer.removeAllAnimations()
}