Ios 随机图像代码内动画swift代码

Ios 随机图像代码内动画swift代码,ios,swift,animation,random,swift2,Ios,Swift,Animation,Random,Swift2,我已经尝试了在这里(stackoverflow)和web上找到的几个代码,但没有一个有效 你能帮忙吗 这是代码: import UIKit class ViewController: UIViewController { @IBOutlet weak var UmagGlavna: UIImageView! let images = [ UIImage(named: "UmagGlavna1")!, UIImage(named: "UmagGlavna2")!

我已经尝试了在这里(stackoverflow)和web上找到的几个代码,但没有一个有效

你能帮忙吗

这是代码:

        import UIKit

class ViewController: UIViewController {
@IBOutlet weak var UmagGlavna: UIImageView!

let images = [
    UIImage(named: "UmagGlavna1")!,
    UIImage(named: "UmagGlavna2")!,
    UIImage(named: "UmagGlavna3")!]

var index = 0
let animationDuration: NSTimeInterval = 0.4
let switchingInterval: NSTimeInterval = 5

override func viewDidLoad() {
    super.viewDidLoad()

    UmagGlavna.image = images[index]
    index += 1
    animateImageView()
}

func animateImageView() {
    CATransaction.begin()

    CATransaction.setAnimationDuration(animationDuration)
    CATransaction.setCompletionBlock {
        let delay = dispatch_time(DISPATCH_TIME_NOW, Int64(self.switchingInterval * NSTimeInterval(NSEC_PER_SEC)))
        dispatch_after(delay, dispatch_get_main_queue()) {
            self.animateImageView()
        }
    }

    let transition = CATransition()
    transition.type = kCATransitionFade
    /*
     transition.type = kCATransitionPush
     transition.subtype = kCATransitionFromRight
     */
    UmagGlavna.layer.addAnimation(transition, forKey: kCATransition)
    UmagGlavna.image = images[index]

    CATransaction.commit()

    index = index < images.count - 1 ? index + 1 : 0
}
然后我还尝试插入了其他几个代码,这是其中之一:

        @IBAction func randomimage(sender: AnyObject) {
//list of Images in array 
let image : NSArray = [
    UIImage(named: "UmagGlavna1")!,
    UIImage(named: "UmagGlavna2")!,
    UIImage(named: "UmagGlavna3")!]

//random image generating method
let imagerange: UInt32 = UInt32(images.count)
let randomimage = Int(arc4random_uniform(imagerange))
let generatedimage: AnyObject = images.objectAtIndex(randomimage)
self.myimage.image = generatedimage as? UIImage
}

和其他一些代码,但没有任何东西使图像加载随机

我需要的是第一个图像加载(或所有图像)随机,因为当你们启动应用程序,我不会总是加载相同的(第一)图像


谢谢你的帮助。:)

如果希望代码从随机选择一幅图像开始,然后循环选择其他图像,请更改viewDidLoad代码以将索引设置为随机值:

override func viewDidLoad() {
    super.viewDidLoad()

    //Select a random image index to start with 
    index = arc4random_uniform(images.count) //This is the new line to add.

    UmagGlavna.image = images[index]
    index += 1
    animateImageView()
}

您可能需要一些类型转换来编译该行而不出错。我将把它留给您来解决。

这是我使用的代码:

  override func viewDidLoad() {
    super.viewDidLoad()

    index = Int(arc4random_uniform(2))

    UmagGlavna.image = images[index]
    index += 1
    animateImageView()
}

我认为现在这样还可以,也许以后就不够了,我必须用更多的图片来测试它,但现在可以了。

你发布了一堆别人的代码,很明显你不懂,但不清楚你想做什么。你需要对你想做的事情写一个清晰、连贯的描述。你是说发射屏幕吗?如果是这样的话,我认为你不能在启动屏幕故事板中加载随机图像。很抱歉,描述不清楚。不,这不是启动屏幕,这是主情节提要。我正试图做到这一点:当你们进入应用程序时,首先你们会看到屏幕顶部是图像库,其中有几个图像相互转换(动画-淡入和淡出)。我想做的是,在这个图库中,第一个图像是不同的,在这个例子中是名为“umaglavna1”的图像。我希望每次你们进入应用程序时,第一张图片都不一样,只是随机的。:)所以你想在相同的3张图片之间切换,但顺序不同?或者你只想改变第一张图片,但其他图片总是一样的?谢谢邓肯的回答。:)嗯,两者都很好。我的主要目标是,第一张图片并不总是一样的,但也许最好是将整个事情随机化,当用户进入应用程序时,每次图片的顺序都不一样。谢谢你的帮助。谢谢邓肯,我使用了类似的代码,我已经在新的“asnswer”中插入了它:)我建议不要使用常量值2。如果您在对arc4random_uniform的调用中使用images.count,那么如果以后您决定在阵列中放置更多图像,它就会起作用。为什么要发布第二个答案,使用与我的解决方案几乎相同的代码,但一天后发布?对不起,Duncan,但我是Swift的新手。我仍在学习,你的代码给了我错误,所以我在一个我张贴的更改。我认为你们的更好,但这一个给我并没有错误,我知道我必须知道,在添加更多的图片后,改变整数的数字。这个应用程序非常简单,但在使用它的过程中,我正在学习和提高我的技能:D;)不,不要使用常量2,如果添加其他图像,请返回并更改它。我的观点是,您应该编写代码询问数组有多少项,并根据元素的数量生成一个随机索引。这样,代码将适用于任意数量的元素。使用常量值会导致将来的代码维护和调试问题。好的,谢谢。我会听你说……:)回到项目上来。再次感谢。
  override func viewDidLoad() {
    super.viewDidLoad()

    index = Int(arc4random_uniform(2))

    UmagGlavna.image = images[index]
    index += 1
    animateImageView()
}